From 24c509b9e2df5a6382929fa93824e91432a833a4 Mon Sep 17 00:00:00 2001 From: ebarrios Date: Tue, 14 Jul 2020 07:16:20 +0200 Subject: [PATCH 001/656] Created gcp-projects plugin --- .github/CODEOWNERS | 4 +- package.json | 3 + packages/app/package.json | 1 + packages/app/src/apis.ts | 2 + packages/app/src/plugins.ts | 1 + plugins/gcp-projects/.eslintrc.js | 3 + plugins/gcp-projects/README.md | 13 ++ plugins/gcp-projects/dev/index.tsx | 22 +++ plugins/gcp-projects/package.json | 47 ++++++ plugins/gcp-projects/src/api/GCPApi.ts | 34 ++++ plugins/gcp-projects/src/api/GCPClient.ts | 125 ++++++++++++++ plugins/gcp-projects/src/api/index.ts | 19 +++ plugins/gcp-projects/src/api/types.ts | 41 +++++ .../NewProjectPage/NewProjectPage.tsx | 119 ++++++++++++++ .../src/components/NewProjectPage/index.ts | 17 ++ .../ProjectDetailsPage/ProjectDetailsPage.tsx | 153 +++++++++++++++++ .../components/ProjectDetailsPage/index.ts | 17 ++ .../ProjectListPage/ProjectListPage.tsx | 155 ++++++++++++++++++ .../src/components/ProjectListPage/index.ts | 17 ++ plugins/gcp-projects/src/index.ts | 18 ++ plugins/gcp-projects/src/plugin.test.ts | 23 +++ plugins/gcp-projects/src/plugin.ts | 42 +++++ plugins/gcp-projects/src/setupTests.ts | 19 +++ yarn.lock | 83 +++++++++- 24 files changed, 970 insertions(+), 8 deletions(-) create mode 100644 plugins/gcp-projects/.eslintrc.js create mode 100644 plugins/gcp-projects/README.md create mode 100644 plugins/gcp-projects/dev/index.tsx create mode 100644 plugins/gcp-projects/package.json create mode 100644 plugins/gcp-projects/src/api/GCPApi.ts create mode 100644 plugins/gcp-projects/src/api/GCPClient.ts create mode 100644 plugins/gcp-projects/src/api/index.ts create mode 100644 plugins/gcp-projects/src/api/types.ts create mode 100644 plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx create mode 100644 plugins/gcp-projects/src/components/NewProjectPage/index.ts create mode 100644 plugins/gcp-projects/src/components/ProjectDetailsPage/ProjectDetailsPage.tsx create mode 100644 plugins/gcp-projects/src/components/ProjectDetailsPage/index.ts create mode 100644 plugins/gcp-projects/src/components/ProjectListPage/ProjectListPage.tsx create mode 100644 plugins/gcp-projects/src/components/ProjectListPage/index.ts create mode 100644 plugins/gcp-projects/src/index.ts create mode 100644 plugins/gcp-projects/src/plugin.test.ts create mode 100644 plugins/gcp-projects/src/plugin.ts create mode 100644 plugins/gcp-projects/src/setupTests.ts diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 751ec4914d..7d941588c7 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -4,6 +4,6 @@ # The last matching pattern takes precedence. # https://help.github.com/articles/about-codeowners/ -* @spotify/backstage-core -/plugins/techdocs @spotify/techdocs-core +* @spotify/backstage-core /packages/techdocs-cli @spotify/techdocs-core +/plugins/techdocs @spotify/techdocs-core diff --git a/package.json b/package.json index cc45d541d4..125dc285aa 100644 --- a/package.json +++ b/package.json @@ -53,5 +53,8 @@ "*.{json,md}": [ "prettier --write" ] + }, + "dependencies": { + "ts-node": "^8.10.2" } } diff --git a/packages/app/package.json b/packages/app/package.json index ed256e6c2d..88e2e630a7 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -8,6 +8,7 @@ "@backstage/plugin-catalog": "^0.1.1-alpha.13", "@backstage/plugin-circleci": "^0.1.1-alpha.13", "@backstage/plugin-explore": "^0.1.1-alpha.13", + "@backstage/plugin-gcp-projects": "^0.1.1-alpha.13", "@backstage/plugin-github-actions": "^0.1.1-alpha.13", "@backstage/plugin-gitops-profiles": "^0.1.1-alpha.13", "@backstage/plugin-graphiql": "^0.1.1-alpha.13", diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index abc490b658..f99a88b345 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -58,6 +58,7 @@ import { import { scaffolderApiRef, ScaffolderApi } from '@backstage/plugin-scaffolder'; import { rollbarApiRef, RollbarClient } from '@backstage/plugin-rollbar'; +import { GCPClient, GCPApiRef } from '@backstage/plugin-gcp-projects'; export const apis = (config: ConfigApi) => { // eslint-disable-next-line no-console @@ -75,6 +76,7 @@ export const apis = (config: ConfigApi) => { builder.add(storageApiRef, WebStorage.create({ errorApi })); builder.add(circleCIApiRef, new CircleCIApi()); + builder.add(GCPApiRef, new GCPClient()); builder.add(featureFlagsApiRef, new FeatureFlags()); builder.add(lighthouseApiRef, new LighthouseRestApi('http://localhost:3003')); diff --git a/packages/app/src/plugins.ts b/packages/app/src/plugins.ts index 46c8f23ef0..19a359043b 100644 --- a/packages/app/src/plugins.ts +++ b/packages/app/src/plugins.ts @@ -27,3 +27,4 @@ export { plugin as TechDocs } from '@backstage/plugin-techdocs'; export { plugin as GraphiQL } from '@backstage/plugin-graphiql'; export { plugin as GithubActions } from '@backstage/plugin-github-actions'; export { plugin as Rollbar } from '@backstage/plugin-rollbar'; +export { plugin as GcpProjects } from '@backstage/plugin-gcp-projects'; diff --git a/plugins/gcp-projects/.eslintrc.js b/plugins/gcp-projects/.eslintrc.js new file mode 100644 index 0000000000..13573efa9c --- /dev/null +++ b/plugins/gcp-projects/.eslintrc.js @@ -0,0 +1,3 @@ +module.exports = { + extends: [require.resolve('@backstage/cli/config/eslint')], +}; diff --git a/plugins/gcp-projects/README.md b/plugins/gcp-projects/README.md new file mode 100644 index 0000000000..6a2ab63c96 --- /dev/null +++ b/plugins/gcp-projects/README.md @@ -0,0 +1,13 @@ +# gcp-projects + +Welcome to the gcp-projects plugin! + +_This plugin was created through the Backstage CLI_ + +## Getting started + +Your plugin has been added to the example app in this repository, meaning you'll be able to access it by running `yarn start` in the root directory, and then navigating to [/gcp-projects](http://localhost:3000/gcp-projects). + +You can also serve the plugin in isolation by running `yarn start` in the plugin directory. +This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads. +It is only meant for local development, and the setup for it can be found inside the [/dev](/dev) directory. diff --git a/plugins/gcp-projects/dev/index.tsx b/plugins/gcp-projects/dev/index.tsx new file mode 100644 index 0000000000..d97643057b --- /dev/null +++ b/plugins/gcp-projects/dev/index.tsx @@ -0,0 +1,22 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { plugin } from '../src/plugin'; + +createDevApp() + .registerPlugin(plugin) + .render(); diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json new file mode 100644 index 0000000000..2bef7feef4 --- /dev/null +++ b/plugins/gcp-projects/package.json @@ -0,0 +1,47 @@ +{ + "name": "@backstage/plugin-gcp-projects", + "version": "0.1.1-alpha.13", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "private": true, + "publishConfig": { + "access": "public", + "main": "dist/index.esm.js", + "types": "dist/index.d.ts" + }, + "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/core": "^0.1.1-alpha.13", + "@backstage/theme": "^0.1.1-alpha.13", + "@material-ui/core": "^4.9.1", + "@material-ui/icons": "^4.9.1", + "@material-ui/lab": "4.0.0-alpha.45", + "react": "^16.13.1", + "react-dom": "^16.13.1", + "react-router-dom": "^5.2.0", + "react-use": "^14.2.0" + }, + "devDependencies": { + "@backstage/cli": "^0.1.1-alpha.13", + "@backstage/dev-utils": "^0.1.1-alpha.13", + "@testing-library/jest-dom": "^5.10.1", + "@testing-library/react": "^10.4.1", + "@testing-library/user-event": "^12.0.7", + "@types/jest": "^25.2.2", + "@types/node": "^12.0.0", + "jest-fetch-mock": "^3.0.3" + }, + "files": [ + "dist" + ] +} diff --git a/plugins/gcp-projects/src/api/GCPApi.ts b/plugins/gcp-projects/src/api/GCPApi.ts new file mode 100644 index 0000000000..95b686815e --- /dev/null +++ b/plugins/gcp-projects/src/api/GCPApi.ts @@ -0,0 +1,34 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { createApiRef } from '@backstage/core'; +import { Project, Operation } from './types'; + +export const GCPApiRef = createApiRef({ + id: 'plugin.gcpprojects.service', + description: 'Used by the GCP Projects plugin to make requests', +}); + +export type GCPApi = { + listProjects: ({ token }: { token: string }) => Promise; + getProject: (projectId: string, token: Promise) => Promise; + createProject: ( + projectName: string, + projectId: string, + owner: string, + token: string, + ) => Promise; +}; diff --git a/plugins/gcp-projects/src/api/GCPClient.ts b/plugins/gcp-projects/src/api/GCPClient.ts new file mode 100644 index 0000000000..fd8b708377 --- /dev/null +++ b/plugins/gcp-projects/src/api/GCPClient.ts @@ -0,0 +1,125 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { GCPApi } from './GCPApi'; +import { Project, Operation, Status } from './types'; + +export class GCPClient implements GCPApi { + async listProjects({ token }: { token: string }): Promise { + const url = `https://content-cloudresourcemanager.googleapis.com/v1/projects`; + + const response = await fetch(url, { + headers: new Headers({ + Accept: '*/*', + Authorization: `Bearer ${token}`, + }), + }); + + if (!response.ok) { + return [ + { + name: 'Error', + projectNumber: 'Response status is not OK', + projectId: 'Error', + lifecycleState: 'error', + createTime: 'Error', + }, + ]; + } + + const data = await response.json(); + + return data.projects; + } + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + async getProject( + projectId: string, + token: Promise, + ): Promise { + const url = `https://content-cloudresourcemanager.googleapis.com/v1/projects/${projectId}`; + const response = await fetch(url, { + headers: new Headers({ + Authorization: `Bearer ${await token}`, + }), + }); + + const dataBlank: Project = { + name: 'Error', + projectNumber: `Response status is${response.status}`, + projectId: 'Error', + lifecycleState: 'error', + createTime: 'Error', + }; + + if (!response.ok) { + return dataBlank; + } + + const data = await response.json(); + + const newData: Project = data; + + return newData; + } + + async createProject( + projectName: string, + projectId: string, + token: string, + ): Promise { + const status: Status = { + code: 0, + message: '', + details: [], + }; + + const op: Operation = { + name: '', + metadata: '', + done: true, + error: status, + response: '', + }; + + const newProject: Project = { + name: projectName, + projectId: projectId, + }; + + const body = JSON.stringify(newProject); + + const url = `https://content-cloudresourcemanager.googleapis.com/v1/projects`; + + const response = await fetch(url, { + headers: new Headers({ + Accept: '*/*', + Authorization: `Bearer ${token}`, + }), + body: body, + method: 'POST', + }); + + if (!response.ok) { + status.code = response.status; + return op; + } + + const data = await response.json(); + + return data; + } +} diff --git a/plugins/gcp-projects/src/api/index.ts b/plugins/gcp-projects/src/api/index.ts new file mode 100644 index 0000000000..51f617f19c --- /dev/null +++ b/plugins/gcp-projects/src/api/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 * from './GCPApi'; +export * from './GCPClient'; +export * from './types'; diff --git a/plugins/gcp-projects/src/api/types.ts b/plugins/gcp-projects/src/api/types.ts new file mode 100644 index 0000000000..8dccaec5e2 --- /dev/null +++ b/plugins/gcp-projects/src/api/types.ts @@ -0,0 +1,41 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 type Project = { + name: string; + projectNumber?: string; + projectId: string; + lifecycleState?: string; + createTime?: string; +}; + +export type ProjectDetails = { + details: string; +}; + +export type Operation = { + name: string; + metadata: string; + done: boolean; + error: Status; + response: string; +}; + +export type Status = { + code: number; + message: string; + details: string[]; +}; diff --git a/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx b/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx new file mode 100644 index 0000000000..bfa2f158ce --- /dev/null +++ b/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx @@ -0,0 +1,119 @@ +/* + * Copyright 2020 Spotify AB + * + * 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, { FC, useState } from 'react'; +import { Grid, Button, TextField } from '@material-ui/core'; + +import { + InfoCard, + Header, + Page, + pageTheme, + Content, + ContentHeader, + HeaderLabel, + SupportButton, + SimpleStepper, + SimpleStepperStep, + StructuredMetadataTable, +} from '@backstage/core'; + +export const NewProjectPage: FC<{}> = () => { + const [projectName, setProjectName] = useState(''); + const [projectId, setProjectId] = useState(''); + const [done, setDone] = useState(false); + + const metadata = { + ProjectName: projectName, + ProjectId: projectId, + }; + + return ( + +
+ + +
+ + + + This plugin will help you create a project in gcp. + + + + + + + + setProjectName(e.target.value)} + value={projectName} + fullWidth + /> + + + setProjectId(e.target.value)} + value={projectId} + fullWidth + /> + + + + + + + + {done === true ? ( + + + +
+
+
+ +
+
+ ) : ( +
+ )} +
+
+
+ ); +}; diff --git a/plugins/gcp-projects/src/components/NewProjectPage/index.ts b/plugins/gcp-projects/src/components/NewProjectPage/index.ts new file mode 100644 index 0000000000..1d2f023887 --- /dev/null +++ b/plugins/gcp-projects/src/components/NewProjectPage/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { NewProjectPage } from './NewProjectPage'; diff --git a/plugins/gcp-projects/src/components/ProjectDetailsPage/ProjectDetailsPage.tsx b/plugins/gcp-projects/src/components/ProjectDetailsPage/ProjectDetailsPage.tsx new file mode 100644 index 0000000000..d9721bf549 --- /dev/null +++ b/plugins/gcp-projects/src/components/ProjectDetailsPage/ProjectDetailsPage.tsx @@ -0,0 +1,153 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { + Button, + ButtonGroup, + LinearProgress, + makeStyles, + Paper, + Table, + TableBody, + TableCell, + TableContainer, + TableRow, + Theme, + Typography, +} from '@material-ui/core'; +import React from 'react'; +import { useLocation } from 'react-router-dom'; +import { useAsync } from 'react-use'; +import { Link, useApi, googleAuthApiRef } from '@backstage/core'; +import { GCPApiRef } from '../../api'; + +const useStyles = makeStyles(theme => ({ + root: { + maxWidth: 720, + margin: theme.spacing(2), + }, + title: { + padding: theme.spacing(1, 0, 2, 0), + }, + table: { + padding: theme.spacing(1), + }, +})); + +export const ProjectDetailsPage = () => { + const api = useApi(GCPApiRef); + const googleApi = useApi(googleAuthApiRef); + const token = googleApi.getAccessToken( + 'https://www.googleapis.com/auth/cloud-platform.read-only', + ); + + const classes = useStyles(); + const location = useLocation(); + const status = useAsync( + () => + api.getProject( + decodeURIComponent(location.search.split('projectId=')[1]), + token, + ), + [location.search], + ); + + if (status.loading) { + return ; + } else if (status.error) { + return ( + + Failed to load build, {status.error.message} + + ); + } + + const details = status.value; + + return ( +
+ + + + < + + + Build Details + + + + + + + Name + + {details?.name} + + + + Project Number + + {details?.projectNumber} + + + + Project ID + + {details?.projectId} + + + + State + + + {details?.lifecycleState} + + + + + Creation Time + + {details?.createTime} + + + + Links + + + + {details?.name && ( + + )} + {details?.name && ( + + )} + + + + +
+
+
+ ); +}; diff --git a/plugins/gcp-projects/src/components/ProjectDetailsPage/index.ts b/plugins/gcp-projects/src/components/ProjectDetailsPage/index.ts new file mode 100644 index 0000000000..e9b6eb095a --- /dev/null +++ b/plugins/gcp-projects/src/components/ProjectDetailsPage/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { ProjectDetailsPage } from './ProjectDetailsPage'; diff --git a/plugins/gcp-projects/src/components/ProjectListPage/ProjectListPage.tsx b/plugins/gcp-projects/src/components/ProjectListPage/ProjectListPage.tsx new file mode 100644 index 0000000000..8be1b47857 --- /dev/null +++ b/plugins/gcp-projects/src/components/ProjectListPage/ProjectListPage.tsx @@ -0,0 +1,155 @@ +/* + * Copyright 2020 Spotify AB + * + * 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. + */ + +// NEEDS WORK + +import { Link, useApi, googleAuthApiRef, InfoCard } from '@backstage/core'; +import { + LinearProgress, + makeStyles, + Paper, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + Theme, + Tooltip, + Typography, + Button, +} from '@material-ui/core'; +import React from 'react'; +import { useAsync } from 'react-use'; +import { GCPApiRef, Project } from '../../api'; + +const LongText = ({ text, max }: { text: string; max: number }) => { + if (text.length < max) { + return {text}; + } + return ( + + {text.slice(0, max)}... + + ); +}; + +const useStyles = makeStyles(theme => ({ + root: { + padding: theme.spacing(2), + }, + title: { + padding: theme.spacing(1, 0, 2, 0), + }, +})); + +const PageContents = () => { + const api = useApi(GCPApiRef); + const googleApi = useApi(googleAuthApiRef); + + const { loading, error, value } = useAsync(async () => { + const token = await googleApi.getAccessToken( + 'https://www.googleapis.com/auth/cloud-platform.read-only', + ); + + const projects = api.listProjects({ token }); + return projects; + }); + + if (loading) { + return ; + } + + if (error) { + return ( + + Failed to load projects, {error.message}{' '} + + ); + } + + return ( + + + + + Name + Project Number + Project ID + State + Creation Time + + + + {value?.map((project: Project) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ))} + +
+
+ ); +}; + +export const ProjectListPage = () => { + const classes = useStyles(); + + return ( +
+ + GCP Projects + + + + + + +
+ ); +}; diff --git a/plugins/gcp-projects/src/components/ProjectListPage/index.ts b/plugins/gcp-projects/src/components/ProjectListPage/index.ts new file mode 100644 index 0000000000..c2b0479cef --- /dev/null +++ b/plugins/gcp-projects/src/components/ProjectListPage/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { ProjectListPage } from './ProjectListPage'; diff --git a/plugins/gcp-projects/src/index.ts b/plugins/gcp-projects/src/index.ts new file mode 100644 index 0000000000..d67bc6a864 --- /dev/null +++ b/plugins/gcp-projects/src/index.ts @@ -0,0 +1,18 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { plugin } from './plugin'; +export * from './api'; diff --git a/plugins/gcp-projects/src/plugin.test.ts b/plugins/gcp-projects/src/plugin.test.ts new file mode 100644 index 0000000000..86e909995f --- /dev/null +++ b/plugins/gcp-projects/src/plugin.test.ts @@ -0,0 +1,23 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { plugin } from './plugin'; + +describe('gcp-projects', () => { + it('should export plugin', () => { + expect(plugin).toBeDefined(); + }); +}); diff --git a/plugins/gcp-projects/src/plugin.ts b/plugins/gcp-projects/src/plugin.ts new file mode 100644 index 0000000000..29c7d74434 --- /dev/null +++ b/plugins/gcp-projects/src/plugin.ts @@ -0,0 +1,42 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { createPlugin, createRouteRef } from '@backstage/core'; +import { ProjectListPage } from './components/ProjectListPage'; +import { ProjectDetailsPage } from './components/ProjectDetailsPage'; +import { NewProjectPage } from './components/NewProjectPage'; + +export const rootRouteRef = createRouteRef({ + path: '/gcp-projects', + title: 'GCP Projects', +}); +export const ProjectRouteRef = createRouteRef({ + path: '/gcp-projects/project', + title: 'GCP Project Page', +}); +export const NewProjectRouteRef = createRouteRef({ + path: '/gcp-projects/new', + title: 'GCP Project Page', +}); + +export const plugin = createPlugin({ + id: 'gcp-projects', + register({ router }) { + router.addRoute(rootRouteRef, ProjectListPage); + router.addRoute(ProjectRouteRef, ProjectDetailsPage); + router.addRoute(NewProjectRouteRef, NewProjectPage); + }, +}); diff --git a/plugins/gcp-projects/src/setupTests.ts b/plugins/gcp-projects/src/setupTests.ts new file mode 100644 index 0000000000..8553642152 --- /dev/null +++ b/plugins/gcp-projects/src/setupTests.ts @@ -0,0 +1,19 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 '@testing-library/jest-dom'; + +require('jest-fetch-mock').enableMocks(); diff --git a/yarn.lock b/yarn.lock index 0fb5368314..7620f8832d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9942,6 +9942,18 @@ highlight.js@~9.15.0, highlight.js@~9.15.1: resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz#7b18ed75c90348c045eef9ed08ca1319a2219ad2" integrity sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw== +history@^4.9.0: + version "4.10.1" + resolved "https://registry.npmjs.org/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + history@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/history/-/history-5.0.0.tgz#0cabbb6c4bbf835addb874f8259f6d25101efd08" @@ -9958,7 +9970,7 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -11090,6 +11102,11 @@ is-yarn-global@^0.3.0: resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -12430,7 +12447,7 @@ loglevel@^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== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.0, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -12889,6 +12906,14 @@ min-indent@^1.0.0: resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz#cfc45c37e9ec0d8f0a0ec3dd4ef7f7c3abe39256" integrity sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY= +mini-create-react-context@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz#df60501c83151db69e28eac0ef08b4002efab040" + integrity sha512-b0TytUgFSbgFJGzJqXPKCFCBWigAjpjo+Fl7Vf7ZbKRDptszpppKxXH6DRXEABZ/gcEQczeb0iZ7JvL8e8jjCA== + dependencies: + "@babel/runtime" "^7.5.5" + tiny-warning "^1.0.3" + mini-css-extract-plugin@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.7.0.tgz#5ba8290fbb4179a43dd27cca444ba150bee743a0" @@ -14369,6 +14394,13 @@ path-to-regexp@2.2.1: resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + path-type@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -15646,7 +15678,7 @@ react-inspector@^4.0.0: is-dom "^1.0.9" prop-types "^15.6.1" -react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: +react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: version "16.13.1" resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -15725,6 +15757,35 @@ react-router-dom@6.0.0-beta.0: prop-types "^15.7.2" react-router "6.0.0-beta.0" +react-router-dom@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662" + integrity sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.2.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293" + integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + mini-create-react-context "^0.4.0" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + react-router@6.0.0-beta.0: version "6.0.0-beta.0" resolved "https://registry.npmjs.org/react-router/-/react-router-6.0.0-beta.0.tgz#3e11f39b6ded4412c2fed9e4f989dd4c8156724d" @@ -16342,6 +16403,11 @@ resolve-from@^5.0.0: resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -18185,12 +18251,12 @@ tiny-emitter@^2.0.0: resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== -tiny-invariant@^1.0.6: +tiny-invariant@^1.0.2, tiny-invariant@^1.0.6: version "1.1.0" resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== -tiny-warning@^1.0.2: +tiny-warning@^1.0.0, tiny-warning@^1.0.2, tiny-warning@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== @@ -18406,7 +18472,7 @@ ts-loader@^7.0.4: micromatch "^4.0.0" semver "^6.0.0" -ts-node@^8.6.2: +ts-node@^8.10.2, ts-node@^8.6.2: version "8.10.2" resolved "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d" integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== @@ -18987,6 +19053,11 @@ validate.io-number@^1.0.3: resolved "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz#f63ffeda248bf28a67a8d48e0e3b461a1665baf8" integrity sha1-9j/+2iSL8opnqNSODjtGGhZluvg= +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" From 91dfb7d749dbbf43869098f17d59a8f1d7b9a28b Mon Sep 17 00:00:00 2001 From: ebarrios Date: Tue, 14 Jul 2020 07:19:04 +0200 Subject: [PATCH 002/656] Reverted order change in CODEOWNERS --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 7d941588c7..1622f2dfcf 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -5,5 +5,5 @@ # https://help.github.com/articles/about-codeowners/ * @spotify/backstage-core -/packages/techdocs-cli @spotify/techdocs-core /plugins/techdocs @spotify/techdocs-core +/packages/techdocs-cli @spotify/techdocs-core From e42c1ae02b7c368320aee28bd4e157a487312cef Mon Sep 17 00:00:00 2001 From: ebarrios Date: Tue, 14 Jul 2020 07:19:52 +0200 Subject: [PATCH 003/656] Removed space on CODEOWNERS file --- .github/CODEOWNERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 1622f2dfcf..751ec4914d 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -4,6 +4,6 @@ # The last matching pattern takes precedence. # https://help.github.com/articles/about-codeowners/ -* @spotify/backstage-core -/plugins/techdocs @spotify/techdocs-core +* @spotify/backstage-core +/plugins/techdocs @spotify/techdocs-core /packages/techdocs-cli @spotify/techdocs-core From 461f16250a348623257b55c6bdd91f4b9385e870 Mon Sep 17 00:00:00 2001 From: ebarrios Date: Tue, 14 Jul 2020 07:26:15 +0200 Subject: [PATCH 004/656] Removed trivago name on the title for creating a new GCP Project --- .../src/components/NewProjectPage/NewProjectPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx b/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx index bfa2f158ce..5588884a2a 100644 --- a/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx +++ b/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx @@ -48,7 +48,7 @@ export const NewProjectPage: FC<{}> = () => { - + This plugin will help you create a project in gcp. From 07128d499b4a47076693365ba890cb8bd43c2d96 Mon Sep 17 00:00:00 2001 From: ebarrios Date: Tue, 14 Jul 2020 07:40:08 +0200 Subject: [PATCH 005/656] Added or to not mandatory values in the project type for printing if they are not set on the response --- .../src/components/ProjectListPage/ProjectListPage.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/gcp-projects/src/components/ProjectListPage/ProjectListPage.tsx b/plugins/gcp-projects/src/components/ProjectListPage/ProjectListPage.tsx index 8be1b47857..00dac5c70e 100644 --- a/plugins/gcp-projects/src/components/ProjectListPage/ProjectListPage.tsx +++ b/plugins/gcp-projects/src/components/ProjectListPage/ProjectListPage.tsx @@ -103,7 +103,7 @@ const PageContents = () => { - + @@ -119,12 +119,15 @@ const PageContents = () => { - + - + From 8fbe0d32f4d2803f9105e3fb0af74ff1cbae9689 Mon Sep 17 00:00:00 2001 From: ebarrios Date: Tue, 14 Jul 2020 08:11:00 +0200 Subject: [PATCH 006/656] Added baseURL per recomendation from @stefanalund --- packages/backend/package.json | 2 +- plugins/gcp-projects/src/api/GCPClient.ts | 15 +++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/packages/backend/package.json b/packages/backend/package.json index 2844f17744..9e42f6c4cb 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -18,7 +18,6 @@ "migrate:create": "knex migrate:make -x ts" }, "dependencies": { - "@backstage/plugin-proxy-backend": "^0.1.1-alpha.13", "@backstage/backend-common": "^0.1.1-alpha.13", "@backstage/catalog-model": "^0.1.1-alpha.13", "@backstage/config": "^0.1.1-alpha.13", @@ -26,6 +25,7 @@ "@backstage/plugin-auth-backend": "^0.1.1-alpha.13", "@backstage/plugin-catalog-backend": "^0.1.1-alpha.13", "@backstage/plugin-identity-backend": "^0.1.1-alpha.13", + "@backstage/plugin-proxy-backend": "^0.1.1-alpha.13", "@backstage/plugin-rollbar-backend": "^0.1.1-alpha.13", "@backstage/plugin-scaffolder-backend": "^0.1.1-alpha.13", "@backstage/plugin-sentry-backend": "^0.1.1-alpha.13", diff --git a/plugins/gcp-projects/src/api/GCPClient.ts b/plugins/gcp-projects/src/api/GCPClient.ts index fd8b708377..dc4fe21132 100644 --- a/plugins/gcp-projects/src/api/GCPClient.ts +++ b/plugins/gcp-projects/src/api/GCPClient.ts @@ -17,11 +17,12 @@ import { GCPApi } from './GCPApi'; import { Project, Operation, Status } from './types'; +const BaseURL = + 'https://content-cloudresourcemanager.googleapis.com/v1/projects'; + export class GCPClient implements GCPApi { async listProjects({ token }: { token: string }): Promise { - const url = `https://content-cloudresourcemanager.googleapis.com/v1/projects`; - - const response = await fetch(url, { + const response = await fetch(BaseURL, { headers: new Headers({ Accept: '*/*', Authorization: `Bearer ${token}`, @@ -50,7 +51,7 @@ export class GCPClient implements GCPApi { projectId: string, token: Promise, ): Promise { - const url = `https://content-cloudresourcemanager.googleapis.com/v1/projects/${projectId}`; + const url = `${BaseURL}/${projectId}`; const response = await fetch(url, { headers: new Headers({ Authorization: `Bearer ${await token}`, @@ -59,7 +60,7 @@ export class GCPClient implements GCPApi { const dataBlank: Project = { name: 'Error', - projectNumber: `Response status is${response.status}`, + projectNumber: `Response status is ${response.status}`, projectId: 'Error', lifecycleState: 'error', createTime: 'Error', @@ -102,9 +103,7 @@ export class GCPClient implements GCPApi { const body = JSON.stringify(newProject); - const url = `https://content-cloudresourcemanager.googleapis.com/v1/projects`; - - const response = await fetch(url, { + const response = await fetch(BaseURL, { headers: new Headers({ Accept: '*/*', Authorization: `Bearer ${token}`, From 18fc7c99f617d55a59b32c34b44f77175bf5ab54 Mon Sep 17 00:00:00 2001 From: ebarrios Date: Tue, 14 Jul 2020 08:27:22 +0200 Subject: [PATCH 007/656] Removed some extra header on the create new GCP Project --- .../NewProjectPage/NewProjectPage.tsx | 124 ++++++++---------- 1 file changed, 57 insertions(+), 67 deletions(-) diff --git a/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx b/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx index 5588884a2a..57695dd6bc 100644 --- a/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx +++ b/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx @@ -42,78 +42,68 @@ export const NewProjectPage: FC<{}> = () => { }; return ( - -
- - -
- - - - This plugin will help you create a project in gcp. - - - - - - - - setProjectName(e.target.value)} - value={projectName} - fullWidth - /> - - - setProjectId(e.target.value)} - value={projectId} - fullWidth - /> - - - - - - - - {done === true ? ( - - - -
-
-
+ + + + + + + + setProjectName(e.target.value)} + value={projectName} + fullWidth + /> + + + setProjectId(e.target.value)} + value={projectId} + fullWidth + /> + + - - - ) : ( -
- )} + + +
-
-
+ {done === true ? ( + + + +
+
+
+ +
+
+ ) : ( +
+ )} + +
); }; From f9b4a2bd35c028f596673dde656a0ddd88d24dc2 Mon Sep 17 00:00:00 2001 From: ebarrios Date: Tue, 14 Jul 2020 09:37:38 +0200 Subject: [PATCH 008/656] Removed unsused imports from NewProjectPage --- .../src/components/NewProjectPage/NewProjectPage.tsx | 5 ----- 1 file changed, 5 deletions(-) diff --git a/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx b/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx index 57695dd6bc..0eddcf09e5 100644 --- a/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx +++ b/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx @@ -19,13 +19,8 @@ import { Grid, Button, TextField } from '@material-ui/core'; import { InfoCard, - Header, - Page, - pageTheme, Content, ContentHeader, - HeaderLabel, - SupportButton, SimpleStepper, SimpleStepperStep, StructuredMetadataTable, From fed39a1fa7444fd997560014dc962958e52c05bb Mon Sep 17 00:00:00 2001 From: Jaime Mendes Date: Tue, 14 Jul 2020 00:02:43 +0100 Subject: [PATCH 009/656] Adds Auth0 as IdP --- packages/app/src/App.tsx | 2 +- packages/app/src/apis.ts | 11 + .../core-api/src/apis/definitions/auth.ts | 11 + .../auth/auth0/Auth0Auth.test.ts | 36 ++++ .../implementations/auth/auth0/Auth0Auth.ts | 154 ++++++++++++++ .../apis/implementations/auth/auth0/index.ts | 18 ++ .../apis/implementations/auth/auth0/types.ts | 28 +++ .../src/apis/implementations/auth/index.ts | 1 + .../core/src/layout/Sidebar/UserSettings.tsx | 6 + .../src/layout/SignInPage/auth0Provider.tsx | 89 ++++++++ .../core/src/layout/SignInPage/providers.tsx | 5 +- packages/dev-utils/src/devApp/apiFactories.ts | 13 ++ packages/storybook/.storybook/apis.js | 11 + plugins/auth-backend/README.md | 8 + .../auth-backend/src/providers/auth0/index.ts | 17 ++ .../src/providers/auth0/provider.ts | 200 ++++++++++++++++++ .../src/providers/auth0/strategy.ts | 37 ++++ .../auth-backend/src/providers/factories.ts | 2 + plugins/auth-backend/src/service/router.ts | 9 + 19 files changed, 656 insertions(+), 2 deletions(-) create mode 100644 packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.test.ts create mode 100644 packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts create mode 100644 packages/core-api/src/apis/implementations/auth/auth0/index.ts create mode 100644 packages/core-api/src/apis/implementations/auth/auth0/types.ts create mode 100644 packages/core/src/layout/SignInPage/auth0Provider.tsx create mode 100644 plugins/auth-backend/src/providers/auth0/index.ts create mode 100644 plugins/auth-backend/src/providers/auth0/provider.ts create mode 100644 plugins/auth-backend/src/providers/auth0/strategy.ts diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index c569308fc7..33c56796f5 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -33,7 +33,7 @@ const app = createApp({ SignInPage: props => ( ), }, diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index cac3d6e171..5bb17fd9c8 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -29,6 +29,7 @@ import { OAuth2, OktaAuth, GitlabAuth, + Auth0Auth, oauthRequestApiRef, OAuthRequestManager, googleAuthApiRef, @@ -36,6 +37,7 @@ import { oauth2ApiRef, oktaAuthApiRef, gitlabAuthApiRef, + auth0AuthApiRef, storageApiRef, WebStorage, } from '@backstage/core'; @@ -129,6 +131,15 @@ export const apis = (config: ConfigApi) => { oauthRequestApi, }), ); + + builder.add( + auth0AuthApiRef, + Auth0Auth.create({ + apiOrigin: backendUrl, + basePath: '/auth/', + oauthRequestApi, + }), + ); builder.add( oauth2ApiRef, diff --git a/packages/core-api/src/apis/definitions/auth.ts b/packages/core-api/src/apis/definitions/auth.ts index ec7aba81c4..05c4ed48af 100644 --- a/packages/core-api/src/apis/definitions/auth.ts +++ b/packages/core-api/src/apis/definitions/auth.ts @@ -264,6 +264,17 @@ export const gitlabAuthApiRef = createApiRef< description: 'Provides authentication towards Gitlab APIs', }); +/** + * Provides authentication towards Auth0 APIs. + * + * See https://auth0.com/docs/scopes/current/oidc-scopes + * for a full list of supported scopes. + */ +export const auth0AuthApiRef = createApiRef({ + id: 'core.auth.auth0', + description: 'Provides authentication towards Auth0 APIs', +}); + /** * Provides authentication for custom identity providers. */ diff --git a/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.test.ts b/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.test.ts new file mode 100644 index 0000000000..5912c2a364 --- /dev/null +++ b/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.test.ts @@ -0,0 +1,36 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 Auth0Auth from './Auth0Auth'; + +describe('Auth0Auth', () => { + it('should normalize scope', () => { + const tests = [ + { + arguments: ['read_user api write_repository'], + expect: new Set(['read_user', 'api', 'write_repository']), + }, + { + arguments: ['read_repository sudo'], + expect: new Set(['read_repository', 'sudo']), + }, + ]; + + for (const test of tests) { + expect(Auth0Auth.normalizeScopes(...test.arguments)).toEqual(test.expect); + } + }); +}); diff --git a/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts b/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts new file mode 100644 index 0000000000..3d8a42a4cc --- /dev/null +++ b/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts @@ -0,0 +1,154 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 Auth0Icon from '@material-ui/icons/AcUnit'; +import { DefaultAuthConnector } from '../../../../lib/AuthConnector'; +import { Auth0Session } from './types'; +import { + OpenIdConnectApi, + ProfileInfoApi, + ProfileInfo, + SessionStateApi, + SessionState, + BackstageIdentityApi, + AuthRequestOptions, + BackstageIdentity, +} from '../../../definitions/auth'; +import { OAuthRequestApi, AuthProvider } from '../../../definitions'; +import { SessionManager } from '../../../../lib/AuthSessionManager/types'; +import { RefreshingAuthSessionManager } from '../../../../lib/AuthSessionManager'; +import { Observable } from '../../../../types'; + +type CreateOptions = { + // TODO(Following the words of Rugvip): These two should be grabbed from global config when available, they're not unique to Auth0Auth + apiOrigin: string; + basePath: string; + + oauthRequestApi: OAuthRequestApi; + + environment?: string; + provider?: AuthProvider & { id: string }; +}; + +export type Auth0AuthResponse = { + providerInfo: { + accessToken: string; + idToken: string; + scope: string; + expiresInSeconds: number; + }; + profile: ProfileInfo; + backstageIdentity: BackstageIdentity; +}; + +const DEFAULT_PROVIDER = { + id: 'auth0', + title: 'Auth0', + icon: Auth0Icon, +}; + +class Auth0Auth + implements + OpenIdConnectApi, + ProfileInfoApi, + BackstageIdentityApi, + SessionStateApi { + static create({ + apiOrigin, + basePath, + environment = 'development', + provider = DEFAULT_PROVIDER, + oauthRequestApi, + }: CreateOptions) { + const connector = new DefaultAuthConnector({ + apiOrigin, + basePath, + environment, + provider, + oauthRequestApi: oauthRequestApi, + sessionTransform(res: Auth0AuthResponse): Auth0Session { + return { + ...res, + providerInfo: { + idToken: res.providerInfo.idToken, + accessToken: res.providerInfo.accessToken, + scopes: Auth0Auth.normalizeScopes(res.providerInfo.scope), + expiresAt: new Date( + Date.now() + res.providerInfo.expiresInSeconds * 1000, + ), + }, + }; + }, + }); + + const sessionManager = new RefreshingAuthSessionManager({ + connector, + defaultScopes: new Set([ + 'openid', + `email`, + `profile`, + ]), + sessionScopes: (session: Auth0Session) => session.providerInfo.scopes, + sessionShouldRefresh: (session: Auth0Session) => { + const expiresInSec = + (session.providerInfo.expiresAt.getTime() - Date.now()) / 1000; + return expiresInSec < 60 * 5; + }, + }); + + return new Auth0Auth(sessionManager); + } + + sessionState$(): Observable { + return this.sessionManager.sessionState$(); + } + + constructor(private readonly sessionManager: SessionManager) {} + + async getIdToken(options: AuthRequestOptions = {}) { + const session = await this.sessionManager.getSession(options); + return session?.providerInfo.idToken ?? ''; + } + + async logout() { + await this.sessionManager.removeSession(); + } + + async getBackstageIdentity( + options: AuthRequestOptions = {}, + ): Promise { + const session = await this.sessionManager.getSession(options); + return session?.backstageIdentity; + } + + async getProfile(options: AuthRequestOptions = {}) { + const session = await this.sessionManager.getSession(options); + return session?.profile; + } + + static normalizeScopes(scope?: string | string[]): Set { + if (!scope) { + return new Set(); + } + + const scopeList = Array.isArray(scope) + ? scope + : scope.split(/[\s|,]/).filter(Boolean); + + return new Set(scopeList); + } +} +export default Auth0Auth; diff --git a/packages/core-api/src/apis/implementations/auth/auth0/index.ts b/packages/core-api/src/apis/implementations/auth/auth0/index.ts new file mode 100644 index 0000000000..fb5d432642 --- /dev/null +++ b/packages/core-api/src/apis/implementations/auth/auth0/index.ts @@ -0,0 +1,18 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 * from './types'; +export { default as Auth0Auth } from './Auth0Auth'; diff --git a/packages/core-api/src/apis/implementations/auth/auth0/types.ts b/packages/core-api/src/apis/implementations/auth/auth0/types.ts new file mode 100644 index 0000000000..203ccd9fd9 --- /dev/null +++ b/packages/core-api/src/apis/implementations/auth/auth0/types.ts @@ -0,0 +1,28 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { ProfileInfo, BackstageIdentity } from '../../../definitions'; + +export type Auth0Session = { + providerInfo: { + idToken: string; + accessToken: string; + scopes: Set; + expiresAt: Date; + }; + profile: ProfileInfo; + backstageIdentity: BackstageIdentity; +}; diff --git a/packages/core-api/src/apis/implementations/auth/index.ts b/packages/core-api/src/apis/implementations/auth/index.ts index 786e9fa771..ce6e0d8570 100644 --- a/packages/core-api/src/apis/implementations/auth/index.ts +++ b/packages/core-api/src/apis/implementations/auth/index.ts @@ -19,3 +19,4 @@ export * from './gitlab'; export * from './google'; export * from './oauth2'; export * from './okta'; +export * from './auth0'; diff --git a/packages/core/src/layout/Sidebar/UserSettings.tsx b/packages/core/src/layout/Sidebar/UserSettings.tsx index 5f66fc6558..89dd9f5a39 100644 --- a/packages/core/src/layout/Sidebar/UserSettings.tsx +++ b/packages/core/src/layout/Sidebar/UserSettings.tsx @@ -21,6 +21,7 @@ import { identityApiRef, oauth2ApiRef, oktaAuthApiRef, + auth0AuthApiRef, useApi, } from '@backstage/core-api'; import Collapse from '@material-ui/core/Collapse'; @@ -69,6 +70,11 @@ export function SidebarUserSettings() { apiRef={oktaAuthApiRef} icon={Star} /> + { + const auth0AuthApi = useApi(auth0AuthApiRef); + const errorApi = useApi(errorApiRef); + + const handleLogin = async () => { + try { + const identity = await auth0AuthApi.getBackstageIdentity({ + instantPopup: true, + }); + + const profile = await auth0AuthApi.getProfile(); + + onResult({ + userId: identity!.id, + profile: profile!, + getIdToken: () => + auth0AuthApi.getBackstageIdentity().then(i => i!.idToken), + logout: async () => { + await auth0AuthApi.logout(); + }, + }); + } catch (error) { + errorApi.post(error); + } + }; + + return ( + + + Sign In + + } + > + Sign In using Auth0 + + + ); +}; + +const loader: ProviderLoader = async apis => { + const auth0AuthApi = apis.get(auth0AuthApiRef)!; + + const identity = await auth0AuthApi.getBackstageIdentity({ + optional: true, + }); + + if (!identity) { + return undefined; + } + + const profile = await auth0AuthApi.getProfile(); + + return { + userId: identity.id, + profile: profile!, + getIdToken: () => + auth0AuthApi.getBackstageIdentity().then(i => i!.idToken), + logout: async () => { + await auth0AuthApi.logout(); + }, + }; +}; + +export const auth0Provider: SignInProvider = { Component, loader }; diff --git a/packages/core/src/layout/SignInPage/providers.tsx b/packages/core/src/layout/SignInPage/providers.tsx index e4f4aee8c7..4eb3fe9222 100644 --- a/packages/core/src/layout/SignInPage/providers.tsx +++ b/packages/core/src/layout/SignInPage/providers.tsx @@ -21,6 +21,7 @@ import { customProvider } from './customProvider'; import { gitlabProvider } from './gitlabProvider'; import { oktaProvider } from './oktaProvider'; import { githubProvider } from './githubProvider'; +import { auth0Provider } from './auth0Provider'; import { SignInPageProps, SignInResult, @@ -39,7 +40,8 @@ export type SignInProviderId = | 'gitlab' | 'custom' | 'okta' - | 'github'; + | 'github' + | 'auth0'; const signInProviders: { [id in SignInProviderId]: SignInProvider } = { guest: guestProvider, @@ -48,6 +50,7 @@ const signInProviders: { [id in SignInProviderId]: SignInProvider } = { custom: customProvider, okta: oktaProvider, github: githubProvider, + auth0: auth0Provider, }; export const useSignInProviders = ( diff --git a/packages/dev-utils/src/devApp/apiFactories.ts b/packages/dev-utils/src/devApp/apiFactories.ts index 35295b4631..b88611f062 100644 --- a/packages/dev-utils/src/devApp/apiFactories.ts +++ b/packages/dev-utils/src/devApp/apiFactories.ts @@ -30,6 +30,8 @@ import { githubAuthApiRef, GitlabAuth, gitlabAuthApiRef, + Auth0Auth, + auth0AuthApiRef, } from '@backstage/core'; // TODO(rugvip): We should likely figure out how to reuse all of these between apps @@ -88,3 +90,14 @@ export const gitlabAuthApiFactory = createApiFactory({ oauthRequestApi, }), }); + +export const auth0AuthApiFactory = createApiFactory({ + implements: auth0AuthApiRef, + deps: { oauthRequestApi: oauthRequestApiRef }, + factory: ({ oauthRequestApi }) => + Auth0Auth.create({ + apiOrigin: 'http://localhost:7000', + basePath: '/auth/', + oauthRequestApi, + }), +}); diff --git a/packages/storybook/.storybook/apis.js b/packages/storybook/.storybook/apis.js index f4b7557b89..ab461faabf 100644 --- a/packages/storybook/.storybook/apis.js +++ b/packages/storybook/.storybook/apis.js @@ -18,6 +18,8 @@ import { OAuthRequestManager, OktaAuth, oktaAuthApiRef, + Auth0Auth, + auth0AuthApiRef, } from '@backstage/core'; const builder = ApiRegistry.builder(); @@ -74,6 +76,15 @@ builder.add( }), ); +builder.add( + auth0AuthApiRef, + Auth0Auth.create({ + apiOrigin: 'http://localhost:7000', + basePath: '/auth/', + oauthRequestApi, + }), +); + builder.add( oauth2ApiRef, OAuth2.create({ diff --git a/plugins/auth-backend/README.md b/plugins/auth-backend/README.md index ff0b1c7a3d..c4db98be94 100644 --- a/plugins/auth-backend/README.md +++ b/plugins/auth-backend/README.md @@ -48,6 +48,14 @@ export AUTH_OKTA_CLIENT_ID=x export AUTH_OKTA_CLIENT_SECRET=x ``` +### Auth0 + +```bash +export AUTH_AUTH0_DOMAIN=x +export AUTH_AUTH0_CLIENT_ID=x +export AUTH_AUTH0_CLIENT_SECRET=x +``` + ### SAML To try out SAML, you can use the mock identity provider: diff --git a/plugins/auth-backend/src/providers/auth0/index.ts b/plugins/auth-backend/src/providers/auth0/index.ts new file mode 100644 index 0000000000..87c9aceaa4 --- /dev/null +++ b/plugins/auth-backend/src/providers/auth0/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { createAuth0Provider } from './provider'; diff --git a/plugins/auth-backend/src/providers/auth0/provider.ts b/plugins/auth-backend/src/providers/auth0/provider.ts new file mode 100644 index 0000000000..8eebd5f158 --- /dev/null +++ b/plugins/auth-backend/src/providers/auth0/provider.ts @@ -0,0 +1,200 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 express from 'express'; +import passport from 'passport'; +import Auth0Strategy, { Auth0StrategyOptionsWithRequest } from './strategy'; +import { Logger } from 'winston'; +import { TokenIssuer } from '../../identity'; +import { + EnvironmentHandler, + EnvironmentHandlers, +} from '../../lib/EnvironmentHandler'; +import { OAuthProvider } from '../../lib/OAuthProvider'; +import { + executeFetchUserProfileStrategy, + executeFrameHandlerStrategy, + executeRedirectStrategy, + executeRefreshTokenStrategy, + makeProfileInfo, +} from '../../lib/PassportStrategyHelper'; +import { + AuthProviderConfig, + EnvironmentProviderConfig, + OAuthProviderHandlers, + OAuthResponse, + PassportDoneCallback, + RedirectInfo, +} from '../types'; + +interface Auth0ProviderConfig { + clientId: string; + clientSecret: string; + domain: string; + callbackURL: string; + secure: boolean; + appOrigin: string; +} + +type PrivateInfo = { + refreshToken: string; +}; + +export class Auth0AuthProvider implements OAuthProviderHandlers { + private readonly _strategy: Auth0Strategy; + + constructor(options: Auth0StrategyOptionsWithRequest) { + this._strategy = new Auth0Strategy( + options, + ( + accessToken: any, + refreshToken: any, + params: any, + rawProfile: passport.Profile, + done: PassportDoneCallback, + ) => { + const profile = makeProfileInfo(rawProfile, params.id_token); + done( + undefined, + { + providerInfo: { + idToken: params.id_token, + accessToken, + scope: params.scope, + expiresInSeconds: params.expires_in, + }, + profile, + }, + { + refreshToken, + }, + ); + }, + ); + } + + async start( + req: express.Request, + options: Record, + ): Promise { + const providerOptions = { + ...options, + accessType: 'offline', + prompt: 'consent', + }; + return await executeRedirectStrategy(req, this._strategy, providerOptions); + } + + async handler( + req: express.Request, + ): Promise<{ response: OAuthResponse; refreshToken: string }> { + const { response, privateInfo } = await executeFrameHandlerStrategy< + OAuthResponse, + PrivateInfo + >(req, this._strategy); + + return { + response: await this.populateIdentity(response), + refreshToken: privateInfo.refreshToken, + }; + } + + async refresh(refreshToken: string, scope: string): Promise { + const { accessToken, params } = await executeRefreshTokenStrategy( + this._strategy, + refreshToken, + scope, + ); + + const profile = await executeFetchUserProfileStrategy( + this._strategy, + accessToken, + params.id_token, + ); + + return this.populateIdentity({ + providerInfo: { + accessToken, + idToken: params.id_token, + expiresInSeconds: params.expires_in, + scope: params.scope, + }, + profile, + }); + } + + // Use this function to grab the user profile info from the token + // Then populate the profile with it + private async populateIdentity( + response: OAuthResponse, + ): Promise { + const { profile } = response; + + if (!profile.email) { + throw new Error('Profile does not contain a profile'); + } + + const id = profile.email.split('@')[0]; + + return { ...response, backstageIdentity: { id } }; + } +} + +export function createAuth0Provider( + { baseUrl }: AuthProviderConfig, + providerConfig: EnvironmentProviderConfig, + logger: Logger, + tokenIssuer: TokenIssuer, +) { + const envProviders: EnvironmentHandlers = {}; + const providerId = 'auth0'; + + for (const [env, envConfig] of Object.entries(providerConfig)) { + const config = (envConfig as unknown) as Auth0ProviderConfig; + const opts = { + clientID: config.clientId, + clientSecret: config.clientSecret, + callbackURL: `${baseUrl}/${providerId}/handler/frame?env=${env}`, + domain: config.domain, + } as Auth0StrategyOptionsWithRequest; + + if (!opts.clientID || !opts.clientSecret || !opts.domain) { + if (process.env.NODE_ENV !== 'development') { + throw new Error( + 'Failed to initialize OAuth2 auth provider, set AUTH_AUTH0_CLIENT_ID, AUTH_AUTH0_CLIENT_SECRET, and AUTH_AUTH0_DOMAIN env vars', + ); + } + + logger.warn( + 'OAuth2 auth provider disabled, set AUTH_AUTH0_CLIENT_ID, AUTH_AUTH0_CLIENT_SECRET, and AUTH_AUTH0_DOMAIN env vars to enable', + ); + continue; + } + + const { secure, appOrigin } = config; + envProviders[env] = new OAuthProvider(new Auth0AuthProvider(opts), { + disableRefresh: true, + persistScopes: true, + providerId: providerId, + secure, + baseUrl, + appOrigin, + tokenIssuer, + }); + } + + return new EnvironmentHandler(providerId, envProviders); +} diff --git a/plugins/auth-backend/src/providers/auth0/strategy.ts b/plugins/auth-backend/src/providers/auth0/strategy.ts new file mode 100644 index 0000000000..4dd7440448 --- /dev/null +++ b/plugins/auth-backend/src/providers/auth0/strategy.ts @@ -0,0 +1,37 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 OAuth2Strategy from 'passport-oauth2'; + +export interface Auth0StrategyOptionsWithRequest { + clientID: string; + clientSecret: string; + callbackURL: string; + domain: string; + passReqToCallback: true; +} + +export default class Auth0Strategy extends OAuth2Strategy { + constructor(options: Auth0StrategyOptionsWithRequest, verify: OAuth2Strategy.VerifyFunctionWithRequest) { + const optionsWithURLs = { + ...options, + authorizationURL: `https://${options.domain}/authorize`, + tokenURL: `https://${options.domain}/oauth/token`, + userInfoURL: `https://${options.domain}/userinfo`, + apiUrl: `https://${options.domain}/api`, + } + super(optionsWithURLs, verify) + } +} diff --git a/plugins/auth-backend/src/providers/factories.ts b/plugins/auth-backend/src/providers/factories.ts index 4c9caf214b..77e5356721 100644 --- a/plugins/auth-backend/src/providers/factories.ts +++ b/plugins/auth-backend/src/providers/factories.ts @@ -23,6 +23,7 @@ import { createGoogleProvider } from './google'; import { createOAuth2Provider } from './oauth2'; import { createOktaProvider } from './okta'; import { createSamlProvider } from './saml'; +import { createAuth0Provider } from './auth0' import { AuthProviderConfig, AuthProviderFactory } from './types'; const factories: { [providerId: string]: AuthProviderFactory } = { @@ -31,6 +32,7 @@ const factories: { [providerId: string]: AuthProviderFactory } = { gitlab: createGitlabProvider, saml: createSamlProvider, okta: createOktaProvider, + auth0: createAuth0Provider, oauth2: createOAuth2Provider, }; diff --git a/plugins/auth-backend/src/service/router.ts b/plugins/auth-backend/src/service/router.ts index 6b296cba2d..256545219d 100644 --- a/plugins/auth-backend/src/service/router.ts +++ b/plugins/auth-backend/src/service/router.ts @@ -113,6 +113,15 @@ export async function createRouter( tokenURL: process.env.AUTH_OAUTH2_TOKEN_URL!, }, }, + auth0: { + development: { + appOrigin, + secure: false, + domain: process.env.AUTH_AUTH0_DOMAIN!, + clientId: process.env.AUTH_AUTH0_CLIENT_ID!, + clientSecret: process.env.AUTH_AUTH0_CLIENT_SECRET! + }, + }, }, }, }; From 2c13894037705b392cb3d2c31f45c5b8ed1eb5ae Mon Sep 17 00:00:00 2001 From: ebarrios Date: Tue, 28 Jul 2020 15:48:14 +0200 Subject: [PATCH 010/656] Modify the UI per request of the backstage team --- .../NewProjectPage/NewProjectPage.tsx | 73 +++++--- .../ProjectDetailsPage/ProjectDetailsPage.tsx | 169 ++++++++++-------- .../ProjectListPage/ProjectListPage.tsx | 58 +++--- 3 files changed, 173 insertions(+), 127 deletions(-) diff --git a/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx b/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx index 0eddcf09e5..f09044f3ab 100644 --- a/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx +++ b/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import React, { FC, useState } from 'react'; +import React, { FC, useState, Fragment } from 'react'; import { Grid, Button, TextField } from '@material-ui/core'; import { @@ -24,9 +24,14 @@ import { SimpleStepper, SimpleStepperStep, StructuredMetadataTable, + HeaderLabel, + Page, + Header, + pageTheme, + SupportButton, } from '@backstage/core'; -export const NewProjectPage: FC<{}> = () => { +export const Project: FC<{}> = () => { const [projectName, setProjectName] = useState(''); const [projectId, setProjectId] = useState(''); const [done, setDone] = useState(false); @@ -38,10 +43,9 @@ export const NewProjectPage: FC<{}> = () => { return ( - - - + + = () => { /> + + - {done === true ? ( - - - -
-
-
- -
-
- ) : ( -
- )}
); }; + +const labels = ( + <> + + + +); + +export const NewProjectPage = () => { + return ( + +
+ {labels} +
+ + + Support Button + + + +
+ ); +}; diff --git a/plugins/gcp-projects/src/components/ProjectDetailsPage/ProjectDetailsPage.tsx b/plugins/gcp-projects/src/components/ProjectDetailsPage/ProjectDetailsPage.tsx index d9721bf549..713918d8a2 100644 --- a/plugins/gcp-projects/src/components/ProjectDetailsPage/ProjectDetailsPage.tsx +++ b/plugins/gcp-projects/src/components/ProjectDetailsPage/ProjectDetailsPage.tsx @@ -28,10 +28,19 @@ import { Theme, Typography, } from '@material-ui/core'; +import { + useApi, + googleAuthApiRef, + HeaderLabel, + Page, + Header, + pageTheme, + SupportButton, + Content, + ContentHeader, +} from '@backstage/core'; import React from 'react'; -import { useLocation } from 'react-router-dom'; import { useAsync } from 'react-use'; -import { Link, useApi, googleAuthApiRef } from '@backstage/core'; import { GCPApiRef } from '../../api'; const useStyles = makeStyles(theme => ({ @@ -47,7 +56,7 @@ const useStyles = makeStyles(theme => ({ }, })); -export const ProjectDetailsPage = () => { +const DetailsPage = () => { const api = useApi(GCPApiRef); const googleApi = useApi(googleAuthApiRef); const token = googleApi.getAccessToken( @@ -55,7 +64,6 @@ export const ProjectDetailsPage = () => { ); const classes = useStyles(); - const location = useLocation(); const status = useAsync( () => api.getProject( @@ -78,76 +86,87 @@ export const ProjectDetailsPage = () => { const details = status.value; return ( -
- - - - < - - - Build Details - - - - - - - Name - - {details?.name} - - - - Project Number - - {details?.projectNumber} - - - - Project ID - - {details?.projectId} - - - - State - - - {details?.lifecycleState} - - - - - Creation Time - - {details?.createTime} - - - - Links - - - - {details?.name && ( - - )} - {details?.name && ( - - )} - - - - -
-
-
+ + + + + + Name + + {details?.name} + + + + Project Number + + {details?.projectNumber} + + + + Project ID + + {details?.projectId} + + + + State + + {details?.lifecycleState} + + + + Creation Time + + {details?.createTime} + + + + Links + + + + {details?.name && ( + + )} + {details?.name && ( + + )} + + + + +
+
+ ); +}; + +const labels = ( + <> + + + +); + +export const ProjectDetailsPage = () => { + return ( + +
+ {labels} +
+ + + Support Button + + + +
); }; diff --git a/plugins/gcp-projects/src/components/ProjectListPage/ProjectListPage.tsx b/plugins/gcp-projects/src/components/ProjectListPage/ProjectListPage.tsx index 00dac5c70e..163d8a54d8 100644 --- a/plugins/gcp-projects/src/components/ProjectListPage/ProjectListPage.tsx +++ b/plugins/gcp-projects/src/components/ProjectListPage/ProjectListPage.tsx @@ -16,7 +16,19 @@ // NEEDS WORK -import { Link, useApi, googleAuthApiRef, InfoCard } from '@backstage/core'; +import { + Link, + useApi, + googleAuthApiRef, + InfoCard, + HeaderLabel, + Page, + Header, + pageTheme, + SupportButton, + Content, + ContentHeader, +} from '@backstage/core'; import { LinearProgress, makeStyles, @@ -47,14 +59,12 @@ const LongText = ({ text, max }: { text: string; max: number }) => { ); }; -const useStyles = makeStyles(theme => ({ - root: { - padding: theme.spacing(2), - }, - title: { - padding: theme.spacing(1, 0, 2, 0), - }, -})); +const labels = ( + <> + + + +); const PageContents = () => { const api = useApi(GCPApiRef); @@ -76,7 +86,7 @@ const PageContents = () => { if (error) { return ( - Failed to load projects, {error.message}{' '} + {error.message}{' '} ); } @@ -139,20 +149,20 @@ const PageContents = () => { }; export const ProjectListPage = () => { - const classes = useStyles(); - return ( -
- - GCP Projects - - - - - - -
+ +
+ {labels} +
+ + + + All your software catalog entities + + + +
); }; From 082d667854ed763d3377980541638382ab67fcfd Mon Sep 17 00:00:00 2001 From: ebarrios Date: Tue, 28 Jul 2020 17:12:54 +0200 Subject: [PATCH 011/656] Clean up for yarn tsc and fix the simple settep for project creation --- .../NewProjectPage/NewProjectPage.tsx | 32 ++++++++++++------- .../ProjectListPage/ProjectListPage.tsx | 3 -- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx b/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx index f09044f3ab..4d439bbc0d 100644 --- a/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx +++ b/plugins/gcp-projects/src/components/NewProjectPage/NewProjectPage.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import React, { FC, useState, Fragment } from 'react'; +import React, { FC, useState } from 'react'; import { Grid, Button, TextField } from '@material-ui/core'; import { @@ -34,7 +34,7 @@ import { export const Project: FC<{}> = () => { const [projectName, setProjectName] = useState(''); const [projectId, setProjectId] = useState(''); - const [done, setDone] = useState(false); + const [disabled, setDisabled] = useState(true); const metadata = { ProjectName: projectName, @@ -69,17 +69,15 @@ export const Project: FC<{}> = () => { fullWidth /> - + + setDisabled(false), + }} + > - + diff --git a/plugins/gcp-projects/src/components/ProjectListPage/ProjectListPage.tsx b/plugins/gcp-projects/src/components/ProjectListPage/ProjectListPage.tsx index 163d8a54d8..8d612f75f8 100644 --- a/plugins/gcp-projects/src/components/ProjectListPage/ProjectListPage.tsx +++ b/plugins/gcp-projects/src/components/ProjectListPage/ProjectListPage.tsx @@ -20,7 +20,6 @@ import { Link, useApi, googleAuthApiRef, - InfoCard, HeaderLabel, Page, Header, @@ -31,7 +30,6 @@ import { } from '@backstage/core'; import { LinearProgress, - makeStyles, Paper, Table, TableBody, @@ -39,7 +37,6 @@ import { TableContainer, TableHead, TableRow, - Theme, Tooltip, Typography, Button, From 019b9b6dbc1fade2762a21ff89646fda9c4765a9 Mon Sep 17 00:00:00 2001 From: ebarrios Date: Wed, 29 Jul 2020 12:09:33 +0200 Subject: [PATCH 012/656] Readded package gcp-projects to packages.app.package.json --- packages/app/package.json | 1 + yarn.lock | 21 +++++++++------------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/app/package.json b/packages/app/package.json index 168506d498..164865cead 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -8,6 +8,7 @@ "@backstage/plugin-catalog": "^0.1.1-alpha.16", "@backstage/plugin-circleci": "^0.1.1-alpha.16", "@backstage/plugin-explore": "^0.1.1-alpha.16", + "@backstage/plugin-gcp-projects": "^0.1.1-alpha.16", "@backstage/plugin-github-actions": "^0.1.1-alpha.16", "@backstage/plugin-gitops-profiles": "^0.1.1-alpha.16", "@backstage/plugin-graphiql": "^0.1.1-alpha.16", diff --git a/yarn.lock b/yarn.lock index cb354e71d4..f1bcff10a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3933,6 +3933,14 @@ jest-diff "^25.2.1" pretty-format "^25.2.1" +"@types/jest@^25.2.2": + version "25.2.3" + resolved "https://registry.npmjs.org/@types/jest/-/jest-25.2.3.tgz#33d27e4c4716caae4eced355097a47ad363fdcaf" + integrity sha512-JXc1nK/tXHiDhV55dvfzqtmP4S3sy3T3ouV2tkViZgxY/zeUkcpQcQPGRlgF4KmWzWW5oiWYSZwtCB+2RsE4Fw== + dependencies: + jest-diff "^25.2.1" + pretty-format "^25.2.1" + "@types/jquery@^3.3.34": version "3.3.38" resolved "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.38.tgz#6385f1e1b30bd2bff55ae8ee75ea42a999cc3608" @@ -13220,13 +13228,12 @@ loglevel@^1.6.7, loglevel@^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== - long@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.0, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -17358,11 +17365,6 @@ resolve-from@^4.0.0: resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - resolve-pathname@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" @@ -20372,11 +20374,6 @@ whatwg-fetch@^2.0.0, whatwg-fetch@^2.0.4: resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== -whatwg-fetch@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.2.0.tgz#8e134f701f0a4ab5fda82626f113e2b647fd16dc" - integrity sha512-SdGPoQMMnzVYThUbSrEvqTlkvC1Ux27NehaJ/GUHBfNrh5Mjg+1/uRyFMwVnxO2MrikMWvWAqUGgQOfVU4hT7w== - whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" From 840e708bf7a472d55a2daa7f3a79b30fb77b1e4a Mon Sep 17 00:00:00 2001 From: ebarrios Date: Wed, 29 Jul 2020 12:14:11 +0200 Subject: [PATCH 013/656] Rolled back plugin version to 0.1.1-alpha.13 --- packages/app/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app/package.json b/packages/app/package.json index 164865cead..495a375bd8 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -8,7 +8,7 @@ "@backstage/plugin-catalog": "^0.1.1-alpha.16", "@backstage/plugin-circleci": "^0.1.1-alpha.16", "@backstage/plugin-explore": "^0.1.1-alpha.16", - "@backstage/plugin-gcp-projects": "^0.1.1-alpha.16", + "@backstage/plugin-gcp-projects": "^0.1.1-alpha.13", "@backstage/plugin-github-actions": "^0.1.1-alpha.16", "@backstage/plugin-gitops-profiles": "^0.1.1-alpha.16", "@backstage/plugin-graphiql": "^0.1.1-alpha.16", From c28527a469133141d94de71770a9da2cb6fdd8d5 Mon Sep 17 00:00:00 2001 From: ebarrios Date: Wed, 29 Jul 2020 12:42:25 +0200 Subject: [PATCH 014/656] Using version ^0.1.1-alpha.16 --- packages/app/package.json | 2 +- plugins/gcp-projects/package.json | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/app/package.json b/packages/app/package.json index 495a375bd8..164865cead 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -8,7 +8,7 @@ "@backstage/plugin-catalog": "^0.1.1-alpha.16", "@backstage/plugin-circleci": "^0.1.1-alpha.16", "@backstage/plugin-explore": "^0.1.1-alpha.16", - "@backstage/plugin-gcp-projects": "^0.1.1-alpha.13", + "@backstage/plugin-gcp-projects": "^0.1.1-alpha.16", "@backstage/plugin-github-actions": "^0.1.1-alpha.16", "@backstage/plugin-gitops-profiles": "^0.1.1-alpha.16", "@backstage/plugin-graphiql": "^0.1.1-alpha.16", diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index 2bef7feef4..1b4a031aac 100644 --- a/plugins/gcp-projects/package.json +++ b/plugins/gcp-projects/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gcp-projects", - "version": "0.1.1-alpha.13", + "version": "0.1.1-alpha.16", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.13", - "@backstage/theme": "^0.1.1-alpha.13", + "@backstage/core": "^0.1.1-alpha.16", + "@backstage/theme": "^0.1.1-alpha.16", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,12 +32,12 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.13", - "@backstage/dev-utils": "^0.1.1-alpha.13", + "@backstage/cli": "^0.1.1-alpha.16", + "@backstage/dev-utils": "^0.1.1-alpha.16", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", - "@types/jest": "^25.2.2", + "@types/jest": "^26.0.7", "@types/node": "^12.0.0", "jest-fetch-mock": "^3.0.3" }, From 2d747ac75811259e630d2def09574c295153c63f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 12 Aug 2020 10:50:17 +0000 Subject: [PATCH 015/656] chore(deps-dev): bump @types/react-helmet from 5.0.15 to 6.1.0 Bumps [@types/react-helmet](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-helmet) from 5.0.15 to 6.1.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-helmet) Signed-off-by: dependabot-preview[bot] --- packages/core/package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index f75df3f564..1fa6804d58 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -63,7 +63,7 @@ "@types/google-protobuf": "^3.7.2", "@types/jest": "^26.0.7", "@types/node": "^12.0.0", - "@types/react-helmet": "^5.0.15", + "@types/react-helmet": "^6.1.0", "@types/zen-observable": "^0.8.0", "jest-fetch-mock": "^3.0.3" }, diff --git a/yarn.lock b/yarn.lock index 28814f9f85..7776bec229 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4531,10 +4531,10 @@ dependencies: "@types/react" "*" -"@types/react-helmet@^5.0.15": - version "5.0.15" - resolved "https://registry.npmjs.org/@types/react-helmet/-/react-helmet-5.0.15.tgz#af0370617307e9f062c6aee0f1f5588224ce646e" - integrity sha512-CCjqvecDJTXRrHG8aTc2YECcQCl26za/q+NaBRvy/wtm0Uh38koM2dpv2bG1xJV4ckz3t1lm2/5KU6nt2s9BWg== +"@types/react-helmet@^6.1.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@types/react-helmet/-/react-helmet-6.1.0.tgz#af586ed685f4905e2adc7462d1d65ace52beee7a" + integrity sha512-PYRoU1XJFOzQ3BHvWL1T8iDNbRjdMDJMT5hFmZKGbsq09kbSqJy61uwEpTrbTNWDopVphUT34zUSVLK9pjsgYQ== dependencies: "@types/react" "*" From f5a499a5e2d8ccd04f438e07065c609588fdc746 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 12 Aug 2020 10:52:34 +0000 Subject: [PATCH 016/656] chore(deps): bump typescript from 3.9.5 to 3.9.7 Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.9.5 to 3.9.7. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v3.9.5...v3.9.7) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 28814f9f85..4cdf1b3484 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20020,9 +20020,9 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript@^3.9.3: - version "3.9.5" - resolved "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz#586f0dba300cde8be52dd1ac4f7e1009c1b13f36" - integrity sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ== + version "3.9.7" + resolved "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" + integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" From 635850a1c1bec771f10b2a0d1308189b84630c80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20DOREAU?= Date: Sun, 9 Aug 2020 12:35:27 +0200 Subject: [PATCH 017/656] feat(create-app): add catalog and scaffolder plugins --- .../templates/default-app/package.json.hbs | 4 ++ .../default-app/packages/app/src/App.tsx | 2 + .../default-app/packages/app/src/apis.ts | 48 +++++++++++++++++++ .../default-app/packages/app/src/plugins.ts | 2 + 4 files changed, 56 insertions(+) create mode 100644 packages/create-app/templates/default-app/packages/app/src/apis.ts diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs index b59ca63fa3..71e4d50f6f 100644 --- a/packages/create-app/templates/default-app/package.json.hbs +++ b/packages/create-app/templates/default-app/package.json.hbs @@ -24,6 +24,10 @@ "plugins/*" ] }, + "dependencies": { + "@backstage/plugin-catalog": "^{{version}}", + "@backstage/plugin-scaffolder": "^{{version}}" + }, "devDependencies": { "@backstage/cli": "^{{version}}", "@spotify/prettier-config": "^7.0.0", diff --git a/packages/create-app/templates/default-app/packages/app/src/App.tsx b/packages/create-app/templates/default-app/packages/app/src/App.tsx index 8a0aedca2e..724b83d41b 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.tsx @@ -1,8 +1,10 @@ import { createApp } from '@backstage/core'; import React, { FC } from 'react'; +import { apis } from './apis'; import * as plugins from './plugins'; const app = createApp({ + apis, plugins: Object.values(plugins), }); diff --git a/packages/create-app/templates/default-app/packages/app/src/apis.ts b/packages/create-app/templates/default-app/packages/app/src/apis.ts new file mode 100644 index 0000000000..e881c128af --- /dev/null +++ b/packages/create-app/templates/default-app/packages/app/src/apis.ts @@ -0,0 +1,48 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { ApiRegistry, ConfigApi } from '@backstage/core'; + +import { catalogApiRef, CatalogClient } from '@backstage/plugin-catalog'; + +import { scaffolderApiRef, ScaffolderApi } from '@backstage/plugin-scaffolder'; + +export const apis = (config: ConfigApi) => { + // eslint-disable-next-line no-console + console.log(`Creating APIs for ${config.getString('app.title')}`); + + const backendUrl = config.getString('backend.baseUrl'); + + const builder = ApiRegistry.builder(); + + builder.add( + catalogApiRef, + new CatalogClient({ + apiOrigin: backendUrl, + basePath: '/catalog', + }), + ); + + builder.add( + scaffolderApiRef, + new ScaffolderApi({ + apiOrigin: backendUrl, + basePath: '/scaffolder/v1', + }), + ); + + return builder.build(); +}; diff --git a/packages/create-app/templates/default-app/packages/app/src/plugins.ts b/packages/create-app/templates/default-app/packages/app/src/plugins.ts index 000bd79f3e..b6c8ad083e 100644 --- a/packages/create-app/templates/default-app/packages/app/src/plugins.ts +++ b/packages/create-app/templates/default-app/packages/app/src/plugins.ts @@ -1 +1,3 @@ export { plugin as WelcomePlugin } from 'plugin-welcome'; +export { plugin as CatalogPlugin } from '@backstage/plugin-catalog'; +export { plugin as ScaffolderPlugin } from '@backstage/plugin-scaffolder'; From 75decc011dfbc12972acca44b6a992e4bed3178c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 11:52:23 +0200 Subject: [PATCH 018/656] create-app: add Sidebar and other app-wide components to app template --- .../default-app/packages/app/package.json.hbs | 1 - .../default-app/packages/app/src/App.tsx | 15 ++++++++-- .../default-app/packages/app/src/sidebar.tsx | 28 +++++++++++++++++++ 3 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 packages/create-app/templates/default-app/packages/app/src/sidebar.tsx diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index c3de7ada80..2f3adcc5ca 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -5,7 +5,6 @@ "dependencies": { "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", - "@material-ui/lab": "4.0.0-alpha.45", "@backstage/cli": "^{{version}}", "@backstage/core": "^{{version}}", "@backstage/test-utils": "^{{version}}", diff --git a/packages/create-app/templates/default-app/packages/app/src/App.tsx b/packages/create-app/templates/default-app/packages/app/src/App.tsx index 724b83d41b..c96bd9d05e 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.tsx @@ -1,7 +1,13 @@ -import { createApp } from '@backstage/core'; import React, { FC } from 'react'; +import { + createApp, + AlertDisplay, + OAuthRequestDialog, + SidebarPage, +} from '@backstage/core'; import { apis } from './apis'; import * as plugins from './plugins'; +import { AppSidebar } from './sidebar'; const app = createApp({ apis, @@ -14,8 +20,13 @@ const AppRoutes = app.getRoutes(); const App: FC<{}> = () => ( + + - + + + + ); diff --git a/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx new file mode 100644 index 0000000000..1ced85cff2 --- /dev/null +++ b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx @@ -0,0 +1,28 @@ +import React from 'react'; +import HomeIcon from '@material-ui/icons/Home'; +import CreateComponentIcon from '@material-ui/icons/AddCircleOutline'; +import { + Sidebar, + SidebarItem, + SidebarDivider, + SidebarSpace, + SidebarUserSettings, + SidebarThemeToggle, + SidebarPinButton, +} from '@backstage/core'; + +export const AppSidebar = () => ( + + + {/* Global nav, not org-specific */} + + + {/* End global nav */} + + + + + + + +); From 68cd1cae8f6582d39ba80505d76351e986b08f38 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 12:33:15 +0200 Subject: [PATCH 019/656] create-app: add missing APIs to app template --- .../default-app/packages/app/src/apis.ts | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/create-app/templates/default-app/packages/app/src/apis.ts b/packages/create-app/templates/default-app/packages/app/src/apis.ts index e881c128af..32af5b7185 100644 --- a/packages/create-app/templates/default-app/packages/app/src/apis.ts +++ b/packages/create-app/templates/default-app/packages/app/src/apis.ts @@ -14,7 +14,19 @@ * limitations under the License. */ -import { ApiRegistry, ConfigApi } from '@backstage/core'; +import { + ApiRegistry, + alertApiRef, + errorApiRef, + AlertApiForwarder, + ConfigApi, + ErrorApiForwarder, + ErrorAlerter, + oauthRequestApiRef, + OAuthRequestManager, + storageApiRef, + WebStorage, +} from '@backstage/core'; import { catalogApiRef, CatalogClient } from '@backstage/plugin-catalog'; @@ -28,6 +40,15 @@ export const apis = (config: ConfigApi) => { const builder = ApiRegistry.builder(); + const alertApi = builder.add(alertApiRef, new AlertApiForwarder()); + const errorApi = builder.add( + errorApiRef, + new ErrorAlerter(alertApi, new ErrorApiForwarder()), + ); + + builder.add(storageApiRef, WebStorage.create({ errorApi })); + builder.add(oauthRequestApiRef, new OAuthRequestManager()); + builder.add( catalogApiRef, new CatalogClient({ From dddc0e15babdfac6c3063e4b4acfafba6023ad3b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 12:34:45 +0200 Subject: [PATCH 020/656] create-app: remove copyright header from template --- .../default-app/packages/app/src/apis.ts | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/packages/create-app/templates/default-app/packages/app/src/apis.ts b/packages/create-app/templates/default-app/packages/app/src/apis.ts index 32af5b7185..35f3e076d6 100644 --- a/packages/create-app/templates/default-app/packages/app/src/apis.ts +++ b/packages/create-app/templates/default-app/packages/app/src/apis.ts @@ -1,19 +1,3 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { ApiRegistry, alertApiRef, From 953e55330b135c80db12e09800986cf4a48251df Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 12:35:57 +0200 Subject: [PATCH 021/656] create-app: remove welcome plugin --- .../default-app/packages/app/package.json.hbs | 1 - .../default-app/packages/app/src/plugins.ts | 1 - .../default-app/plugins/welcome/.eslintrc.js | 3 - .../default-app/plugins/welcome/README.md | 3 - .../default-app/plugins/welcome/dev/index.tsx | 4 - .../plugins/welcome/package.json.hbs | 41 ------- .../welcome/src/components/Timer/Timer.tsx | 58 ---------- .../welcome/src/components/Timer/index.ts | 1 - .../WelcomePage/WelcomePage.test.tsx | 16 --- .../components/WelcomePage/WelcomePage.tsx | 106 ------------------ .../src/components/WelcomePage/index.ts | 1 - .../default-app/plugins/welcome/src/index.ts | 1 - .../plugins/welcome/src/plugin.test.ts | 7 -- .../default-app/plugins/welcome/src/plugin.ts | 9 -- .../plugins/welcome/src/setupTests.ts | 1 - 15 files changed, 253 deletions(-) delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/.eslintrc.js delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/README.md delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/dev/index.tsx delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/package.json.hbs delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/Timer.tsx delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/index.ts delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.test.tsx delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.tsx delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/index.ts delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/index.ts delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/plugin.test.ts delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts delete mode 100644 packages/create-app/templates/default-app/plugins/welcome/src/setupTests.ts diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index 2f3adcc5ca..ae49c251e2 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -10,7 +10,6 @@ "@backstage/test-utils": "^{{version}}", "@backstage/theme": "^{{version}}", "history": "^5.0.0", - "plugin-welcome": "0.0.0", "react": "^16.13.1", "react-dom": "^16.13.1", "react-router": "6.0.0-beta.0", diff --git a/packages/create-app/templates/default-app/packages/app/src/plugins.ts b/packages/create-app/templates/default-app/packages/app/src/plugins.ts index b6c8ad083e..b35d7aeac4 100644 --- a/packages/create-app/templates/default-app/packages/app/src/plugins.ts +++ b/packages/create-app/templates/default-app/packages/app/src/plugins.ts @@ -1,3 +1,2 @@ -export { plugin as WelcomePlugin } from 'plugin-welcome'; export { plugin as CatalogPlugin } from '@backstage/plugin-catalog'; export { plugin as ScaffolderPlugin } from '@backstage/plugin-scaffolder'; diff --git a/packages/create-app/templates/default-app/plugins/welcome/.eslintrc.js b/packages/create-app/templates/default-app/plugins/welcome/.eslintrc.js deleted file mode 100644 index 13573efa9c..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/.eslintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - extends: [require.resolve('@backstage/cli/config/eslint')], -}; diff --git a/packages/create-app/templates/default-app/plugins/welcome/README.md b/packages/create-app/templates/default-app/plugins/welcome/README.md deleted file mode 100644 index e9b9dd0edf..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Title - -Welcome to the welcome plugin! diff --git a/packages/create-app/templates/default-app/plugins/welcome/dev/index.tsx b/packages/create-app/templates/default-app/plugins/welcome/dev/index.tsx deleted file mode 100644 index 6fce113093..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/dev/index.tsx +++ /dev/null @@ -1,4 +0,0 @@ -import { createDevApp } from '@backstage/dev-utils'; -import { plugin } from '../src/plugin'; - -createDevApp().registerPlugin(plugin).render(); diff --git a/packages/create-app/templates/default-app/plugins/welcome/package.json.hbs b/packages/create-app/templates/default-app/plugins/welcome/package.json.hbs deleted file mode 100644 index 77e57c1a7c..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/package.json.hbs +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "plugin-welcome", - "version": "0.0.0", - "main": "src/index.ts", - "types": "src/index.ts", - "private": true, - "publishConfig": { - "main": "dist/index.esm.js", - "types": "dist/index.d.ts" - }, - "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/core": "^{{version}}", - "@backstage/theme": "^{{version}}", - "@material-ui/core": "^4.9.1", - "@material-ui/icons": "^4.9.1", - "react": "^16.13.1", - "react-dom": "^16.13.1", - "react-use": "^15.3.3", - "react-router-dom": "6.0.0-beta.0" - }, - "devDependencies": { - "@backstage/cli": "^{{version}}", - "@backstage/dev-utils": "^{{version}}", - "@testing-library/jest-dom": "^5.10.1", - "@testing-library/react": "^10.4.1", - "jest-fetch-mock": "^3.0.3" - }, - "files": [ - "dist" - ] -} diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/Timer.tsx b/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/Timer.tsx deleted file mode 100644 index 24c79f91ee..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/Timer.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import React, { FC } from 'react'; -import { HeaderLabel } from '@backstage/core'; - -const timeFormat = { hour: '2-digit', minute: '2-digit' }; -const utcOptions = { timeZone: 'UTC', ...timeFormat }; -const nycOptions = { timeZone: 'America/New_York', ...timeFormat }; -const tyoOptions = { timeZone: 'Asia/Tokyo', ...timeFormat }; -const stoOptions = { timeZone: 'Europe/Stockholm', ...timeFormat }; - -const defaultTimes = { - timeNY: '', - timeUTC: '', - timeTYO: '', - timeSTO: '', -}; - -function getTimes() { - const d = new Date(); - const lang = window.navigator.language; - - // Using the browser native toLocaleTimeString instead of huge moment-tz - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString - const timeNY = d.toLocaleTimeString(lang, nycOptions); - const timeUTC = d.toLocaleTimeString(lang, utcOptions); - const timeTYO = d.toLocaleTimeString(lang, tyoOptions); - const timeSTO = d.toLocaleTimeString(lang, stoOptions); - - return { timeNY, timeUTC, timeTYO, timeSTO }; -} - -const HomePageTimer: FC<{}> = () => { - const [{ timeNY, timeUTC, timeTYO, timeSTO }, setTimes] = React.useState( - defaultTimes, - ); - - React.useEffect(() => { - setTimes(getTimes()); - - const intervalId = setInterval(() => { - setTimes(getTimes()); - }, 1000); - - return () => { - clearInterval(intervalId); - }; - }, []); - - return ( - <> - - - - - - ); -}; - -export default HomePageTimer; diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/index.ts b/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/index.ts deleted file mode 100644 index f1fc55bfe9..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/components/Timer/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Timer'; diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.test.tsx b/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.test.tsx deleted file mode 100644 index 27e44a3f75..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; -import { render } from '@testing-library/react'; -import WelcomePage from './WelcomePage'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; - -describe('WelcomePage', () => { - it('should render', () => { - const rendered = render( - - - , - ); - expect(rendered.baseElement).toBeInTheDocument(); - }); -}); diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.tsx b/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.tsx deleted file mode 100644 index 31c1c0f3e2..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/WelcomePage.tsx +++ /dev/null @@ -1,106 +0,0 @@ -import React, { FC } from 'react'; -import { Link as RouterLink } from 'react-router-dom'; -import { - Typography, - Grid, - List, - ListItem, - ListItemText, - Link, -} from '@material-ui/core'; -import Timer from '../Timer'; -import { - Content, - InfoCard, - Header, - Page, - pageTheme, - ContentHeader, - SupportButton, -} from '@backstage/core'; - -const WelcomePage: FC<{}> = () => { - const profile = { givenName: '' }; - - return ( - -
- -
- - - - - - - - - You now have a running instance of Backstage! - - 🎉 - - Let's make sure you get the most out of this platform by walking - you through the basics. - - - The Setup - - - Backstage is put together from three base concepts: the core, - the app and the plugins. - - - - - - - - - - - - - - Try It Out - - - We suggest you either check out the documentation for{' '} - - creating a plugin - {' '} - or have a look in the code for the{' '} - - Home Page - {' '} - in the directory "plugins/home-page/src". - - - - - - Quick Links - - - backstage.io - - - - Create a plugin - - - - - - - -
- ); -}; - -export default WelcomePage; diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/index.ts b/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/index.ts deleted file mode 100644 index b031301e7e..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/components/WelcomePage/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './WelcomePage'; diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/index.ts b/packages/create-app/templates/default-app/plugins/welcome/src/index.ts deleted file mode 100644 index 99edba26c3..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { plugin } from './plugin'; diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/plugin.test.ts b/packages/create-app/templates/default-app/plugins/welcome/src/plugin.test.ts deleted file mode 100644 index f5bf8e68c3..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/plugin.test.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { plugin } from './plugin'; - -describe('welcome', () => { - it('should export plugin', () => { - expect(plugin).toBeDefined(); - }); -}); diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts b/packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts deleted file mode 100644 index a65fad5348..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/plugin.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { createPlugin } from '@backstage/core'; -import WelcomePage from './components/WelcomePage'; - -export const plugin = createPlugin({ - id: 'welcome', - register({ router }) { - router.registerRoute('/', WelcomePage); - }, -}); diff --git a/packages/create-app/templates/default-app/plugins/welcome/src/setupTests.ts b/packages/create-app/templates/default-app/plugins/welcome/src/setupTests.ts deleted file mode 100644 index 7b0828bfa8..0000000000 --- a/packages/create-app/templates/default-app/plugins/welcome/src/setupTests.ts +++ /dev/null @@ -1 +0,0 @@ -import '@testing-library/jest-dom'; From b9dcd46c09a420cbc2eeff0be8a2f2d42fd9d1be Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 13:05:16 +0200 Subject: [PATCH 022/656] create-app: add locations for example entites and templates --- .../templates/default-app/app-config.yaml | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/packages/create-app/templates/default-app/app-config.yaml b/packages/create-app/templates/default-app/app-config.yaml index 04a7913286..c5dc00c266 100644 --- a/packages/create-app/templates/default-app/app-config.yaml +++ b/packages/create-app/templates/default-app/app-config.yaml @@ -23,3 +23,33 @@ techdocs: auth: providers: {} + +catalog: + locations: + # Backstage Example Component + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/artist-lookup-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/playback-order-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/podcast-api-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/queue-proxy-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/searcher-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/playback-lib-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/www-artist-component.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/shuffle-api-component.yaml + + # Backstage Example Templates + - type: github + target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/react-ssr-template/template.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/template.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/create-react-app/template.yaml + - type: github + target: https://github.com/spotify/cookiecutter-golang/blob/master/template.yaml From 2fd38ad228e92c36eac5a7820a93b588e517922d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 13:46:19 +0200 Subject: [PATCH 023/656] create-app: add register component plugin and move plugin deps to app --- packages/create-app/templates/default-app/package.json.hbs | 4 ---- .../templates/default-app/packages/app/package.json.hbs | 3 +++ .../templates/default-app/packages/app/src/plugins.ts | 1 + 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs index 71e4d50f6f..b59ca63fa3 100644 --- a/packages/create-app/templates/default-app/package.json.hbs +++ b/packages/create-app/templates/default-app/package.json.hbs @@ -24,10 +24,6 @@ "plugins/*" ] }, - "dependencies": { - "@backstage/plugin-catalog": "^{{version}}", - "@backstage/plugin-scaffolder": "^{{version}}" - }, "devDependencies": { "@backstage/cli": "^{{version}}", "@spotify/prettier-config": "^7.0.0", diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index ae49c251e2..57e705d4fc 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -7,6 +7,9 @@ "@material-ui/icons": "^4.9.1", "@backstage/cli": "^{{version}}", "@backstage/core": "^{{version}}", + "@backstage/plugin-catalog": "^{{version}}", + "@backstage/plugin-register-component": "^{{version}}", + "@backstage/plugin-scaffolder": "^{{version}}", "@backstage/test-utils": "^{{version}}", "@backstage/theme": "^{{version}}", "history": "^5.0.0", diff --git a/packages/create-app/templates/default-app/packages/app/src/plugins.ts b/packages/create-app/templates/default-app/packages/app/src/plugins.ts index b35d7aeac4..4063fb509b 100644 --- a/packages/create-app/templates/default-app/packages/app/src/plugins.ts +++ b/packages/create-app/templates/default-app/packages/app/src/plugins.ts @@ -1,2 +1,3 @@ export { plugin as CatalogPlugin } from '@backstage/plugin-catalog'; +export { plugin as RegisterComponent } from '@backstage/plugin-register-component'; export { plugin as ScaffolderPlugin } from '@backstage/plugin-scaffolder'; From 20d83e7d5b8167bf16b0c31879d87c9e9d01a143 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 14:12:24 +0200 Subject: [PATCH 024/656] create-app: add minimal gitignore to template --- .../templates/default-app/.gitignore | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 packages/create-app/templates/default-app/.gitignore diff --git a/packages/create-app/templates/default-app/.gitignore b/packages/create-app/templates/default-app/.gitignore new file mode 100644 index 0000000000..3e786d566e --- /dev/null +++ b/packages/create-app/templates/default-app/.gitignore @@ -0,0 +1,33 @@ + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Coverage directory generated when running tests with coverage +coverage + +# Dependencies +node_modules/ + +# Node version directives +.nvmrc + +# dotenv environment variables file +.env +.env.test + +# Build output +dist + +# Temporary change files created by Vim +*.swp + +# MkDocs build output +site + +# Local configuration files +*.local.yaml From af9d127644eaa013106f8e485a2145bedafc3d54 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 14:31:23 +0200 Subject: [PATCH 025/656] tsconfig: set rootDir to ensure output structure of tsc --- packages/create-app/templates/default-app/tsconfig.json | 1 + tsconfig.json | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/create-app/templates/default-app/tsconfig.json b/packages/create-app/templates/default-app/tsconfig.json index 9dbc3bbe27..cccc375f63 100644 --- a/packages/create-app/templates/default-app/tsconfig.json +++ b/packages/create-app/templates/default-app/tsconfig.json @@ -9,6 +9,7 @@ "exclude": ["node_modules"], "compilerOptions": { "outDir": "dist", + "rootDir": ".", "skipLibCheck": true } } diff --git a/tsconfig.json b/tsconfig.json index 1a6128b5c9..7ea674798c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,6 +7,7 @@ "plugins/*/migrations" ], "compilerOptions": { - "outDir": "dist" + "outDir": "dist", + "rootDir": "." } } From be0847501708f2f9a4f5e5ea8314e8470511bb62 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 14:46:43 +0200 Subject: [PATCH 026/656] create-app: fix App test in template --- .../templates/default-app/packages/app/src/App.test.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/create-app/templates/default-app/packages/app/src/App.test.tsx b/packages/create-app/templates/default-app/packages/app/src/App.test.tsx index b94eab587f..a05924ee00 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.test.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.test.tsx @@ -10,6 +10,7 @@ describe('App', () => { { data: { app: { title: 'Test' }, + backend: { baseUrl: 'http://localhost:7000' }, }, context: 'test', }, From 28387a3558adab9b62500e5363cbad51fbdae037 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 13 Aug 2020 13:46:31 +0000 Subject: [PATCH 027/656] chore(deps-dev): bump msw from 0.19.5 to 0.20.5 Bumps [msw](https://github.com/mswjs/msw) from 0.19.5 to 0.20.5. - [Release notes](https://github.com/mswjs/msw/releases) - [Commits](https://github.com/mswjs/msw/compare/v0.19.5...v0.20.5) Signed-off-by: dependabot-preview[bot] --- plugins/catalog-backend/package.json | 2 +- plugins/catalog/package.json | 2 +- plugins/graphql/package.json | 2 +- yarn.lock | 70 ++++++++++++++-------------- 4 files changed, 39 insertions(+), 37 deletions(-) diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 24e342882f..7dedbe62cd 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -48,7 +48,7 @@ "@types/uuid": "^8.0.0", "@types/yup": "^0.28.2", "jest-fetch-mock": "^3.0.3", - "msw": "^0.19.5", + "msw": "^0.20.5", "supertest": "^4.0.2" }, "files": [ diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index d91b8c03cc..db32a91ca3 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -51,7 +51,7 @@ "@types/jest": "^26.0.7", "@types/node": "^12.0.0", "jest-fetch-mock": "^3.0.3", - "msw": "^0.19.0", + "msw": "^0.20.5", "react-test-renderer": "^16.13.1", "whatwg-fetch": "^2.0.0" }, diff --git a/plugins/graphql/package.json b/plugins/graphql/package.json index 7a32883a44..02dc9d3608 100644 --- a/plugins/graphql/package.json +++ b/plugins/graphql/package.json @@ -35,7 +35,7 @@ "@backstage/cli": "^0.1.1-alpha.18", "@types/supertest": "^2.0.8", "eslint-plugin-graphql": "^4.0.0", - "msw": "^0.19.5", + "msw": "^0.20.5", "supertest": "^4.0.2" }, "files": [ diff --git a/yarn.lock b/yarn.lock index e60975d60e..b091987be7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3143,7 +3143,7 @@ dependencies: "@types/node" ">= 8" -"@open-draft/until@^1.0.0": +"@open-draft/until@^1.0.3": version "1.0.3" resolved "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz#db9cc719191a62e7d9200f6e7bab21c5b848adca" integrity sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q== @@ -4350,10 +4350,10 @@ dependencies: "@types/express" "*" -"@types/cookie@^0.3.3": - version "0.3.3" - resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz#85bc74ba782fb7aa3a514d11767832b0e3bc6803" - integrity sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow== +"@types/cookie@^0.4.0": + version "0.4.0" + resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz#14f854c0f93d326e39da6e3b6f34f7d37513d108" + integrity sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg== "@types/cookiejar@*": version "2.1.1" @@ -7401,7 +7401,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0: +chalk@^4.0.0, chalk@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== @@ -11813,7 +11813,7 @@ graphql-upload@^8.0.2: http-errors "^1.7.3" object-path "^0.11.4" -graphql@15.1.0, graphql@^15.0.0: +graphql@15.1.0: version "15.1.0" resolved "https://registry.npmjs.org/graphql/-/graphql-15.1.0.tgz#b93e28de805294ec08e1630d901db550cb8960a1" integrity sha512-0TVyfOlCGhv/DBczQkJmwXOK6fjWkjzY3Pt7wY8i0gcYXq8aogG3weCsg48m72lywKSeOqedEHvVPOvZvSD51Q== @@ -12026,7 +12026,7 @@ he@^1.2.0: resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -headers-utils@^1.1.9, headers-utils@^1.2.0: +headers-utils@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/headers-utils/-/headers-utils-1.2.0.tgz#5e10d1bc9d2bccf789547afca5b991a3167241e8" integrity sha512-4/BMXcWrJErw7JpM87gF8MNEXcIMLzepYZjNRv/P9ctgupl2Ywa3u1PgHtNhSRq84bHH9Ndlkdy7bSi+bZ9I9A== @@ -15730,21 +15730,22 @@ ms@^2.0.0, ms@^2.1.1: resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -msw@^0.19.0, msw@^0.19.5: - version "0.19.5" - resolved "https://registry.npmjs.org/msw/-/msw-0.19.5.tgz#7d2a1a852ccf1644d3db6735d69fff6777aac33f" - integrity sha512-J5eQ++gDVZoHPC8gVXtWcakLjgmPipvFj/sEnlRV/WViXuiq2CamSqO3Wbh6H8bAmj+k2vUWCfcVT1HjMdKB2Q== +msw@^0.20.5: + version "0.20.5" + resolved "https://registry.npmjs.org/msw/-/msw-0.20.5.tgz#b6141080c0d8b17c451d9ca36c28cc47b4ac487a" + integrity sha512-hmEsey5BbVicMGt7aOh/GZ9ltga5N3tK6NiJXnbfCkAGKgnAVnjASr3i7Z+sWlZyY5uuMUFyLCEcqrlXxC6qIA== dependencies: - "@open-draft/until" "^1.0.0" - "@types/cookie" "^0.3.3" - chalk "^4.0.0" + "@open-draft/until" "^1.0.3" + "@types/cookie" "^0.4.0" + chalk "^4.1.0" cookie "^0.4.1" - graphql "^15.0.0" - headers-utils "^1.1.9" - node-match-path "^0.4.2" - node-request-interceptor "^0.2.5" + graphql "^15.3.0" + headers-utils "^1.2.0" + node-fetch "^2.6.0" + node-match-path "^0.4.4" + node-request-interceptor "^0.3.5" statuses "^2.0.0" - yargs "^15.3.1" + yargs "^15.4.1" multicast-dns-service-types@^1.1.0: version "1.1.0" @@ -15980,10 +15981,10 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-match-path@^0.4.2: - version "0.4.2" - resolved "https://registry.npmjs.org/node-match-path/-/node-match-path-0.4.2.tgz#30cc39510fa493bff03c3d0d2fff711c868ec457" - integrity sha512-wfde4FOC5A8RTSUVZ7pTpBV+dJsr2vVxT6374VrNam6wnnhx6EvwAwL/E/r3AW/YU6XkeZggF5xfBlu4a/ULBg== +node-match-path@^0.4.4: + version "0.4.4" + resolved "https://registry.npmjs.org/node-match-path/-/node-match-path-0.4.4.tgz#516a10926093c0cc6f237d020685b593b19baebb" + integrity sha512-pBq9gp7TG0r0VXuy/oeZmQsjBSnYQo7G886Ly/B3azRwZuEtHCY155dzmfoKWcDPGgyfIGD8WKVC7h3+6y7yTg== node-modules-regexp@^1.0.0: version "1.0.0" @@ -16046,11 +16047,12 @@ node-releases@^1.1.58: resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== -node-request-interceptor@^0.2.5: - version "0.2.6" - resolved "https://registry.npmjs.org/node-request-interceptor/-/node-request-interceptor-0.2.6.tgz#541278d7033bb6a8befb5dd793f83428cf6446a2" - integrity sha512-aJW1tPSM7nzuZFRe+C/KSz22GJO3CVFMxHHmMGX8Z+tjP7TCIVbzeckLFVfJG68BdVgrdOOP7Ejc57ag820eyA== +node-request-interceptor@^0.3.5: + version "0.3.5" + resolved "https://registry.npmjs.org/node-request-interceptor/-/node-request-interceptor-0.3.5.tgz#4b26159617829c9a70643012c0fdc3ae4c78ae43" + integrity sha512-lBwA3v00hxCW2xhhZHZ1ab5JMHoAnzgtbeaUXqTufRh7mpAG93ZOChj0btMDB1VZd+CKhCbtigsxCjmerKa2+w== dependencies: + "@open-draft/until" "^1.0.3" debug "^4.1.1" headers-utils "^1.2.0" @@ -23177,7 +23179,7 @@ yamljs@^0.2.1: argparse "^1.0.7" glob "^7.0.5" -yargs-parser@18.x, yargs-parser@^18.1.1: +yargs-parser@18.x, yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== @@ -23249,10 +23251,10 @@ yargs@^14.2.2: y18n "^4.0.0" yargs-parser "^15.0.1" -yargs@^15.3.1: - version "15.3.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" - integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== +yargs@^15.3.1, yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== dependencies: cliui "^6.0.0" decamelize "^1.2.0" @@ -23264,7 +23266,7 @@ yargs@^15.3.1: string-width "^4.2.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^18.1.1" + yargs-parser "^18.1.2" yargs@^2.3.0: version "2.3.0" From da5fb05a3fe686f17100e95a7b71785ae253f2b4 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 15:30:25 +0200 Subject: [PATCH 028/656] create-app: update e2e test in app template --- .../default-app/packages/app/cypress/integration/app.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/create-app/templates/default-app/packages/app/cypress/integration/app.js b/packages/create-app/templates/default-app/packages/app/cypress/integration/app.js index 6c561a734c..dde26b7b39 100644 --- a/packages/create-app/templates/default-app/packages/app/cypress/integration/app.js +++ b/packages/create-app/templates/default-app/packages/app/cypress/integration/app.js @@ -1,8 +1,6 @@ describe('App', () => { - it('should render the welcome page', () => { + it('should render the catalog', () => { cy.visit('/'); - cy.contains('Welcome to Backstage'); - cy.contains('Getting Started'); - cy.contains('Quick Links'); + cy.contains('Backstage Service Catalog'); }); }); From e2e50025a5cc59af2fb1f40901d15795fced13ba Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Aug 2020 19:08:32 +0200 Subject: [PATCH 029/656] cli: update e2e test to work with new create-app --- packages/cli/e2e-test/cli-e2e-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/e2e-test/cli-e2e-test.js b/packages/cli/e2e-test/cli-e2e-test.js index 8f518762cd..8a3285c544 100644 --- a/packages/cli/e2e-test/cli-e2e-test.js +++ b/packages/cli/e2e-test/cli-e2e-test.js @@ -246,7 +246,7 @@ async function testAppServe(pluginName, appDir) { try { const browser = new Browser(); - await waitForPageWithText(browser, '/', 'Welcome to Backstage'); + await waitForPageWithText(browser, '/', 'Backstage Service Catalog'); await waitForPageWithText( browser, `/${pluginName}`, From 815983ae84658e302f02641c1857d60b18d2b20e Mon Sep 17 00:00:00 2001 From: Andrew Thauer <6507159+andrewthauer@users.noreply.github.com> Date: Thu, 13 Aug 2020 22:56:45 -0400 Subject: [PATCH 030/656] add shared database connection helpers --- app-config.yaml | 3 + packages/backend-common/package.json | 10 + .../src/database/config.test.ts | 97 +++++++++ .../backend-common/src/database/config.ts | 27 +++ .../src/database/connection.test.ts | 114 +++++++++++ .../backend-common/src/database/connection.ts | 41 ++++ packages/backend-common/src/database/index.ts | 20 ++ .../src/database/postgres.test.ts | 189 ++++++++++++++++++ .../backend-common/src/database/postgres.ts | 80 ++++++++ .../src/database/sqlite3.test.ts | 84 ++++++++ .../backend-common/src/database/sqlite3.ts | 58 ++++++ packages/backend-common/src/index.ts | 1 + packages/backend/package.json | 1 + packages/backend/src/index.ts | 38 +--- 14 files changed, 730 insertions(+), 33 deletions(-) create mode 100644 packages/backend-common/src/database/config.test.ts create mode 100644 packages/backend-common/src/database/config.ts create mode 100644 packages/backend-common/src/database/connection.test.ts create mode 100644 packages/backend-common/src/database/connection.ts create mode 100644 packages/backend-common/src/database/index.ts create mode 100644 packages/backend-common/src/database/postgres.test.ts create mode 100644 packages/backend-common/src/database/postgres.ts create mode 100644 packages/backend-common/src/database/sqlite3.test.ts create mode 100644 packages/backend-common/src/database/sqlite3.ts diff --git a/app-config.yaml b/app-config.yaml index 54684b10a9..b12fc50176 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -9,6 +9,9 @@ backend: origin: http://localhost:3000 methods: [GET, POST, PUT, DELETE] credentials: true + database: + client: sqlite3 + connection: ':memory:' proxy: '/circleci/api': diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index e21d0eb0d7..5cf2ee95e5 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -39,10 +39,20 @@ "express": "^4.17.1", "express-promise-router": "^3.0.3", "helmet": "^4.0.0", + "knex": "^0.21.1", + "lodash": "^4.17.15", "morgan": "^1.10.0", "stoppable": "^1.1.0", "winston": "^3.2.1" }, + "peerDependencies": { + "pg-connection-string": "^2.3.0" + }, + "peerDependenciesMeta": { + "pg-connection-string": { + "optional": true + } + }, "devDependencies": { "@backstage/cli": "^0.1.1-alpha.18", "@types/compression": "^1.7.0", diff --git a/packages/backend-common/src/database/config.test.ts b/packages/backend-common/src/database/config.test.ts new file mode 100644 index 0000000000..acda0e47d8 --- /dev/null +++ b/packages/backend-common/src/database/config.test.ts @@ -0,0 +1,97 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { mergeDatabaseConfig } from './config'; + +describe('config', () => { + describe(mergeDatabaseConfig, () => { + it('does not modify the config', () => { + expect( + mergeDatabaseConfig( + { + client: 'pg', + connection: '', + useNullAsDefault: true, + }, + {}, + ), + ).toEqual({ + client: 'pg', + connection: '', + useNullAsDefault: true, + }); + }); + + it('does a deep merge', () => { + expect( + mergeDatabaseConfig( + { + client: 'pg', + connection: { + database: 'dbname', + ssl: { + ca: 'foo', + }, + }, + }, + { + connection: { + password: 'secret', + ssl: { + rejectUnauthorized: true, + }, + }, + pool: { min: 0, max: 7 }, + }, + ), + ).toEqual({ + client: 'pg', + connection: { + database: 'dbname', + password: 'secret', + ssl: { + rejectUnauthorized: true, + ca: 'foo', + }, + }, + pool: { min: 0, max: 7 }, + }); + }); + + it('merges string config objects', () => { + expect( + mergeDatabaseConfig( + { + client: 'sqlite3', + connection: ':memory:', + useNullAsDefault: true, + }, + { + connection: { + filename: '/path/to/file', + }, + }, + ), + ).toEqual({ + client: 'sqlite3', + connection: { + filename: '/path/to/file', + }, + useNullAsDefault: true, + }); + }); + }); +}); diff --git a/packages/backend-common/src/database/config.ts b/packages/backend-common/src/database/config.ts new file mode 100644 index 0000000000..80abc06aa2 --- /dev/null +++ b/packages/backend-common/src/database/config.ts @@ -0,0 +1,27 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { merge } from 'lodash'; + +/** + * Merges database objects together + * + * @param config The base config + * @param overrides Any additional overrides + */ +export function mergeDatabaseConfig(config: any, ...overrides: any[]) { + return merge(config, ...overrides); +} diff --git a/packages/backend-common/src/database/connection.test.ts b/packages/backend-common/src/database/connection.test.ts new file mode 100644 index 0000000000..814503fda1 --- /dev/null +++ b/packages/backend-common/src/database/connection.test.ts @@ -0,0 +1,114 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { ConfigReader } from '@backstage/config'; +import { createDatabase } from './connection'; + +describe('database connection', () => { + const createConfig = (data: any) => + ConfigReader.fromConfigs([ + { + context: '', + data, + }, + ]); + + describe(createDatabase, () => { + it('returns a postgres connection', () => { + expect( + createDatabase( + createConfig({ + client: 'pg', + connection: { + host: 'acme', + user: 'foo', + password: 'bar', + database: 'foodb', + }, + }), + ), + ).toBeTruthy(); + }); + + it('returns an sqlite connection', () => { + expect( + createDatabase( + createConfig({ + client: 'sqlite3', + connection: ':memory:', + }), + ), + ).toBeTruthy(); + }); + + it('tries to create a mysql connection as a passthrough', () => { + expect(() => + createDatabase( + createConfig({ + client: 'mysql', + connection: { + host: '127.0.0.1', + user: 'foo', + password: 'bar', + database: 'dbname', + }, + }), + ), + ).toThrowError(/Cannot find module 'mysql'/); + }); + + it('accepts overrides', () => { + expect( + createDatabase( + createConfig({ + client: 'pg', + connection: { + host: 'acme', + user: 'foo', + password: 'bar', + database: 'foodb', + }, + }), + { + connection: { + database: 'foo', + }, + }, + ), + ).toBeTruthy(); + }); + + it('throws an error without a client', () => { + expect(() => + createDatabase( + createConfig({ + connection: '', + }), + ), + ).toThrowError(); + }); + + it('throws an error without a connection', () => { + expect(() => + createDatabase( + createConfig({ + client: 'pg', + }), + ), + ).toThrowError(); + }); + }); +}); diff --git a/packages/backend-common/src/database/connection.ts b/packages/backend-common/src/database/connection.ts new file mode 100644 index 0000000000..bbb1752737 --- /dev/null +++ b/packages/backend-common/src/database/connection.ts @@ -0,0 +1,41 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 knex from 'knex'; +import { ConfigReader } from '@backstage/config'; +import { mergeDatabaseConfig } from './config'; +import { createPgDatabase } from './postgres'; +import { createSqlite3Database } from './sqlite3'; + +type DatabaseClient = 'pg' | 'sqlite3' | string; + +/** + * Creates a knex database connection + * + * @param config The database config + * @param overrides Additional options to merge with the config + */ +export function createDatabase(config: ConfigReader, overrides?: knex.Config) { + const client: DatabaseClient = config.getString('client'); + + if (client === 'pg') { + return createPgDatabase(config, overrides); + } else if (client === 'sqlite3') { + return createSqlite3Database(config, overrides); + } + + return knex(mergeDatabaseConfig(config.get(), overrides)); +} diff --git a/packages/backend-common/src/database/index.ts b/packages/backend-common/src/database/index.ts new file mode 100644 index 0000000000..641adc565c --- /dev/null +++ b/packages/backend-common/src/database/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 * from './config'; +export * from './connection'; +export * from './postgres'; +export * from './sqlite3'; diff --git a/packages/backend-common/src/database/postgres.test.ts b/packages/backend-common/src/database/postgres.test.ts new file mode 100644 index 0000000000..8edfc2c15d --- /dev/null +++ b/packages/backend-common/src/database/postgres.test.ts @@ -0,0 +1,189 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { ConfigReader } from '@backstage/config'; +import { + parsePgConnectionString, + buildPgDatabaseConfig, + createPgDatabase, +} from './postgres'; + +describe('postgres', () => { + const createConfig = (connection: any) => + ConfigReader.fromConfigs([ + { + context: '', + data: { + client: 'pg', + connection, + }, + }, + ]); + + describe(buildPgDatabaseConfig, () => { + it('builds a postgres config', () => { + expect( + buildPgDatabaseConfig( + createConfig({ + host: 'acme', + user: 'foo', + password: 'bar', + port: '5432', + database: 'foodb', + }), + ), + ).toEqual({ + client: 'pg', + connection: { + host: 'acme', + user: 'foo', + password: 'bar', + port: '5432', + database: 'foodb', + }, + useNullAsDefault: true, + }); + }); + + it('builds a connection string config', () => { + expect( + buildPgDatabaseConfig( + createConfig('postgresql://foo:bar@acme:5432/foodb'), + ), + ).toEqual({ + client: 'pg', + connection: 'postgresql://foo:bar@acme:5432/foodb', + useNullAsDefault: true, + }); + }); + + it('overrides the database name', () => { + expect( + buildPgDatabaseConfig( + createConfig({ + host: 'somehost', + user: 'postgres', + password: 'pass', + database: 'foo', + }), + { connection: { database: 'foodb' } }, + ), + ).toEqual({ + client: 'pg', + connection: { + host: 'somehost', + user: 'postgres', + password: 'pass', + database: 'foodb', + }, + useNullAsDefault: true, + }); + }); + + it('adds additional config settings', () => { + expect( + buildPgDatabaseConfig( + createConfig({ + host: 'somehost', + user: 'postgres', + password: 'pass', + database: 'foo', + }), + { + connection: { database: 'foodb' }, + pool: { min: 0, max: 7 }, + debug: true, + }, + ), + ).toEqual({ + client: 'pg', + connection: { + host: 'somehost', + user: 'postgres', + password: 'pass', + database: 'foodb', + }, + useNullAsDefault: true, + pool: { min: 0, max: 7 }, + debug: true, + }); + }); + + it('overrides the database from connection string', () => { + expect( + buildPgDatabaseConfig( + createConfig('postgresql://postgres:pass@localhost:5432/dbname'), + { connection: { database: 'foodb' } }, + ), + ).toEqual({ + client: 'pg', + connection: { + host: 'localhost', + user: 'postgres', + password: 'pass', + port: '5432', + database: 'foodb', + }, + useNullAsDefault: true, + }); + }); + }); + + describe(createPgDatabase, () => { + it('creates a postgres knex instance', () => { + expect( + createPgDatabase( + createConfig({ + client: 'pg', + connection: { + host: 'acme', + user: 'foo', + password: 'bar', + database: 'foodb', + }, + }), + ), + ).toBeTruthy(); + }); + + it('attempts to read an ssl cert', () => { + expect(() => + createPgDatabase( + createConfig( + 'postgresql://postgres:pass@localhost:5432/dbname?sslrootcert=/path/to/file', + ), + ), + ).toThrowError(/no such file or directory/); + }); + }); + + describe(parsePgConnectionString, () => { + it('parses a connection string uri ', () => { + expect( + parsePgConnectionString( + 'postgresql://postgres:pass@foobar:5432/dbname?ssl=true', + ), + ).toEqual({ + host: 'foobar', + user: 'postgres', + password: 'pass', + port: '5432', + database: 'dbname', + ssl: true, + }); + }); + }); +}); diff --git a/packages/backend-common/src/database/postgres.ts b/packages/backend-common/src/database/postgres.ts new file mode 100644 index 0000000000..09b6d0653b --- /dev/null +++ b/packages/backend-common/src/database/postgres.ts @@ -0,0 +1,80 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 knex from 'knex'; +import { ConfigReader } from '@backstage/config'; +import { mergeDatabaseConfig } from './config'; + +/** + * Creates a knex sqlite3 database connection + * + * @param dbConfig The database config + * @param overrides Additional options to merge with the config + */ +export function createPgDatabase( + dbConfig: ConfigReader, + overrides?: knex.Config, +) { + const knexConfig = buildPgDatabaseConfig(dbConfig, overrides); + const database = knex(knexConfig); + return database; +} + +/** + * Builds a knex postgres database connection + * + * @param dbConfig The database config + * @param overrides Additional options to merge with the config + */ +export function buildPgDatabaseConfig( + dbConfig: ConfigReader, + overrides?: knex.Config, +) { + const connection = dbConfig.get('connection') as any; + + return mergeDatabaseConfig( + dbConfig.get(), + { + // Only parse the connection string when overrides are provided + connection: + overrides && + (typeof connection === 'string' || connection instanceof String) + ? parsePgConnectionString(connection as string) + : connection, + useNullAsDefault: true, + }, + overrides, + ); +} + +/** + * Parses a connection string using pg-connection-string + * + * @param connectionString The postgres connection string + */ +export function parsePgConnectionString(connectionString: string) { + const parse = requirePgConnectionString(); + return parse(connectionString); +} + +function requirePgConnectionString() { + try { + return require('pg-connection-string').parse; + } catch (e) { + const message = `Postgres: Install 'pg-connection-string'`; + throw new Error(`${message}\n${e.message}`); + } +} diff --git a/packages/backend-common/src/database/sqlite3.test.ts b/packages/backend-common/src/database/sqlite3.test.ts new file mode 100644 index 0000000000..a25720b81c --- /dev/null +++ b/packages/backend-common/src/database/sqlite3.test.ts @@ -0,0 +1,84 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { ConfigReader } from '@backstage/config'; +import { buildSqlite3DatabaseConfig, createSqlite3Database } from './sqlite3'; + +describe('sqlite3', () => { + const createConfig = (connection: any) => + ConfigReader.fromConfigs([ + { + context: '', + data: { + client: 'sqlite3', + connection, + }, + }, + ]); + + describe(buildSqlite3DatabaseConfig, () => { + it('buidls a string connection', () => { + expect(buildSqlite3DatabaseConfig(createConfig(':memory:'))).toEqual({ + client: 'sqlite3', + connection: ':memory:', + useNullAsDefault: true, + }); + }); + + it('builds a filename connection', () => { + expect( + buildSqlite3DatabaseConfig( + createConfig({ + filename: '/path/to/foo', + }), + ), + ).toEqual({ + client: 'sqlite3', + connection: { + filename: '/path/to/foo', + }, + useNullAsDefault: true, + }); + }); + + it('replaces the connection with an override', () => { + expect( + buildSqlite3DatabaseConfig(createConfig(':memory:'), { + connection: { filename: '/path/to/foo' }, + }), + ).toEqual({ + client: 'sqlite3', + connection: { + filename: '/path/to/foo', + }, + useNullAsDefault: true, + }); + }); + }); + + describe(createSqlite3Database, () => { + it('creates an in memory knex instance', () => { + expect( + createSqlite3Database( + createConfig({ + client: 'sqlite3', + connection: ':memory:', + }), + ), + ).toBeTruthy(); + }); + }); +}); diff --git a/packages/backend-common/src/database/sqlite3.ts b/packages/backend-common/src/database/sqlite3.ts new file mode 100644 index 0000000000..6249394d05 --- /dev/null +++ b/packages/backend-common/src/database/sqlite3.ts @@ -0,0 +1,58 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 knex from 'knex'; +import { ConfigReader } from '@backstage/config'; +import { mergeDatabaseConfig } from './config'; + +/** + * Creates a knex sqlite3 database connection + * + * @param dbConfig The database config + * @param overrides Additional options to merge with the config + */ +export function createSqlite3Database( + dbConfig: ConfigReader, + overrides?: knex.Config, +) { + const knexConfig = buildSqlite3DatabaseConfig(dbConfig, overrides); + const database = knex(knexConfig); + + database.client.pool.on('createSuccess', (_eventId: any, resource: any) => { + resource.run('PRAGMA foreign_keys = ON', () => {}); + }); + + return database; +} + +/** + * Builds a knex sqlite3 connection config + * + * @param dbConfig The database config + * @param overrides Additional options to merge with the config + */ +export function buildSqlite3DatabaseConfig( + dbConfig: ConfigReader, + overrides?: knex.Config, +) { + return mergeDatabaseConfig( + dbConfig.get(), + { + useNullAsDefault: true, + }, + overrides, + ); +} diff --git a/packages/backend-common/src/index.ts b/packages/backend-common/src/index.ts index a3f57ed9df..f499613851 100644 --- a/packages/backend-common/src/index.ts +++ b/packages/backend-common/src/index.ts @@ -15,6 +15,7 @@ */ export * from './config'; +export * from './database'; export * from './errors'; export * from './logging'; export * from './middleware'; diff --git a/packages/backend/package.json b/packages/backend/package.json index 6e1bcdaf69..c80fbc7c38 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -35,6 +35,7 @@ "express": "^4.17.1", "knex": "^0.21.1", "pg": "^8.3.0", + "pg-connection-string": "^2.3.0", "sqlite3": "^4.2.0", "winston": "^3.2.1" }, diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts index 261a4d2894..cb24b00477 100644 --- a/packages/backend/src/index.ts +++ b/packages/backend/src/index.ts @@ -23,13 +23,13 @@ */ import { + createDatabase, createServiceBuilder, loadBackendConfig, getRootLogger, useHotMemoize, } from '@backstage/backend-common'; import { ConfigReader, AppConfig } from '@backstage/config'; -import knex, { PgConnectionConfig } from 'knex'; import healthcheck from './plugins/healthcheck'; import auth from './plugins/auth'; import catalog from './plugins/catalog'; @@ -47,38 +47,10 @@ function makeCreateEnv(loadedConfigs: AppConfig[]) { return (plugin: string): PluginEnvironment => { const logger = getRootLogger().child({ type: 'plugin', plugin }); - // Supported DBs are sqlite and postgres - const isPg = [ - 'POSTGRES_USER', - 'POSTGRES_HOST', - 'POSTGRES_PASSWORD', - ].every(key => config.getOptional(`backend.${key}`)); - - let knexConfig; - - if (isPg) { - knexConfig = { - client: 'pg', - useNullAsDefault: true, - connection: { - port: config.getOptionalNumber('backend.POSTGRES_PORT'), - host: config.getString('backend.POSTGRES_HOST'), - user: config.getString('backend.POSTGRES_USER'), - password: config.getString('backend.POSTGRES_PASSWORD'), - database: `backstage_plugin_${plugin}`, - } as PgConnectionConfig, - }; - } else { - knexConfig = { - client: 'sqlite3', - connection: ':memory:', - useNullAsDefault: true, - }; - } - - const database = knex(knexConfig); - database.client.pool.on('createSuccess', (_eventId: any, resource: any) => { - resource.run('PRAGMA foreign_keys = ON', () => {}); + const database = createDatabase(config.getConfig('backend.database'), { + connection: { + database: `backstage_plugin_${plugin}`, + }, }); return { logger, database, config }; }; From 4285289b5aea4beb97251f4405ab9ac344d0f5a4 Mon Sep 17 00:00:00 2001 From: Andrew Thauer <6507159+andrewthauer@users.noreply.github.com> Date: Fri, 14 Aug 2020 06:30:05 -0400 Subject: [PATCH 031/656] only expose createDatabase + additional typing --- .../backend-common/src/database/config.test.ts | 18 ++++++++++++++++-- .../backend-common/src/database/connection.ts | 5 ++++- packages/backend-common/src/database/index.ts | 3 --- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/packages/backend-common/src/database/config.test.ts b/packages/backend-common/src/database/config.test.ts index acda0e47d8..ab29bc19ba 100644 --- a/packages/backend-common/src/database/config.test.ts +++ b/packages/backend-common/src/database/config.test.ts @@ -18,7 +18,21 @@ import { mergeDatabaseConfig } from './config'; describe('config', () => { describe(mergeDatabaseConfig, () => { - it('does not modify the config', () => { + it('does not require overrides', () => { + expect( + mergeDatabaseConfig({ + client: 'pg', + connection: '', + useNullAsDefault: true, + }), + ).toEqual({ + client: 'pg', + connection: '', + useNullAsDefault: true, + }); + }); + + it('accepts an empty object', () => { expect( mergeDatabaseConfig( { @@ -71,7 +85,7 @@ describe('config', () => { }); }); - it('merges string config objects', () => { + it('replaces a string connection', () => { expect( mergeDatabaseConfig( { diff --git a/packages/backend-common/src/database/connection.ts b/packages/backend-common/src/database/connection.ts index bbb1752737..fcff459d1e 100644 --- a/packages/backend-common/src/database/connection.ts +++ b/packages/backend-common/src/database/connection.ts @@ -28,7 +28,10 @@ type DatabaseClient = 'pg' | 'sqlite3' | string; * @param config The database config * @param overrides Additional options to merge with the config */ -export function createDatabase(config: ConfigReader, overrides?: knex.Config) { +export function createDatabase( + config: ConfigReader, + overrides?: Partial, +) { const client: DatabaseClient = config.getString('client'); if (client === 'pg') { diff --git a/packages/backend-common/src/database/index.ts b/packages/backend-common/src/database/index.ts index 641adc565c..38d3d6224b 100644 --- a/packages/backend-common/src/database/index.ts +++ b/packages/backend-common/src/database/index.ts @@ -14,7 +14,4 @@ * limitations under the License. */ -export * from './config'; export * from './connection'; -export * from './postgres'; -export * from './sqlite3'; From 205d72f326e0d56454a7a62bd6f96512cd9a74b4 Mon Sep 17 00:00:00 2001 From: Raghunandan Date: Fri, 14 Aug 2020 13:32:09 +0200 Subject: [PATCH 032/656] Bump docusaurus to v2 alpha --- microsite/package.json | 2 +- microsite/yarn.lock | 6652 ---------------------------------------- yarn.lock | 8 +- 3 files changed, 5 insertions(+), 6657 deletions(-) delete mode 100644 microsite/yarn.lock diff --git a/microsite/package.json b/microsite/package.json index e6fbd1a087..6a10628b5a 100644 --- a/microsite/package.json +++ b/microsite/package.json @@ -13,6 +13,6 @@ "rename-version": "docusaurus-rename-version" }, "devDependencies": { - "docusaurus": "^1.14.4" + "docusaurus": "^2.0.0-alpha.61" } } diff --git a/microsite/yarn.lock b/microsite/yarn.lock deleted file mode 100644 index b322c37dc4..0000000000 --- a/microsite/yarn.lock +++ /dev/null @@ -1,6652 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@7.5.5": - version "7.5.5" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/code-frame@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" - integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" - integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ== - dependencies: - browserslist "^4.12.0" - invariant "^2.2.4" - semver "^5.5.0" - -"@babel/core@^7.9.0": - version "7.11.1" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz#2c55b604e73a40dc21b0e52650b11c65cf276643" - integrity sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.0" - "@babel/helper-module-transforms" "^7.11.0" - "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.11.1" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.11.0" - "@babel/types" "^7.11.0" - 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/generator@^7.11.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz#4b90c78d8c12825024568cbe83ee6c9af193585c" - integrity sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ== - dependencies: - "@babel/types" "^7.11.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" - integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" - integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-builder-react-jsx-experimental@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz#f35e956a19955ff08c1258e44a515a6d6248646b" - integrity sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-module-imports" "^7.10.4" - "@babel/types" "^7.10.5" - -"@babel/helper-builder-react-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d" - integrity sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-compilation-targets@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2" - integrity sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ== - dependencies: - "@babel/compat-data" "^7.10.4" - browserslist "^4.12.0" - invariant "^2.2.4" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/helper-create-class-features-plugin@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" - integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-member-expression-to-functions" "^7.10.5" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - -"@babel/helper-create-regexp-features-plugin@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" - integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - regexpu-core "^4.7.0" - -"@babel/helper-define-map@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" - integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/types" "^7.10.5" - lodash "^4.17.19" - -"@babel/helper-explode-assignable-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz#40a1cd917bff1288f699a94a75b37a1a2dbd8c7c" - integrity sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A== - dependencies: - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" - integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== - dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-get-function-arity@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" - integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-hoist-variables@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" - integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" - integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q== - dependencies: - "@babel/types" "^7.11.0" - -"@babel/helper-module-imports@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" - integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/template" "^7.10.4" - "@babel/types" "^7.11.0" - lodash "^4.17.19" - -"@babel/helper-optimise-call-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" - integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - 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-regex@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" - integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== - dependencies: - lodash "^4.17.19" - -"@babel/helper-remap-async-to-generator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz#fce8bea4e9690bbe923056ded21e54b4e8b68ed5" - integrity sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-wrap-function" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-replace-supers@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" - integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-simple-access@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" - integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== - dependencies: - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" - integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q== - dependencies: - "@babel/types" "^7.11.0" - -"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" - integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== - dependencies: - "@babel/types" "^7.11.0" - -"@babel/helper-validator-identifier@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" - integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== - -"@babel/helper-wrap-function@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" - integrity sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helpers@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" - integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== - dependencies: - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/highlight@^7.0.0", "@babel/highlight@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.10.4", "@babel/parser@^7.11.0", "@babel/parser@^7.11.1": - version "7.11.3" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz#9e1eae46738bcd08e23e867bab43e7b95299a8f9" - integrity sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA== - -"@babel/plugin-proposal-async-generator-functions@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" - integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" - -"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" - integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-proposal-dynamic-import@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" - integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - -"@babel/plugin-proposal-export-namespace-from@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54" - integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" - integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.0" - -"@babel/plugin-proposal-logical-assignment-operators@^7.11.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8" - integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" - integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - -"@babel/plugin-proposal-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" - integrity sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.11.0", "@babel/plugin-proposal-object-rest-spread@^7.9.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" - integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.10.4" - -"@babel/plugin-proposal-optional-catch-binding@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" - integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - -"@babel/plugin-proposal-optional-chaining@^7.11.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" - integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - -"@babel/plugin-proposal-private-methods@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" - integrity sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" - integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-async-generators@^7.8.0": - version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c" - integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-dynamic-import@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-json-strings@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c" - integrity sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - 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" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.0": - 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== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" - integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-arrow-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" - integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-async-to-generator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" - integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" - -"@babel/plugin-transform-block-scoped-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" - integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-block-scoping@^7.10.4": - version "7.11.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" - integrity sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-classes@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" - integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-define-map" "^7.10.4" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" - integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-destructuring@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" - integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" - integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-duplicate-keys@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" - integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-exponentiation-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" - integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-for-of@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" - integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" - integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" - integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-member-expression-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" - integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-modules-amd@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" - integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw== - dependencies: - "@babel/helper-module-transforms" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" - integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w== - dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" - integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw== - dependencies: - "@babel/helper-hoist-variables" "^7.10.4" - "@babel/helper-module-transforms" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" - integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA== - dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" - integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - -"@babel/plugin-transform-new-target@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" - integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-object-super@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" - integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - -"@babel/plugin-transform-parameters@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" - integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw== - dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-property-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" - integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-react-display-name@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz#b5795f4e3e3140419c3611b7a2a3832b9aef328d" - integrity sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-react-jsx-development@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz#6ec90f244394604623880e15ebc3c34c356258ba" - integrity sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ== - dependencies: - "@babel/helper-builder-react-jsx-experimental" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" - -"@babel/plugin-transform-react-jsx-self@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz#cd301a5fed8988c182ed0b9d55e9bd6db0bd9369" - integrity sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" - -"@babel/plugin-transform-react-jsx-source@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz#34f1779117520a779c054f2cdd9680435b9222b4" - integrity sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" - -"@babel/plugin-transform-react-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz#673c9f913948764a4421683b2bef2936968fddf2" - integrity sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A== - dependencies: - "@babel/helper-builder-react-jsx" "^7.10.4" - "@babel/helper-builder-react-jsx-experimental" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" - -"@babel/plugin-transform-react-pure-annotations@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz#3eefbb73db94afbc075f097523e445354a1c6501" - integrity sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-regenerator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" - integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" - integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-shorthand-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" - integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-spread@^7.11.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" - integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" - -"@babel/plugin-transform-sticky-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" - integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - -"@babel/plugin-transform-template-literals@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" - integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-typeof-symbol@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" - integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-unicode-escapes@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" - integrity sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-unicode-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" - integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/polyfill@^7.8.7": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.10.4.tgz#915e5bfe61490ac0199008e35ca9d7d151a8e45a" - integrity sha512-8BYcnVqQ5kMD2HXoHInBH7H1b/uP3KdnwCYXOqFnXqguOyuu443WXusbIUbWEfY3Z0Txk0M1uG/8YuAMhNl6zg== - dependencies: - core-js "^2.6.5" - regenerator-runtime "^0.13.4" - -"@babel/preset-env@^7.9.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796" - integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg== - dependencies: - "@babel/compat-data" "^7.11.0" - "@babel/helper-compilation-targets" "^7.10.4" - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-proposal-async-generator-functions" "^7.10.4" - "@babel/plugin-proposal-class-properties" "^7.10.4" - "@babel/plugin-proposal-dynamic-import" "^7.10.4" - "@babel/plugin-proposal-export-namespace-from" "^7.10.4" - "@babel/plugin-proposal-json-strings" "^7.10.4" - "@babel/plugin-proposal-logical-assignment-operators" "^7.11.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" - "@babel/plugin-proposal-numeric-separator" "^7.10.4" - "@babel/plugin-proposal-object-rest-spread" "^7.11.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" - "@babel/plugin-proposal-optional-chaining" "^7.11.0" - "@babel/plugin-proposal-private-methods" "^7.10.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-class-properties" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.10.4" - "@babel/plugin-transform-arrow-functions" "^7.10.4" - "@babel/plugin-transform-async-to-generator" "^7.10.4" - "@babel/plugin-transform-block-scoped-functions" "^7.10.4" - "@babel/plugin-transform-block-scoping" "^7.10.4" - "@babel/plugin-transform-classes" "^7.10.4" - "@babel/plugin-transform-computed-properties" "^7.10.4" - "@babel/plugin-transform-destructuring" "^7.10.4" - "@babel/plugin-transform-dotall-regex" "^7.10.4" - "@babel/plugin-transform-duplicate-keys" "^7.10.4" - "@babel/plugin-transform-exponentiation-operator" "^7.10.4" - "@babel/plugin-transform-for-of" "^7.10.4" - "@babel/plugin-transform-function-name" "^7.10.4" - "@babel/plugin-transform-literals" "^7.10.4" - "@babel/plugin-transform-member-expression-literals" "^7.10.4" - "@babel/plugin-transform-modules-amd" "^7.10.4" - "@babel/plugin-transform-modules-commonjs" "^7.10.4" - "@babel/plugin-transform-modules-systemjs" "^7.10.4" - "@babel/plugin-transform-modules-umd" "^7.10.4" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" - "@babel/plugin-transform-new-target" "^7.10.4" - "@babel/plugin-transform-object-super" "^7.10.4" - "@babel/plugin-transform-parameters" "^7.10.4" - "@babel/plugin-transform-property-literals" "^7.10.4" - "@babel/plugin-transform-regenerator" "^7.10.4" - "@babel/plugin-transform-reserved-words" "^7.10.4" - "@babel/plugin-transform-shorthand-properties" "^7.10.4" - "@babel/plugin-transform-spread" "^7.11.0" - "@babel/plugin-transform-sticky-regex" "^7.10.4" - "@babel/plugin-transform-template-literals" "^7.10.4" - "@babel/plugin-transform-typeof-symbol" "^7.10.4" - "@babel/plugin-transform-unicode-escapes" "^7.10.4" - "@babel/plugin-transform-unicode-regex" "^7.10.4" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.11.0" - browserslist "^4.12.0" - core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/preset-modules@^0.1.3": - version "0.1.3" - resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" - integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-react@^7.9.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz#92e8a66d816f9911d11d4cc935be67adfc82dbcf" - integrity sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-transform-react-display-name" "^7.10.4" - "@babel/plugin-transform-react-jsx" "^7.10.4" - "@babel/plugin-transform-react-jsx-development" "^7.10.4" - "@babel/plugin-transform-react-jsx-self" "^7.10.4" - "@babel/plugin-transform-react-jsx-source" "^7.10.4" - "@babel/plugin-transform-react-pure-annotations" "^7.10.4" - -"@babel/register@^7.9.0": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/register/-/register-7.10.5.tgz#354f3574895f1307f79efe37a51525e52fd38d89" - integrity sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw== - dependencies: - find-cache-dir "^2.0.0" - lodash "^4.17.19" - make-dir "^2.1.0" - pirates "^4.0.0" - source-map-support "^0.5.16" - -"@babel/runtime@^7.8.4": - version "7.11.2" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" - integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0", "@babel/traverse@^7.9.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" - integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.0" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.11.0" - "@babel/types" "^7.11.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.19" - -"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.4.4", "@babel/types@^7.9.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" - integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== - -"@sindresorhus/is@^0.7.0": - version "0.7.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" - integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== - -"@types/cheerio@^0.22.8": - version "0.22.21" - resolved "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.21.tgz#5e37887de309ba11b2e19a6e14cad7874b31a8a3" - integrity sha512-aGI3DfswwqgKPiEOTaiHV2ZPC9KEhprpgEbJnv0fZl3SGX0cGgEva1126dGrMC6AJM6v/aihlUgJn9M5DbDZ/Q== - dependencies: - "@types/node" "*" - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/node@*": - version "14.0.27" - resolved "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz#a151873af5a5e851b51b3b065c9e63390a9e0eb1" - integrity sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g== - -"@types/q@^1.5.1": - version "1.5.4" - resolved "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" - integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== - -accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -address@1.1.2, address@^1.0.1: - version "1.1.2" - resolved "https://registry.npmjs.org/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" - integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== - -ajv@^6.12.3: - version "6.12.3" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" - integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-red@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" - integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= - dependencies: - ansi-wrap "0.1.0" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - -ansi-wrap@0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" - integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -arch@^2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/arch/-/arch-2.1.2.tgz#0c52bbe7344bb4fa260c443d2cbad9c00ff2f0bf" - integrity sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ== - -archive-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70" - integrity sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA= - dependencies: - file-type "^4.2.0" - -argparse@^1.0.10, argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -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" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async@^2.6.2: - version "2.6.3" - resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autolinker@^3.11.0: - version "3.14.1" - resolved "https://registry.npmjs.org/autolinker/-/autolinker-3.14.1.tgz#6ae4b812b6eaf42d4d68138b9e67757cbf2bc1e4" - integrity sha512-yvsRHIaY51EYDml6MGlbqyJGfl4n7zezGYf+R7gvM8c5LNpRGc4SISkvgAswSS8SWxk/OrGCylKV9mJyVstz7w== - dependencies: - tslib "^1.9.3" - -autolinker@~0.28.0: - version "0.28.1" - resolved "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47" - integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc= - dependencies: - gulp-header "^1.7.1" - -autoprefixer@^9.7.5: - version "9.8.6" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" - integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - colorette "^1.2.1" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.10.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" - integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== - -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-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" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -bin-build@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz#c5780a25a8a9f966d8244217e6c1f5082a143861" - integrity sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA== - dependencies: - decompress "^4.0.0" - download "^6.2.2" - execa "^0.7.0" - p-map-series "^1.0.0" - tempfile "^2.0.0" - -bin-check@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz#fc495970bdc88bb1d5a35fc17e65c4a149fc4a49" - integrity sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA== - dependencies: - execa "^0.7.0" - executable "^4.1.0" - -bin-version-check@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz#7d819c62496991f80d893e6e02a3032361608f71" - integrity sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ== - dependencies: - bin-version "^3.0.0" - semver "^5.6.0" - semver-truncate "^1.1.2" - -bin-version@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz#5b09eb280752b1bd28f0c9db3f96f2f43b6c0839" - integrity sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ== - dependencies: - execa "^1.0.0" - find-versions "^3.0.0" - -bin-wrapper@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz#99348f2cf85031e3ef7efce7e5300aeaae960605" - integrity sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q== - dependencies: - bin-check "^4.1.0" - bin-version-check "^4.0.0" - download "^7.1.0" - import-lazy "^3.1.0" - os-filter-obj "^2.0.0" - pify "^4.0.1" - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bl@^1.0.0: - version "1.2.2" - resolved "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" - integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== - dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" - -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -body@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" - integrity sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk= - dependencies: - continuable-cache "^0.3.1" - error "^7.0.0" - raw-body "~1.1.0" - safe-json-parse "~1.0.1" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -browserslist@4.7.0: - version "4.7.0" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" - integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== - dependencies: - caniuse-lite "^1.0.30000989" - electron-to-chromium "^1.3.247" - node-releases "^1.1.29" - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.8.5: - version "4.14.0" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.14.0.tgz#2908951abfe4ec98737b72f34c3bcedc8d43b000" - integrity sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ== - dependencies: - caniuse-lite "^1.0.30001111" - electron-to-chromium "^1.3.523" - escalade "^3.0.2" - node-releases "^1.1.60" - -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer@^5.2.1: - version "5.6.0" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -bytes@1: - version "1.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" - integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cacheable-request@^2.1.1: - version "2.1.4" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" - integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= - dependencies: - clone-response "1.0.2" - get-stream "3.0.0" - http-cache-semantics "3.8.1" - keyv "3.0.0" - lowercase-keys "1.0.0" - normalize-url "2.0.1" - responselike "1.0.2" - -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001111: - version "1.0.30001113" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001113.tgz#22016ab55b5a8b04fa00ca342d9ee1b98df48065" - integrity sha512-qMvjHiKH21zzM/VDZr6oosO6Ri3U0V2tC015jRXjOecwQCJtsU5zklTNTk31jQbIOP8gha0h1ccM/g0ECP+4BA== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -caw@^2.0.0, caw@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95" - integrity sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA== - dependencies: - get-proxy "^2.0.0" - isurl "^1.0.0-alpha5" - tunnel-agent "^0.6.0" - url-to-options "^1.0.1" - -chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^1.0.0, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -cheerio@0.22.0: - version "0.22.0" - resolved "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" - integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= - dependencies: - css-select "~1.2.0" - dom-serializer "~0.1.0" - entities "~1.1.1" - htmlparser2 "^3.9.1" - lodash.assignin "^4.0.9" - lodash.bind "^4.1.4" - lodash.defaults "^4.0.1" - lodash.filter "^4.4.0" - lodash.flatten "^4.2.0" - lodash.foreach "^4.3.0" - lodash.map "^4.4.0" - lodash.merge "^4.4.0" - lodash.pick "^4.2.1" - lodash.reduce "^4.4.0" - lodash.reject "^4.4.0" - lodash.some "^4.4.0" - -chokidar@^2.0.4: - version "2.1.8" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -classnames@^2.2.6: - version "2.2.6" - resolved "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" - integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - -clipboard@^2.0.0: - version "2.0.6" - resolved "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" - integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg== - dependencies: - good-listener "^1.2.2" - select "^1.1.2" - tiny-emitter "^2.0.0" - -clone-response@1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -coffee-script@^1.12.4: - version "1.12.7" - resolved "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz#c05dae0cb79591d05b3070a8433a98c9a89ccc53" - integrity sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.1: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.5.2: - version "1.5.3" - resolved "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" - integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.1.2" - resolved "https://registry.npmjs.org/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" - integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.2" - -colorette@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" - integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^2.8.1: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^4.0.1: - version "4.1.1" - resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -commander@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -concat-with-sourcemaps@*: - version "1.1.0" - resolved "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" - integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== - dependencies: - source-map "^0.6.1" - -config-chain@^1.1.11: - version "1.1.12" - resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -console-stream@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44" - integrity sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ= - -content-disposition@0.5.3, content-disposition@^0.5.2: - version "0.5.3" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -continuable-cache@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" - integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8= - -convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.6.2: - version "3.6.5" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" - integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== - dependencies: - browserslist "^4.8.5" - semver "7.0.0" - -core-js@^2.6.5: - version "2.6.11" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -cross-spawn@6.0.5, cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -crowdin-cli@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/crowdin-cli/-/crowdin-cli-0.3.0.tgz#eac9989a6fe7feaaf33090397afc187c67b46191" - integrity sha1-6smYmm/n/qrzMJA5evwYfGe0YZE= - dependencies: - request "^2.53.0" - yamljs "^0.2.1" - yargs "^2.3.0" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-select@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -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" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@1.0.0-alpha.39: - version "1.0.0-alpha.39" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" - integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== - dependencies: - mdn-data "2.0.6" - source-map "^0.6.1" - -css-what@2.1: - version "2.1.3" - resolved "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== - -css-what@^3.2.1: - version "3.3.0" - resolved "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz#10fec696a9ece2e591ac772d759aacabac38cd39" - integrity sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-default@^4.0.7: - version "4.0.7" - resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" - integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.2" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10: - version "4.1.10" - resolved "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" - integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.7" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.0.3" - resolved "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" - integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ== - dependencies: - css-tree "1.0.0-alpha.39" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= - dependencies: - array-find-index "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" - integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== - dependencies: - ms "^2.1.1" - -debug@^3.1.0, debug@^3.1.1, debug@^3.2.5: - version "3.2.6" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -decamelize@^1.1.2: - version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.2.0, decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" - integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== - dependencies: - file-type "^5.2.0" - is-stream "^1.1.0" - tar-stream "^1.5.2" - -decompress-tarbz2@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" - integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== - dependencies: - decompress-tar "^4.1.0" - file-type "^6.1.0" - is-stream "^1.1.0" - seek-bzip "^1.0.5" - unbzip2-stream "^1.0.9" - -decompress-targz@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" - integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== - dependencies: - decompress-tar "^4.1.1" - file-type "^5.2.0" - is-stream "^1.1.0" - -decompress-unzip@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" - integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k= - dependencies: - file-type "^3.8.0" - get-stream "^2.2.0" - pify "^2.3.0" - yauzl "^2.4.2" - -decompress@^4.0.0, decompress@^4.2.0: - version "4.2.1" - resolved "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" - integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== - dependencies: - decompress-tar "^4.0.0" - decompress-tarbz2 "^4.0.0" - decompress-targz "^4.0.0" - decompress-unzip "^4.0.1" - graceful-fs "^4.1.10" - make-dir "^1.0.0" - pify "^2.3.0" - strip-dirs "^2.0.0" - -deep-is@^0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -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" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delegate@^3.1.2: - version "3.2.0" - resolved "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" - integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-port-alt@1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" - integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== - dependencies: - address "^1.0.1" - debug "^2.6.0" - -diacritics-map@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz#6dfc0ff9d01000a2edf2865371cac316e94977af" - integrity sha1-bfwP+dAQAKLt8oZTccrDFulJd68= - -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" - -docusaurus@^1.14.4: - version "1.14.6" - resolved "https://registry.npmjs.org/docusaurus/-/docusaurus-1.14.6.tgz#ffab9f6dafe8c48c477e0ebc7f491e554143b2b5" - integrity sha512-Hpo6xqYIHwazwuhXW25AKYv/os+dWoJ87qql/m1j1xp83h/BnfYV2l8PA8zLggF1wGUbJQbTx7GWo6QvD8z+4Q== - dependencies: - "@babel/core" "^7.9.0" - "@babel/plugin-proposal-class-properties" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.9.0" - "@babel/polyfill" "^7.8.7" - "@babel/preset-env" "^7.9.0" - "@babel/preset-react" "^7.9.4" - "@babel/register" "^7.9.0" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - autoprefixer "^9.7.5" - babylon "^6.18.0" - chalk "^3.0.0" - classnames "^2.2.6" - commander "^4.0.1" - crowdin-cli "^0.3.0" - cssnano "^4.1.10" - escape-string-regexp "^2.0.0" - express "^4.17.1" - feed "^4.0.0" - fs-extra "^8.1.0" - gaze "^1.1.3" - github-slugger "^1.2.1" - glob "^7.1.6" - highlight.js "^9.16.2" - imagemin "^6.0.0" - imagemin-gifsicle "^6.0.1" - imagemin-jpegtran "^6.0.0" - imagemin-optipng "^6.0.0" - imagemin-svgo "^7.0.0" - lodash "^4.17.15" - markdown-toc "^1.2.0" - mkdirp "^0.5.1" - portfinder "^1.0.25" - postcss "^7.0.23" - prismjs "^1.17.1" - react "^16.8.4" - react-dev-utils "^9.1.0" - react-dom "^16.8.4" - remarkable "^2.0.0" - request "^2.88.0" - shelljs "^0.8.4" - sitemap "^3.2.2" - tcp-port-used "^1.0.1" - tiny-lr "^1.1.1" - tree-node-cli "^1.2.5" - truncate-html "^1.0.3" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@~0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" - integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== - dependencies: - domelementtype "^1.3.0" - entities "^1.1.1" - -domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== - dependencies: - domelementtype "1" - -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^1.5.1, domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" - integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== - dependencies: - is-obj "^2.0.0" - -download@^6.2.2: - version "6.2.5" - resolved "https://registry.npmjs.org/download/-/download-6.2.5.tgz#acd6a542e4cd0bb42ca70cfc98c9e43b07039714" - integrity sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA== - dependencies: - caw "^2.0.0" - content-disposition "^0.5.2" - decompress "^4.0.0" - ext-name "^5.0.0" - file-type "5.2.0" - filenamify "^2.0.0" - get-stream "^3.0.0" - got "^7.0.0" - make-dir "^1.0.0" - p-event "^1.0.0" - pify "^3.0.0" - -download@^7.1.0: - version "7.1.0" - resolved "https://registry.npmjs.org/download/-/download-7.1.0.tgz#9059aa9d70b503ee76a132897be6dec8e5587233" - integrity sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ== - dependencies: - archive-type "^4.0.0" - caw "^2.0.1" - content-disposition "^0.5.2" - decompress "^4.2.0" - ext-name "^5.0.0" - file-type "^8.1.0" - filenamify "^2.0.0" - get-stream "^3.0.0" - got "^8.3.1" - make-dir "^1.2.0" - p-event "^2.1.0" - pify "^3.0.0" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -duplexer@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.523: - version "1.3.529" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.529.tgz#a7eed559bc848a7c8d95026be7d8929e3f9af169" - integrity sha512-n3sriLldqNyjBlosbnPftjCY+m1dVOY307I1Y0HaHAqDGe3hRvK7ksJwWd+qs599ybR4jobCo1+7zXM9GyNMSA== - -"emoji-regex@>=6.0.0 <=6.1.1": - version "6.1.1" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" - integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= - -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= - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -entities@^1.1.1, entities@~1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -entities@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" - integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== - -error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -error@^7.0.0: - version "7.2.1" - resolved "https://registry.npmjs.org/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" - integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== - dependencies: - string-template "~0.2.1" - -es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: - version "1.17.6" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" - integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.0" - is-regex "^1.1.0" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -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" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escalade@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4" - integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eventsource@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" - integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== - dependencies: - original "^1.0.0" - -exec-buffer@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz#b1686dbd904c7cf982e652c1f5a79b1e5573082b" - integrity sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA== - dependencies: - execa "^0.7.0" - p-finally "^1.0.0" - pify "^3.0.0" - rimraf "^2.5.4" - tempfile "^2.0.0" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -executable@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" - integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== - dependencies: - pify "^2.2.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= - dependencies: - fill-range "^2.1.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== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -ext-list@^2.0.0: - version "2.2.2" - resolved "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" - integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== - dependencies: - mime-db "^1.28.0" - -ext-name@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" - integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== - dependencies: - ext-list "^2.0.0" - sort-keys-length "^1.0.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^3.1.1: - version "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: - version "2.2.7" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" - integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -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: - 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== - dependencies: - websocket-driver ">=0.5.1" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - -feed@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/feed/-/feed-4.2.1.tgz#b246ef891051c7dbf088ca203341d9fb0444baee" - integrity sha512-l28KKcK1J/u3iq5dRDmmoB2p7dtBfACC2NqJh4dI2kFptxH0asfjmOfcxqh5Sv8suAlVa73gZJ4REY5RrafVvg== - dependencies: - xml-js "^1.6.11" - -figures@^1.3.5: - version "1.7.0" - resolved "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - -file-type@5.2.0, file-type@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" - integrity sha1-LdvqfHP/42No365J3DOMBYwritY= - -file-type@^10.4.0, file-type@^10.7.0: - version "10.11.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz#2961d09e4675b9fb9a3ee6b69e9cd23f43fd1890" - integrity sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw== - -file-type@^3.8.0: - version "3.9.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" - integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= - -file-type@^4.2.0: - version "4.4.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" - integrity sha1-G2AOX8ofvcboDApwxxyNul95BsU= - -file-type@^6.1.0: - version "6.2.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" - integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== - -file-type@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz#244f3b7ef641bbe0cca196c7276e4b332399f68c" - integrity sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ== - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -filename-reserved-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" - integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= - -filenamify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz#88faf495fb1b47abfd612300002a16228c677ee9" - integrity sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA== - dependencies: - filename-reserved-regex "^2.0.0" - strip-outer "^1.0.0" - trim-repeated "^1.0.0" - -filesize@3.6.1: - version "3.6.1" - resolved "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" - integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== - -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-up@3.0.0, find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-versions@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" - integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== - dependencies: - semver-regex "^2.0.0" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -forever-agent@~0.6.1: - version "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@1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz#ce1d77190b44d81a761b10b6284a373795e41f0c" - integrity sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA== - dependencies: - babel-code-frame "^6.22.0" - chalk "^2.4.1" - chokidar "^2.0.4" - micromatch "^3.1.10" - minimatch "^3.0.4" - semver "^5.6.0" - tapable "^1.0.0" - worker-rpc "^0.1.0" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from2@^2.1.1: - version "2.3.0" - resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gaze@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" - integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== - dependencies: - globule "^1.0.0" - -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== - -get-proxy@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93" - integrity sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw== - dependencies: - npm-conf "^1.1.0" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= - -get-stream@3.0.0, get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^2.2.0: - version "2.3.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" - integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -gifsicle@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/gifsicle/-/gifsicle-4.0.1.tgz#30e1e61e3ee4884ef702641b2e98a15c2127b2e2" - integrity sha512-A/kiCLfDdV+ERV/UB+2O41mifd+RxH8jlRG8DMxZO84Bma/Fw0htqZ+hY2iaalLRNyUu7tYZQslqUBJxBggxbg== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.0" - execa "^1.0.0" - logalot "^2.0.0" - -github-slugger@^1.2.1: - version "1.3.0" - resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" - integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== - dependencies: - emoji-regex ">=6.0.0 <=6.1.1" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= - -glob@^7.0.0, glob@^7.0.5, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6, glob@~7.1.1: - version "7.1.6" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-modules@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globby@8.0.2, globby@^8.0.1: - 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" - -globule@^1.0.0: - version "1.3.2" - resolved "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4" - integrity sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA== - dependencies: - glob "~7.1.1" - lodash "~4.17.10" - minimatch "~3.0.2" - -good-listener@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" - integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= - dependencies: - delegate "^3.1.2" - -got@^7.0.0: - version "7.1.0" - resolved "https://registry.npmjs.org/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" - integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== - dependencies: - decompress-response "^3.2.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-plain-obj "^1.1.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^1.1.1" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - url-parse-lax "^1.0.0" - url-to-options "^1.0.1" - -got@^8.3.1: - version "8.3.2" - resolved "https://registry.npmjs.org/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" - integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== - dependencies: - "@sindresorhus/is" "^0.7.0" - cacheable-request "^2.1.1" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - into-stream "^3.1.0" - is-retry-allowed "^1.1.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - mimic-response "^1.0.0" - p-cancelable "^0.4.0" - p-timeout "^2.0.1" - pify "^3.0.0" - safe-buffer "^5.1.1" - timed-out "^4.0.1" - url-parse-lax "^3.0.0" - url-to-options "^1.0.1" - -graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.4" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -gray-matter@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-2.1.1.tgz#3042d9adec2a1ded6a7707a9ed2380f8a17a430e" - integrity sha1-MELZrewqHe1qdwep7SOA+KF6Qw4= - dependencies: - ansi-red "^0.1.1" - coffee-script "^1.12.4" - extend-shallow "^2.0.1" - js-yaml "^3.8.1" - toml "^2.3.2" - -gulp-header@^1.7.1: - version "1.8.12" - resolved "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84" - integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ== - dependencies: - concat-with-sourcemaps "*" - lodash.template "^4.4.0" - through2 "^2.0.0" - -gzip-size@5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" - integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== - dependencies: - duplexer "^0.1.1" - pify "^4.0.1" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.0, has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -highlight.js@^9.16.2: - version "9.18.3" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.3.tgz#a1a0a2028d5e3149e2380f8a865ee8516703d634" - integrity sha512-zBZAmhSupHIl5sITeMqIJnYCDfAEc3Gdkqj65wC1lpI468MMQeeQkhcIAvk+RylAkxrCcI9xy9piHiXeQ1BdzQ== - -hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-comment-regex@^1.1.0, html-comment-regex@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" - integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== - -htmlparser2@^3.9.1: - version "3.10.1" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - -http-cache-semantics@3.8.1: - version "3.8.1" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-parser-js@>=0.5.1: - version "0.5.2" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz#da2e31d237b393aae72ace43882dd7e270a8ff77" - integrity sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ== - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -iconv-lite@0.4.24, iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -ignore@^3.3.5: - version "3.3.10" - resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== - -imagemin-gifsicle@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-6.0.1.tgz#6abad4e95566d52e5a104aba1c24b4f3b48581b3" - integrity sha512-kuu47c6iKDQ6R9J10xCwL0lgs0+sMz3LRHqRcJ2CRBWdcNmo3T5hUaM8hSZfksptZXJLGKk8heSAvwtSdB1Fng== - dependencies: - exec-buffer "^3.0.0" - gifsicle "^4.0.0" - is-gif "^3.0.0" - -imagemin-jpegtran@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-6.0.0.tgz#c8d3bcfb6ec9c561c20a987142854be70d90b04f" - integrity sha512-Ih+NgThzqYfEWv9t58EItncaaXIHR0u9RuhKa8CtVBlMBvY0dCIxgQJQCfwImA4AV1PMfmUKlkyIHJjb7V4z1g== - dependencies: - exec-buffer "^3.0.0" - is-jpg "^2.0.0" - jpegtran-bin "^4.0.0" - -imagemin-optipng@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-6.0.0.tgz#a6bfc7b542fc08fc687e83dfb131249179a51a68" - integrity sha512-FoD2sMXvmoNm/zKPOWdhKpWdFdF9qiJmKC17MxZJPH42VMAp17/QENI/lIuP7LCUnLVAloO3AUoTSNzfhpyd8A== - dependencies: - exec-buffer "^3.0.0" - is-png "^1.0.0" - optipng-bin "^5.0.0" - -imagemin-svgo@^7.0.0: - version "7.1.0" - resolved "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-7.1.0.tgz#528a42fd3d55eff5d4af8fd1113f25fb61ad6d9a" - integrity sha512-0JlIZNWP0Luasn1HT82uB9nU9aa+vUj6kpT+MjPW11LbprXC+iC4HDwn1r4Q2/91qj4iy9tRZNsFySMlEpLdpg== - dependencies: - is-svg "^4.2.1" - svgo "^1.3.2" - -imagemin@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/imagemin/-/imagemin-6.1.0.tgz#62508b465728fea36c03cdc07d915fe2d8cf9e13" - integrity sha512-8ryJBL1CN5uSHpiBMX0rJw79C9F9aJqMnjGnrd/1CafegpNuA81RBAAru/jQQEOWlOJJlpRnlcVFF6wq+Ist0A== - dependencies: - file-type "^10.7.0" - globby "^8.0.1" - make-dir "^1.0.0" - p-pipe "^1.1.0" - pify "^4.0.1" - replace-ext "^1.0.0" - -immer@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" - integrity sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg== - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-lazy@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz#891279202c8a2280fdbd6674dbd8da1a1dfc67cc" - integrity sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ== - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= - dependencies: - repeating "^2.0.0" - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, 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== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.4, ini@^1.3.5: - version "1.3.5" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -inquirer@6.5.0: - version "6.5.0" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42" - integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -into-stream@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" - integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= - dependencies: - from2 "^2.1.1" - p-is-promise "^1.1.0" - -invariant@^2.2.2, invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - -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== - -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" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.4, is-callable@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" - integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -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" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-gif@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-gif/-/is-gif-3.0.0.tgz#c4be60b26a301d695bb833b20d9b5d66c6cf83b1" - integrity sha512-IqJ/jlbw5WJSNfwQ/lHEDXF8rxhRgF6ythk2oiEvhpG29F704eX9NO6TvPfMiq9DrbwgcEDnETYNcZDPewQoVw== - dependencies: - file-type "^10.4.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-jpg@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz#2e1997fa6e9166eaac0242daae443403e4ef1d97" - integrity sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc= - -is-natural-number@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" - integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg= - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-object@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" - integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= - -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-png@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz#d574b12bf275c0350455570b0e5b57ab062077ce" - integrity sha1-1XSxK/J1wDUEVVcLDltXqwYgd84= - -is-regex@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== - dependencies: - has-symbols "^1.0.1" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - -is-root@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" - integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== - -is-stream@^1.0.0, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-svg@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" - integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== - dependencies: - html-comment-regex "^1.1.0" - -is-svg@^4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/is-svg/-/is-svg-4.2.1.tgz#095b496e345fec9211c2a7d5d021003e040d6f81" - integrity sha512-PHx3ANecKsKNl5y5+Jvt53Y4J7MfMpbNZkv384QNiswMKAWIbvcqbPz+sYbFKJI8Xv3be01GSFniPmoaP+Ai5A== - dependencies: - html-comment-regex "^1.1.2" - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-url@^1.2.2: - version "1.2.4" - resolved "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" - integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is2@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is2/-/is2-2.0.1.tgz#8ac355644840921ce435d94f05d3a94634d3481a" - integrity sha512-+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA== - dependencies: - deep-is "^0.1.3" - ip-regex "^2.1.0" - is-url "^1.2.2" - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - -jpegtran-bin@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-4.0.0.tgz#d00aed809fba7aa6f30817e59eee4ddf198f8f10" - integrity sha512-2cRl1ism+wJUoYAYFt6O/rLBfpXNWG2dUWbgcEkTt5WGMnqI46eEro8T4C5zGROxKRqyKpCBSdHPvt5UYCtxaQ== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.0" - logalot "^2.0.0" - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - 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.1, js-yaml@^3.8.1: - version "3.14.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json3@^3.3.2: - 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" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2: - version "2.1.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -keyv@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" - integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== - dependencies: - json-buffer "3.0.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -lazy-cache@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264" - integrity sha1-uRkKT5EzVGlIQIWfio9whNiCImQ= - dependencies: - set-getter "^0.1.0" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== - dependencies: - leven "^3.1.0" - -list-item@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/list-item/-/list-item-1.1.1.tgz#0c65d00e287cb663ccb3cb3849a77e89ec268a56" - integrity sha1-DGXQDih8tmPMs8s4Sad+iewmilY= - dependencies: - expand-range "^1.8.1" - extend-shallow "^2.0.1" - is-number "^2.1.0" - repeat-string "^1.5.2" - -livereload-js@^2.3.0: - version "2.4.0" - resolved "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" - integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw== - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -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" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= - -lodash.assignin@^4.0.9: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" - integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= - -lodash.bind@^4.1.4: - version "4.2.1" - resolved "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" - integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= - -lodash.chunk@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc" - integrity sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw= - -lodash.defaults@^4.0.1: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= - -lodash.filter@^4.4.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" - integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= - -lodash.flatten@^4.2.0: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= - -lodash.foreach@^4.3.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" - integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= - -lodash.map@^4.4.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.merge@^4.4.0: - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.padstart@^4.6.1: - version "4.6.1" - resolved "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" - integrity sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs= - -lodash.pick@^4.2.1: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= - -lodash.reduce@^4.4.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" - integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= - -lodash.reject@^4.4.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" - integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= - -lodash.some@^4.4.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - -lodash.template@^4.4.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.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= - -lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@~4.17.10: - version "4.17.19" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== - -logalot@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552" - integrity sha1-X46MkNME7fElMJUaVVSruMXj9VI= - dependencies: - figures "^1.3.5" - squeak "^1.0.0" - -longest@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lowercase-keys@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= - -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lpad-align@^1.0.1: - version "1.1.2" - resolved "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz#21f600ac1c3095c3c6e497ee67271ee08481fe9e" - integrity sha1-IfYArBwwlcPG5JfuZyce4ISB/p4= - dependencies: - get-stdin "^4.0.1" - indent-string "^2.1.0" - longest "^1.0.0" - meow "^3.3.0" - -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -make-dir@^1.0.0, make-dir@^1.2.0: - version "1.3.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -markdown-link@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz#32c5c65199a6457316322d1e4229d13407c8c7cf" - integrity sha1-MsXGUZmmRXMWMi0eQinRNAfIx88= - -markdown-toc@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/markdown-toc/-/markdown-toc-1.2.0.tgz#44a15606844490314afc0444483f9e7b1122c339" - integrity sha512-eOsq7EGd3asV0oBfmyqngeEIhrbkc7XVP63OwcJBIhH2EpG2PzFcbZdhy1jutXSlRBBVMNXHvMtSr5LAxSUvUg== - dependencies: - concat-stream "^1.5.2" - diacritics-map "^0.1.0" - gray-matter "^2.1.0" - lazy-cache "^2.0.2" - list-item "^1.1.1" - markdown-link "^0.1.1" - minimist "^1.2.0" - mixin-deep "^1.1.3" - object.pick "^1.2.0" - remarkable "^1.7.1" - repeat-string "^1.6.1" - strip-color "^0.1.0" - -math-random@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" - integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -mdn-data@2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" - integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -meow@^3.3.0: - version "3.7.0" - resolved "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge2@^1.2.3: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -microevent.ts@~0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" - integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -mime-db@1.44.0, mime-db@^1.28.0: - version "1.44.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== - -mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.27" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== - dependencies: - mime-db "1.44.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2: - version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mixin-deep@^1.1.3, mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.1: - version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - -nan@^2.12.1: - version "2.14.1" - resolved "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-modules-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" - integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= - -node-releases@^1.1.29, node-releases@^1.1.60: - version "1.1.60" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" - integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.5.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -normalize-url@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -npm-conf@^1.1.0: - version "1.1.3" - resolved "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== - dependencies: - config-chain "^1.1.11" - pify "^3.0.0" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -nth-check@^1.0.2, nth-check@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.7.0: - version "1.8.0" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.getownpropertydescriptors@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -object.pick@^1.2.0, object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" - integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - has "^1.0.3" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - -open@^6.3.0: - version "6.4.0" - resolved "https://registry.npmjs.org/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" - integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== - dependencies: - is-wsl "^1.1.0" - -optipng-bin@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/optipng-bin/-/optipng-bin-5.1.0.tgz#a7c7ab600a3ab5a177dae2f94c2d800aa386b5a9" - integrity sha512-9baoqZTNNmXQjq/PQTWEXbVV3AMO2sI/GaaqZJZ8SExfAzjijeAP7FEeT+TtyumSw7gr0PZtSUYB/Ke7iHQVKA== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.0" - logalot "^2.0.0" - -original@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - -os-filter-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz#1c0b62d5f3a2442749a2d139e6dddee6e81d8d16" - integrity sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg== - dependencies: - arch "^2.1.0" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-cancelable@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" - integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== - -p-cancelable@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" - integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== - -p-event@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz#8e6b4f4f65c72bc5b6fe28b75eda874f96a4a085" - integrity sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU= - dependencies: - p-timeout "^1.1.1" - -p-event@^2.1.0: - version "2.3.1" - resolved "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz#596279ef169ab2c3e0cae88c1cfbb08079993ef6" - integrity sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA== - dependencies: - p-timeout "^2.0.1" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-is-promise@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" - integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-map-series@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" - integrity sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco= - dependencies: - p-reduce "^1.0.0" - -p-pipe@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9" - integrity sha1-SxoROZoRUgpneQ7loMHViB1r7+k= - -p-reduce@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" - integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= - -p-timeout@^1.1.1: - version "1.2.1" - resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" - integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= - dependencies: - p-finally "^1.0.0" - -p-timeout@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" - integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== - dependencies: - p-finally "^1.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pirates@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" - integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== - dependencies: - node-modules-regexp "^1.0.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-up@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" - -portfinder@^1.0.25: - version "1.0.28" - resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-calc@^7.0.1: - version "7.0.3" - resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.3.tgz#d65cca92a3c52bf27ad37a5f732e0587b74f1623" - integrity sha512-IB/EAEmZhIMEIhG7Ov4x+l47UaXOS1n2f4FBUk/aKllQhtSCxWhTzn0nJgkqN7fo/jcWySvWTSB6Syk9L+31bA== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" - integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-svgo@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" - integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== - dependencies: - is-svg "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0: - version "3.3.1" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.23, postcss@^7.0.27, postcss@^7.0.32: - version "7.0.32" - resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" - integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -prepend-http@^1.0.1: - 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" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -prismjs@^1.17.1: - version "1.21.0" - resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz#36c086ec36b45319ec4218ee164c110f9fc015a3" - integrity sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw== - optionalDependencies: - clipboard "^2.0.0" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -prop-types@^15.6.2: - version "15.7.2" - resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= - -proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.1" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -qs@^6.4.0: - version "6.9.4" - resolved "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" - integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== - -qs@~6.5.2: - version "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@^5.0.1: - version "5.1.1" - resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystringify@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" - integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== - -randomatic@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" - integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -raw-body@~1.1.0: - version "1.1.7" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" - integrity sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU= - dependencies: - bytes "1" - string_decoder "0.10" - -react-dev-utils@^9.1.0: - version "9.1.0" - resolved "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.1.0.tgz#3ad2bb8848a32319d760d0a84c56c14bdaae5e81" - integrity sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg== - dependencies: - "@babel/code-frame" "7.5.5" - address "1.1.2" - browserslist "4.7.0" - chalk "2.4.2" - cross-spawn "6.0.5" - detect-port-alt "1.1.6" - escape-string-regexp "1.0.5" - filesize "3.6.1" - find-up "3.0.0" - fork-ts-checker-webpack-plugin "1.5.0" - global-modules "2.0.0" - globby "8.0.2" - gzip-size "5.1.1" - immer "1.10.0" - inquirer "6.5.0" - is-root "2.1.0" - loader-utils "1.2.3" - open "^6.3.0" - pkg-up "2.0.0" - react-error-overlay "^6.0.3" - recursive-readdir "2.2.2" - shell-quote "1.7.2" - sockjs-client "1.4.0" - strip-ansi "5.2.0" - text-table "0.2.0" - -react-dom@^16.8.4: - version "16.13.1" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" - -react-error-overlay@^6.0.3: - version "6.0.7" - resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz#1dcfb459ab671d53f660a991513cb2f0a0553108" - integrity sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA== - -react-is@^16.8.1: - version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react@^16.8.4: - version "16.13.1" - resolved "https://registry.npmjs.org/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.1.1: - version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= - dependencies: - resolve "^1.1.6" - -recursive-readdir@2.2.2: - version "2.2.2" - resolved "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" - integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== - dependencies: - minimatch "3.0.4" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.1" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" - integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== - -regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== - dependencies: - "@babel/runtime" "^7.8.4" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpu-core@^4.7.0: - version "4.7.0" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== - dependencies: - jsesc "~0.5.0" - -remarkable@^1.7.1: - version "1.7.4" - resolved "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00" - integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg== - dependencies: - argparse "^1.0.10" - autolinker "~0.28.0" - -remarkable@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/remarkable/-/remarkable-2.0.1.tgz#280ae6627384dfb13d98ee3995627ca550a12f31" - integrity sha512-YJyMcOH5lrR+kZdmB0aJJ4+93bEojRZ1HGDn9Eagu6ibg7aVZhc3OWbbShRid+Q5eAfsEqWxpe+g5W5nYNfNiA== - dependencies: - argparse "^1.0.10" - autolinker "^3.11.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -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.5.2, 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= - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -replace-ext@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" - integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== - -request@^2.53.0, request@^2.88.0: - version "2.88.2" - resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-url@^0.2.1: - version "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.3.2: - version "1.17.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -responselike@1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -rimraf@^2.5.4: - version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -run-async@^2.2.0: - version "2.4.1" - resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -rxjs@^6.4.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" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-json-parse@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" - integrity sha1-PnZyPjjf3aE8mx0poeB//uSzC1c= - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sax@^1.2.4, sax@~1.2.4: - version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -seek-bzip@^1.0.5: - version "1.0.6" - resolved "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" - integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== - dependencies: - commander "^2.8.1" - -select@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" - integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= - -semver-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" - integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== - -semver-truncate@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8" - integrity sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g= - dependencies: - semver "^5.3.0" - -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -send@0.17.1: - version "0.17.1" - resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-getter@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376" - integrity sha1-12nBgsnVpR9AkUXy+6guXoboA3Y= - dependencies: - to-object-path "^0.3.0" - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shell-quote@1.7.2: - version "1.7.2" - resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" - integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== - -shelljs@^0.8.4: - version "0.8.4" - resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" - integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -sitemap@^3.2.2: - version "3.2.2" - resolved "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz#3f77c358fa97b555c879e457098e39910095c62b" - integrity sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg== - dependencies: - lodash.chunk "^4.2.0" - lodash.padstart "^4.6.1" - whatwg-url "^7.0.0" - xmlbuilder "^13.0.0" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - 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== - dependencies: - debug "^3.2.5" - eventsource "^1.0.7" - faye-websocket "~0.11.1" - inherits "^2.0.3" - json3 "^3.3.2" - url-parse "^1.4.3" - -sort-keys-length@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" - integrity sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg= - dependencies: - sort-keys "^1.0.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" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= - dependencies: - is-plain-obj "^1.0.0" - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.5.16: - 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== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -squeak@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz#33045037b64388b567674b84322a6521073916c3" - integrity sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM= - dependencies: - chalk "^1.0.0" - console-stream "^0.1.1" - lpad-align "^1.0.1" - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -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= - -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= - -string-width@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string.prototype.trimend@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimstart@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string_decoder@0.10: - version "0.10.31" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.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== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.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" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= - dependencies: - is-utf8 "^0.2.0" - -strip-color@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/strip-color/-/strip-color-0.1.0.tgz#106f65d3d3e6a2d9401cac0eb0ce8b8a702b4f7b" - integrity sha1-EG9l09PmotlAHKwOsM6LinArT3s= - -strip-dirs@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" - integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== - dependencies: - is-natural-number "^4.0.1" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= - dependencies: - get-stdin "^4.0.1" - -strip-outer@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" - integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== - dependencies: - escape-string-regexp "^1.0.2" - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== - dependencies: - has-flag "^4.0.0" - -svgo@^1.0.0, svgo@^1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -tapable@^1.0.0: - version "1.1.3" - resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tar-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" - integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== - dependencies: - bl "^1.0.0" - buffer-alloc "^1.2.0" - end-of-stream "^1.0.0" - fs-constants "^1.0.0" - readable-stream "^2.3.0" - to-buffer "^1.1.1" - xtend "^4.0.0" - -tcp-port-used@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.1.tgz#46061078e2d38c73979a2c2c12b5a674e6689d70" - integrity sha512-rwi5xJeU6utXoEIiMvVBMc9eJ2/ofzB+7nLOdnZuFTmNCLqRiQh2sMG9MqCxHU/69VC/Fwp5dV9306Qd54ll1Q== - dependencies: - debug "4.1.0" - is2 "2.0.1" - -temp-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" - integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= - -tempfile@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265" - integrity sha1-awRGhWqbERTRhW/8vlCczLCXcmU= - dependencies: - temp-dir "^1.0.0" - uuid "^3.0.1" - -text-table@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@^2.3.6, through@^2.3.8: - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -timed-out@^4.0.0, timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -tiny-emitter@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" - integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== - -tiny-lr@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" - integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA== - dependencies: - body "^5.1.0" - debug "^3.1.0" - faye-websocket "~0.10.0" - livereload-js "^2.3.0" - object-assign "^4.1.0" - qs "^6.4.0" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-buffer@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" - integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -toml@^2.3.2: - version "2.3.6" - resolved "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz#25b0866483a9722474895559088b436fd11f861b" - integrity sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ== - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: - punycode "^2.1.0" - -tree-node-cli@^1.2.5: - version "1.4.0" - resolved "https://registry.npmjs.org/tree-node-cli/-/tree-node-cli-1.4.0.tgz#8f4028554610d6ee1cdeb98554a60841a3cfa3ac" - integrity sha512-hBc/cp7rTSHFSFvaTzmHNYyJv87UJBsxsfCoq2DtDQuMES4vhnLuvXZit/asGtZG8edWTCydWeFWoBz9LYkJdQ== - dependencies: - commander "^5.0.0" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= - -trim-repeated@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" - integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= - dependencies: - escape-string-regexp "^1.0.2" - -truncate-html@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/truncate-html/-/truncate-html-1.0.3.tgz#0166dfc7890626130c2e4174c6b73d4d63993e5f" - integrity sha512-1o1prdRv+iehXcGwn29YgXU17DotHkr+OK3ijVEG7FGMwHNG9RyobXwimw6djDvbIc24rhmz3tjNNvNESjkNkQ== - dependencies: - "@types/cheerio" "^0.22.8" - cheerio "0.22.0" - -tslib@^1.9.0, tslib@^1.9.3: - version "1.13.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -unbzip2-stream@^1.0.9: - version "1.4.3" - resolved "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" - integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== - dependencies: - buffer "^5.2.1" - through "^2.3.8" - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= - dependencies: - prepend-http "^1.0.1" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -url-parse@^1.4.3: - version "1.4.7" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.0.1, uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - -websocket-driver@>=0.5.1: - 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" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -which@^1.2.9, which@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= - -worker-rpc@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" - integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== - dependencies: - microevent.ts "~0.1.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -xml-js@^1.6.11: - version "1.6.11" - resolved "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" - integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== - dependencies: - sax "^1.2.4" - -xmlbuilder@^13.0.0: - version "13.0.2" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz#02ae33614b6a047d1c32b5389c1fdacb2bce47a7" - integrity sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ== - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yamljs@^0.2.1: - version "0.2.10" - resolved "https://registry.npmjs.org/yamljs/-/yamljs-0.2.10.tgz#481cc7c25ca73af59f591f0c96e3ce56c757a40f" - integrity sha1-SBzHwlynOvWfWR8MluPOVsdXpA8= - dependencies: - argparse "^1.0.7" - glob "^7.0.5" - -yargs@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-2.3.0.tgz#e900c87250ec5cd080db6009fe3dd63156f1d7fb" - integrity sha1-6QDIclDsXNCA22AJ/j3WMVbx1/s= - dependencies: - wordwrap "0.0.2" - -yauzl@^2.4.2: - version "2.10.0" - resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" diff --git a/yarn.lock b/yarn.lock index e60975d60e..95f3cdbab1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9286,10 +9286,10 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -docusaurus@^1.14.4: - version "1.14.6" - resolved "https://registry.npmjs.org/docusaurus/-/docusaurus-1.14.6.tgz#ffab9f6dafe8c48c477e0ebc7f491e554143b2b5" - integrity sha512-Hpo6xqYIHwazwuhXW25AKYv/os+dWoJ87qql/m1j1xp83h/BnfYV2l8PA8zLggF1wGUbJQbTx7GWo6QvD8z+4Q== +docusaurus@2.0.0-alpha.61: + version "2.0.0-alpha.61" + resolved "https://registry.npmjs.org/docusaurus/-/docusaurus-2.0.0-alpha.61.tgz#f347b81c98c66f1de3ecfccf63fa421ddff52fbb" + integrity sha512-qDU3nOA4Xs95tIjjSETnEuRmTukTzgxyTZ5MgMyuG7y6h4oDHtpLcYf8F+xlXuuWHKv3VSxRJNzV8fZHPgnK3g== dependencies: "@babel/core" "^7.9.0" "@babel/plugin-proposal-class-properties" "^7.8.3" From 8d4e14e1c5673dca2da05eb220ef6b8a30a5b632 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 14 Aug 2020 15:07:03 +0200 Subject: [PATCH 033/656] Update versions in upcoming features --- docs/features/techdocs/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/features/techdocs/README.md b/docs/features/techdocs/README.md index f71e3d6c0d..c0e6ccfda9 100644 --- a/docs/features/techdocs/README.md +++ b/docs/features/techdocs/README.md @@ -20,9 +20,9 @@ Spotify’s developer experience offering with 2,400+ documentation sites and - A clear end-to-end docs-like-code solution. (_Coming soon in V.1_) - A tightly coupled feedback loop with the developer workflow. (_Coming soon in - V.2_) + V.3_) -- A developer ecosystem for creating extensions. (_Coming soon in V.2_) +- A developer ecosystem for creating extensions. (_Coming soon in V.3_) ## Project roadmap From 69a496b0c717d99aa4177419402938cfc6668a05 Mon Sep 17 00:00:00 2001 From: Dominik Henneke Date: Fri, 14 Aug 2020 20:28:42 +0200 Subject: [PATCH 034/656] test(catalog-backend): increase coverage of the yaml processor Co-authored-by: Oliver Sand --- .../processors/YamlProcessor.test.ts | 135 ++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 plugins/catalog-backend/src/ingestion/processors/YamlProcessor.test.ts diff --git a/plugins/catalog-backend/src/ingestion/processors/YamlProcessor.test.ts b/plugins/catalog-backend/src/ingestion/processors/YamlProcessor.test.ts new file mode 100644 index 0000000000..587793a6de --- /dev/null +++ b/plugins/catalog-backend/src/ingestion/processors/YamlProcessor.test.ts @@ -0,0 +1,135 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { YamlProcessor } from './YamlProcessor'; +import { Entity } from '@backstage/catalog-model'; +import yaml from 'yaml'; +import { TextEncoder } from 'util'; +import { + LocationProcessorEntityResult, + LocationProcessorErrorResult, +} from './types'; + +describe('YamlProcessor', () => { + const processor = new YamlProcessor(); + const locationSpec = { + type: 'url', + target: 'http://example.com/component.yaml', + }; + + function encodeEntity(entity: string): Buffer { + const data = new TextEncoder().encode(entity); + return Buffer.from(data); + } + + it('should only process files with yaml', async () => { + const wrongLocationSpec = { + type: 'url', + target: 'http://example.com/component.json', + }; + + const buffer = Buffer.from([]); + const never = jest.fn(); + + expect(await processor.parseData(buffer, wrongLocationSpec, never)).toBe( + false, + ); + + expect(never).not.toBeCalled(); + }); + + it('should process entity with yaml', async () => { + const entity = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + name: 'my-component', + }, + spec: {}, + } as Entity; + + const buffer = encodeEntity(yaml.stringify(entity)); + const emit = jest.fn(); + + expect(await processor.parseData(buffer, locationSpec, emit)).toBe(true); + + const e = emit.mock.calls[0][0] as LocationProcessorEntityResult; + expect(e.type).toBe('entity'); + expect(e.location).toBe(locationSpec); + expect(e.entity).toEqual(entity); + }); + + it('should process multiple entities with yaml', async () => { + const entityComponent = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + name: 'my-component', + }, + spec: {}, + } as Entity; + + const entityApi = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'API', + metadata: { + name: 'my-api', + }, + spec: {}, + } as Entity; + + const buffer = encodeEntity( + `${yaml.stringify(entityComponent)}---\n${yaml.stringify(entityApi)}`, + ); + const emit = jest.fn(); + + expect(await processor.parseData(buffer, locationSpec, emit)).toBe(true); + + const eComponent = emit.mock.calls[0][0] as LocationProcessorEntityResult; + expect(eComponent.type).toBe('entity'); + expect(eComponent.location).toBe(locationSpec); + expect(eComponent.entity).toEqual(entityComponent); + + const eApi = emit.mock.calls[1][0] as LocationProcessorEntityResult; + expect(eApi.type).toBe('entity'); + expect(eApi.location).toBe(locationSpec); + expect(eApi.entity).toEqual(entityApi); + }); + + it('should fail process entity on invalid yaml', async () => { + const buffer = encodeEntity('{'); + const emit = jest.fn(); + + expect(await processor.parseData(buffer, locationSpec, emit)).toBe(true); + + const e = emit.mock.calls[0][0] as LocationProcessorErrorResult; + expect(e.error.message).toMatch(/^YAML error, /); + expect(e.type).toBe('error'); + expect(e.location).toBe(locationSpec); + }); + + it('should fail process entity if not object at root', async () => { + const buffer = encodeEntity('[]'); + const emit = jest.fn(); + + expect(await processor.parseData(buffer, locationSpec, emit)).toBe(true); + + const e = emit.mock.calls[0][0] as LocationProcessorErrorResult; + expect(e.error.message).toMatch(/^Expected object at root, got /); + expect(e.type).toBe('error'); + expect(e.location).toBe(locationSpec); + }); +}); From 4cf6cf3b6c2a049b086170d2b0a7cfa198ea9b23 Mon Sep 17 00:00:00 2001 From: Paul Pacheco Date: Sun, 16 Aug 2020 02:08:36 -0500 Subject: [PATCH 035/656] The backend listens to all interfaces by default (#1962) * The backend listens to all interfaces by default Previously, if you did not specify a host, it would only listen to localhost, so it would not accept connections from the network. If you use the default generated app, it is configured to listen to 0.0.0.0 which only listens to IPv4 interfaces. This changes the default behavior, just listen to all interfaces. * Add some comment --- app-config.yaml | 1 - packages/backend-common/src/service/lib/ServiceBuilderImpl.ts | 3 ++- packages/create-app/templates/default-app/app-config.yaml | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index e5df1de5d5..a0233991f8 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -5,7 +5,6 @@ app: backend: baseUrl: http://localhost:7000 listen: - host: 0.0.0.0 port: 7000 cors: origin: http://localhost:3000 diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index 4a51fb195c..cd8e445dd8 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -33,7 +33,8 @@ import { ServiceBuilder } from '../types'; import { readBaseOptions, readCorsOptions } from './config'; const DEFAULT_PORT = 7000; -const DEFAULT_HOST = 'localhost'; +// '' is express default, which listens to all interfaces +const DEFAULT_HOST = ''; export class ServiceBuilderImpl implements ServiceBuilder { private port: number | undefined; diff --git a/packages/create-app/templates/default-app/app-config.yaml b/packages/create-app/templates/default-app/app-config.yaml index addd74ab67..9fafbf4d76 100644 --- a/packages/create-app/templates/default-app/app-config.yaml +++ b/packages/create-app/templates/default-app/app-config.yaml @@ -8,7 +8,6 @@ organization: backend: baseUrl: http://localhost:7000 listen: - host: 0.0.0.0 port: 7000 cors: origin: http://localhost:3000 From c74c8b4592303b74883045ad81bb1cef39f3970d Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Sun, 16 Aug 2020 09:10:28 +0200 Subject: [PATCH 036/656] Improve styling of OpenAPI component (especially in dark mode) (#1961) --- .../OpenApiDefinitionWidget.tsx | 53 +++++++++++++++++-- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/plugins/api-docs/src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.tsx b/plugins/api-docs/src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.tsx index 1cab3d194d..6edf39319e 100644 --- a/plugins/api-docs/src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.tsx +++ b/plugins/api-docs/src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.tsx @@ -15,12 +15,61 @@ */ import React, { FC, useEffect, useState } from 'react'; +import { makeStyles } from '@material-ui/core/styles'; import SwaggerUI from 'swagger-ui-react'; import 'swagger-ui-react/swagger-ui.css'; +// TODO: Schemas + +const useStyles = makeStyles(theme => ({ + root: { + '& .swagger-ui, .info h1, .info h2, .info h3, .info h4, .info h': { + 'font-family': 'inherit', + color: theme.palette.text.primary, + }, + '& .scheme-container': { + 'background-color': theme.palette.background.default, + }, + '& .opblock-tag, .opblock-tag small, table thead tr td, table thead tr th': { + color: theme.palette.text.primary, + 'border-color': theme.palette.divider, + }, + '& section.models, section.models.is-open h4': { + 'border-color': theme.palette.divider, + }, + '& .opblock .opblock-summary-description, .parameter__type, table.headers td, .model-title, .model .property.primitive': { + color: theme.palette.text.secondary, + }, + '& .opblock .opblock-summary-operation-id, .opblock .opblock-summary-path, .opblock .opblock-summary-path__deprecated, .opblock .opblock-section-header h4, .parameter__name, .response-col_status, .response-col_links, .responses-inner h4, .swagger-ui .responses-inner h5, .opblock-section-header .btn, .tab li, .info li, .info p, .info table, section.models h4, .info .title, table.model tr.description, .property-row': { + color: theme.palette.text.primary, + }, + '& .opblock .opblock-section-header, .model-box, section.models .model-container': { + background: theme.palette.background.default, + }, + '& .prop-format, .parameter__in': { + color: theme.palette.text.disabled, + }, + '& ': { + color: theme.palette.text.primary, + 'border-color': theme.palette.divider, + }, + '& .opblock-description-wrapper p, .opblock-external-docs-wrapper p, .opblock-title_normal p, .response-control-media-type__accept-message, .opblock .opblock-section-header>label, .scheme-container .schemes>label, .info .base-url, .model': { + color: theme.palette.text.hint, + }, + '& .parameter__name.required:after': { + color: theme.palette.warning.dark, + }, + '& .prop-type': { + color: theme.palette.primary.main, + }, + }, +})); + export const OpenApiDefinitionWidget: FC<{ definition: any; }> = ({ definition }) => { + const classes = useStyles(); + // Due to a bug in the swagger-ui-react component, the component needs // to be created without content first. const [def, setDef] = useState(''); @@ -30,10 +79,8 @@ export const OpenApiDefinitionWidget: FC<{ return () => clearTimeout(timer); }, [definition, setDef]); - // TODO: This looks fine in the light theme, but wrong in dark mode. We need a custom stylesheet for swagger-ui. - // Till then, we add a white background to the swagger-ui to make it usable in dark mode. return ( -
+
); From 9bee7245e3cf29e1c5e965ce1d3760409c40d4f6 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sun, 16 Aug 2020 11:39:43 +0000 Subject: [PATCH 037/656] chore(deps): bump lodash from 4.17.19 to 4.17.20 Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.20. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.19...4.17.20) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 250d8b4b73..b670735194 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14866,9 +14866,9 @@ lodash@4.17.15: integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4, lodash@^4.2.1, lodash@~4.17.10: - version "4.17.19" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== + version "4.17.20" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== log-symbols@3.0.0, log-symbols@^3.0.0: version "3.0.0" From 19775e4bd0c996dd13ad593d24d2c76caad9de2b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sun, 16 Aug 2020 11:40:17 +0000 Subject: [PATCH 038/656] chore(deps): bump swr from 0.2.3 to 0.3.0 Bumps [swr](https://github.com/vercel/swr) from 0.2.3 to 0.3.0. - [Release notes](https://github.com/vercel/swr/releases) - [Commits](https://github.com/vercel/swr/compare/0.2.3...0.3.0) Signed-off-by: dependabot-preview[bot] --- plugins/catalog/package.json | 2 +- plugins/scaffolder/package.json | 2 +- yarn.lock | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index db32a91ca3..22085d5184 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -38,7 +38,7 @@ "react-router": "6.0.0-beta.0", "react-router-dom": "6.0.0-beta.0", "react-use": "^15.3.3", - "swr": "^0.2.2" + "swr": "^0.3.0" }, "devDependencies": { "@backstage/cli": "^0.1.1-alpha.18", diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 822a620c8a..c0376a3594 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -38,7 +38,7 @@ "react-router": "6.0.0-beta.0", "react-router-dom": "6.0.0-beta.0", "react-use": "^15.3.3", - "swr": "^0.2.2" + "swr": "^0.3.0" }, "devDependencies": { "@backstage/cli": "^0.1.1-alpha.18", diff --git a/yarn.lock b/yarn.lock index 250d8b4b73..e0a983211f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21196,10 +21196,10 @@ swagger-ui-react@^3.31.1: xml-but-prettier "^1.0.1" zenscroll "^4.0.2" -swr@^0.2.2: - version "0.2.3" - resolved "https://registry.npmjs.org/swr/-/swr-0.2.3.tgz#e0fb260d27f12fafa2388312083368f45127480d" - integrity sha512-JhuuD5ojqgjAQpZAhoPBd8Di0Mr1+ykByVKuRJdtKaxkUX/y8kMACWKkLgLQc8pcDOKEAnbIreNjU7HfqI9nHQ== +swr@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/swr/-/swr-0.3.0.tgz#69602953dd50ab07fe60c920fd63199256645675" + integrity sha512-3p0p5TWH0qiaKAph5wBkMwqe2WjNseITfjmdVoNzjqRZGn/gnpRi6whMDjhMVb/vp/yyDtKWPlyjid8QZH+UhA== dependencies: fast-deep-equal "2.0.1" From deb108d9865e4a4526e87a4c04b128a99c3543b2 Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Sun, 16 Aug 2020 15:19:40 +0200 Subject: [PATCH 039/656] Add styling (especially dark mode) for the asyncAPI display component (#1958) --- plugins/api-docs/package.json | 2 +- .../AsyncApiDefinitionWidget.tsx | 127 +- .../AsyncApiDefinitionWidget/style.css | 1273 ----------------- yarn.lock | 183 ++- 4 files changed, 280 insertions(+), 1305 deletions(-) delete mode 100644 plugins/api-docs/src/components/AsyncApiDefinitionWidget/style.css diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index a599e7e322..65f83a936d 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -25,7 +25,7 @@ "@backstage/core": "^0.1.1-alpha.18", "@backstage/plugin-catalog": "^0.1.1-alpha.18", "@backstage/theme": "^0.1.1-alpha.18", - "@kyma-project/asyncapi-react": "^0.6.1", + "@kyma-project/asyncapi-react": "^0.11.0", "@material-icons/font": "^1.0.2", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", diff --git a/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinitionWidget.tsx b/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinitionWidget.tsx index 2b5e697e51..ce372e3cdc 100644 --- a/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinitionWidget.tsx +++ b/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinitionWidget.tsx @@ -16,10 +16,133 @@ import AsyncApi from '@kyma-project/asyncapi-react'; import React, { FC } from 'react'; -import './style.css'; +import { makeStyles, fade } from '@material-ui/core/styles'; +import '@kyma-project/asyncapi-react/lib/styles/fiori.css'; + +const useStyles = makeStyles(theme => ({ + root: { + '& .asyncapi': { + 'font-family': 'inherit', + background: 'none', + }, + '& h2': { + ...theme.typography.h6, + }, + '& .text-teal': { + color: theme.palette.primary.main, + }, + '& button': { + ...theme.typography.button, + background: 'none', + boxSizing: 'border-box', + minWidth: 64, + borderRadius: theme.shape.borderRadius, + transition: theme.transitions.create( + ['background-color', 'box-shadow', 'border'], + { + duration: theme.transitions.duration.short, + }, + ), + padding: '5px 15px', + color: theme.palette.primary.main, + border: `1px solid ${fade(theme.palette.primary.main, 0.5)}`, + '&:hover': { + textDecoration: 'none', + '&$disabled': { + backgroundColor: 'transparent', + }, + border: `1px solid ${theme.palette.primary.main}`, + backgroundColor: fade( + theme.palette.primary.main, + theme.palette.action.hoverOpacity, + ), + // Reset on touch devices, it doesn't add specificity + '@media (hover: none)': { + backgroundColor: 'transparent', + }, + }, + '&$disabled': { + color: theme.palette.action.disabled, + }, + }, + '& .asyncapi__collapse-button:hover': { + color: theme.palette.primary.main, + }, + '& button.asyncapi__toggle-button': { + 'min-width': 'inherit', + }, + '& .asyncapi__info-list li': { + 'border-color': theme.palette.primary.main, + '&:hover': { + color: theme.palette.text.primary, + 'border-color': theme.palette.primary.main, + 'background-color': theme.palette.primary.main, + }, + }, + '& .asyncapi__info-list li a': { + color: theme.palette.primary.main, + '&:hover': { + color: theme.palette.getContrastText(theme.palette.primary.main), + }, + }, + '& .asyncapi__enum': { + color: theme.palette.secondary.main, + }, + '& .asyncapi__toggle-arrow:before': { + content: '">"', + 'font-family': 'inherit', + }, + '& .asyncapi__anchor-icon:before': { + content: '"🔗"', + 'font-family': 'inherit', + }, + '& .asyncapi__info, .asyncapi__channel, .asyncapi__channels > div, .asyncapi__schema, .asyncapi__message, .asyncapi__server, .asyncapi__servers > div, .asyncapi__messages > div, .asyncapi__schemas > div': { + 'background-color': 'inherit', + }, + '& .asyncapi__channel-parameters-header, .asyncapi__channel-operations-header': { + 'background-color': 'inherit', + color: theme.palette.text.primary, + }, + '& .asyncapi__additional-properties-notice': { + color: theme.palette.text.hint, + }, + '& .asyncapi__code, .asyncapi__code-pre': { + background: theme.palette.background.default, + }, + '& .asyncapi__schema-example-header-title': { + color: theme.palette.text.secondary, + }, + '& .asyncapi__message-headers-header, .asyncapi__message-payload-header, .asyncapi__server-variables-header, .asyncapi__server-security-header': { + 'background-color': 'inherit', + color: theme.palette.text.secondary, + }, + '& .asyncapi__table-header': { + background: theme.palette.background.default, + }, + '& .asyncapi__table-body': { + color: theme.palette.text.primary, + }, + '& .asyncapi__server-security-flow': { + background: theme.palette.background.default, + border: 'none', + }, + '& .asyncapi__server-security-flows-list a': { + color: theme.palette.primary.main, + }, + '& .asyncapi__table-row--nested': { + color: theme.palette.text.secondary, + }, + }, +})); export const AsyncApiDefinitionWidget: FC<{ definition: any; }> = ({ definition }) => { - return ; + const classes = useStyles(); + + return ( +
+ +
+ ); }; diff --git a/plugins/api-docs/src/components/AsyncApiDefinitionWidget/style.css b/plugins/api-docs/src/components/AsyncApiDefinitionWidget/style.css deleted file mode 100644 index 0237c24d52..0000000000 --- a/plugins/api-docs/src/components/AsyncApiDefinitionWidget/style.css +++ /dev/null @@ -1,1273 +0,0 @@ -/* - * Copyright (c) 2018-2019 SAP SE or an SAP affiliate company. All rights reserved. - * - * 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. - */ - -.asyncapi { - /*font-family: '72';*/ - font-size: 14px; - line-height: 20px; - font-weight: 400; - -webkit-font-smoothing: antialiased; - font-smoothing: antialiased; - /*background: #f3f4f5;*/ -} - -.asyncapi__toggle { - cursor: pointer; -} -.asyncapi__toggle > .asyncapi__toggle-body { - display: none; -} - -.asyncapi__toggle--expanded { - cursor: default; -} -.asyncapi__toggle--expanded > .asyncapi__toggle-body { - display: block; -} - -.asyncapi__toggle--no-children { -} -.asyncapi__toggle--no-children > .asyncapi__toggle-header { - cursor: default; -} - -.asyncapi__toggle-header { - position: relative; - display: flex; - flex-flow: row wrap; - align-items: center; - justify-content: center; - cursor: pointer; -} - -.asyncapi__toggle-header-content { - flex-grow: 1; - padding: 12px; -} -.asyncapi__toggle-header-content > h1, -.asyncapi__toggle-header-content > h2, -.asyncapi__toggle-header-content > h3, -.asyncapi__toggle-header-content > h4 { - margin: 0; - padding: 0; - display: flex; -} - -.asyncapi__toggle-button { - border: none; - height: 100%; - cursor: pointer; -} - -.asyncapi__toggle-arrow { - display: inline-block; - position: relative; - transform-origin: 50% 50%; - transition: 0.35s ease; - cursor: pointer; -} -.asyncapi__toggle-arrow:before { - content: '>'; - /*font-family: 'SAP-icons';*/ - font-size: 14px; -} -.asyncapi__toggle-arrow--expanded { - transform: rotate(-90deg); -} - -.asyncapi__components { -} - -.asyncapi__anchor { -} -.asyncapi__anchor:hover > .asyncapi__anchor-content { - text-decoration: underline; -} - -.asyncapi__anchor-content { - display: inline-block; -} - -.asyncapi__anchor-icon { - display: inline-block; - margin-left: 6px; -} -.asyncapi__anchor-icon:before { - content: '🔗'; - /*font-family: 'SAP-icons';*/ -} - -.asyncapi__markdown { -} -.asyncapi__markdown > div > ul { - margin: 0; - padding-left: 16px; -} -.asyncapi__markdown > div > ul { - margin: 0; - padding-left: 16px; -} -.asyncapi__markdown > div > p { - margin: 0; -} -.asyncapi__markdown > div > p > code { - display: inline-block; - font-weight: bold; - font-size: 10px; - line-height: 14px; - border-radius: 3px; - padding: 0px 5px; - text-align: center; - /*background: #e2eaf2;*/ - color: #18873d; -} - -.asyncapi__table { - margin: 0 0 20px 0; - width: 100%; - border-spacing: 0; - font-size: 13px; -} - -.asyncapi__table--nested { - margin: 10px 10px 10px auto; - width: calc(100% - 45px); - border-spacing: 0; - font-size: 13px; - border-radius: 5px; - border: solid 1px #d4d4d4; - /*background-color: #f9fafa;*/ -} - -.asyncapi__table-header { - width: 100%; - color: #939698; - /*background: #f9fafa;*/ - text-transform: uppercase; -} - -.asyncapi__table-header--nested { - color: #939698; - border-bottom: solid 1px #d4d4d4; - font-weight: bold; - text-align: left; - padding: 6px 0; - font-size: 12px; -} - -.asyncapi__table-header-title { - line-height: 30px; -} - -.asyncapi__table-header-title--nested { - color: #939698; -} -.asyncapi__table-header-title--nested > td { - border-bottom: solid 1px #d4d4d4; - padding: 8px 20px; - font-size: 12px; - color: #818487; -} - -.asyncapi__table-header-columns { - font-weight: lighter; - font-size: 11px; -} - -.asyncapi__table-header-columns--nested { - color: #939698; -} - -.asyncapi__table-header-column { - padding: 12px; - text-align: left; -} - -.asyncapi__table-header-column--nested { - width: 20%; - padding: 8px 20px; - font-size: 12px; - border-bottom: solid 1px #d4d4d4; -} - -.asyncapi__table-body { - color: #000; -} - -.asyncapi__table-body--nested { - color: #000; -} - -.asyncapi__table-row { -} - -.asyncapi__table-row--nested { - color: #333; - border-bottom: solid 1px #d4d4d4; -} -.asyncapi__table-row--nested:last-child > td { - border-bottom: none; -} - -.asyncapi__table-row-accordion { - display: none; -} - -.asyncapi__table-row-accordion--open { - display: table-row; -} - -.asyncapi__table-cell { - padding: 12px; - vertical-align: top; - border-bottom: 1px solid #efeff0; -} -.asyncapi__table-cell > p { - margin-top: 0; -} - -.asyncapi__table-cell--nested { - padding: 8px 20px; - vertical-align: top; - font-size: 13px; - border-bottom: solid 1px #d4d4d4; -} - -.asyncapi__tree-space { - display: inline-block; - width: 20px; -} - -.asyncapi__tree-leaf { - display: inline-block; - position: relative; - width: 25px; -} - -.asyncapi__tree-leaf:before { - content: ''; - position: absolute; - top: -15px; - width: 13px; - height: 10px; - border-left: #aaa 2px solid; - border-bottom: #aaa 2px solid; - border-radius: 0 0 0 70%; -} - -.asyncapi__badge { - display: inline-block; - font-weight: bold; - font-size: 11px; - line-height: 18px; - border-radius: 3px; - padding: 0px 5px; - text-align: center; - text-transform: uppercase; - /*background: #e2eaf2;*/ -} - -.asyncapi__badge--publish { - color: #18873d; -} - -.asyncapi__badge--subscribe { - color: #107ee3; -} - -.asyncapi__badge--deprecated { - margin-left: 10px; - color: #f59702; -} - -.asyncapi__badge--required { - font-size: 9px; - line-height: 14px; - color: #f59702; - border-radius: 3px; - margin-left: 10px; -} - -.asyncapi__badge--generated { - font-size: 9px; - line-height: 14px; - color: #18873d; - border-radius: 3px; - margin-left: 10px; -} - -.asyncapi__tag { - display: inline-block; - mix-blend-mode: multiply; - border-radius: 4px; - /*background-color: #e2eaf2;*/ - font-size: 11px; - font-family: 72; - font-weight: 300; - text-transform: uppercase; - font-weight: normal; - font-style: normal; - font-stretch: normal; - line-height: normal; - letter-spacing: normal; - color: #73787d; - padding: 3px 8px; - margin: 0 5px 0 0; -} - -.asyncapi__code { - border: solid 1px rgba(137, 145, 154, 0.675); - border-radius: 5px; - /*background: #fff;*/ -} - -.asyncapi__code-header { - padding: 12px 20px; - border-bottom: 1px solid rgba(137, 145, 154, 0.675); -} - -.asyncapi__code-header > h4 { - margin: 0; - color: #32363a; - font-size: 13px; -} - -.asyncapi__code-pre { - margin: 0; - font-size: 13px; - padding: 12px; - /*background: #fafafa;*/ - border-bottom-right-radius: 5px; - border-bottom-left-radius: 5px; -} - -.asyncapi__code-body { - font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', - monospace; - margin: 0; - font-size: 12px; -} - -.asyncapi__info { - /*background: #fff;*/ - border-radius: 5px; - padding: 16px; - box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.16); -} - -.asyncapi__info-header-main { - display: flex; - flex-flow: row wrap; - align-items: center; - justify-content: center; -} -.asyncapi__info-header-main > h1 { - flex-grow: 1; - margin-top: 10px; - margin-bottom: 10px; -} - -.asyncapi__collapse-button { - border-radius: 0.25rem; - border: 1px solid #0071d4; - display: inline-block; - color: #0b74de; - font-weight: 700; - transition: all 0.125s ease-in; - padding: 10px 12px; - font-size: 14px; - cursor: pointer; -} -.asyncapi__collapse-button:hover { - background-color: #085caf; - color: #fff; -} -.asyncapi__collapse-button:focus { - outline: none; -} - -.asyncapi__info-header-version { - display: inline-block; - margin-left: 6px; -} - -.asyncapi__info-description { -} - -.asyncapi__info-list { - margin: 0 0 20px 0; - padding: 0; - list-style-type: none; -} -.asyncapi__info-list > li { - border-radius: 0.25rem; - border: 1px solid #0071d4; - margin: 6px 6px 0 0; - display: inline-block; - color: #0b74de; - font-weight: 500; - transition: all 0.125s ease-in; -} -.asyncapi__info-list > li:hover { - background-color: #085caf; -} -.asyncapi__info-list > li a { - padding: 3px 12px; - display: inline-block; - text-decoration: none; - color: #0b74de; - transition: all 0.125s ease-in; -} -.asyncapi__info-list > li:hover, -.asyncapi__info-list > li:hover a { - color: #fff; -} -.asyncapi__info-list .asyncapi__anchor:hover > .asyncapi__anchor-content { - text-decoration: none; -} - -.asyncapi__messages { -} -.asyncapi__messages > div { - margin-top: 24px; - /*background: #fff;*/ - border-radius: 5px; - padding: 16px; - box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.16); -} - -.asyncapi__messages-toggle .asyncapi__toggle-header-content { - padding: 0; -} -.asyncapi__messages-toggle--expanded > .asyncapi__toggle-header { - padding-bottom: 12px; -} - -.asyncapi__messages-header { -} -.asyncapi__messages-header > h2 { - margin: 0 0 24px 0; -} - -.asyncapi__messages-list { - margin: 0; - padding: 0; - list-style-type: none; -} - -.asyncapi__messages-list-item { - margin-bottom: 16px; -} -.asyncapi__messages-list-item:last-child { - margin-bottom: 0; -} - -.asyncapi__messages-oneOf-list { - margin: 0; - padding: 0; - list-style-type: none; -} - -.asyncapi__messages-oneOf-list-item { -} - -.asyncapi__message { - position: relative; - border-radius: 4px; - border: solid 1px rgba(151, 151, 151, 0.26); - /*background-color: #ffffff;*/ -} -.asyncapi__message:last-child { - margin-bottom: 0; -} - -.asyncapi__message-header { - padding: 12px; -} -.asyncapi__message-header > h3 { - color: #0b74de; - font-size: 14px; -} - -.asyncapi__message-header-title { - font-size: 14px; - margin-right: 10px; -} - -.asyncapi__message-header-summary { - font-size: 14px; - font-weight: 500; -} - -.asyncapi__message-header-deprecated-badge { -} - -.asyncapi__message-summary { -} - -.asyncapi__message-description { - padding: 12px; - font-size: 14px; - border-top: solid 1px rgba(151, 151, 151, 0.26); -} - -.asyncapi__message-headers { -} - -.asyncapi__message-headers-header { - color: #32363a; - /*background-color: #fafafa;*/ - border-top: solid 1px rgba(151, 151, 151, 0.26); -} -.asyncapi__message-headers-header > h4 { - padding: 12px; - margin: 0; -} - -.asyncapi__message-headers-schema { - margin: 0; -} -.asyncapi__message-headers-schema > .asyncapi__schema { - padding: 0; - border: none; -} -.asyncapi__message-headers-schema > .asyncapi__schema:before { - content: ''; - position: relative; - border: none; -} - -.asyncapi__message-payload-oneOf { -} - -.asyncapi__message-payload-toggle > .asyncapi__message-payload-header { - padding: 12px; - border: none; -} -.asyncapi__message-payload-toggle .asyncapi__message-payload-header h4 { - padding: 0; -} -.asyncapi__message-payload-toggle .asyncapi__message-payload-header { - border: none; - background-color: inherit; -} - -.asyncapi__message-payload-oneOf-header { - color: #32363a; - /*background-color: #fafafa;*/ - border-top: solid 1px rgba(151, 151, 151, 0.26); -} -.asyncapi__message-payload-oneOf-header > h4 { - padding: 12px; - margin: 0; -} - -.asyncapi__message-payload-oneOf-list { - margin: 0; - padding: 16px; - list-style-type: none; -} - -.asyncapi__message-payload-oneOf-list-item { - margin-bottom: 16px; -} -.asyncapi__message-payload-oneOf-list-item:last-child { - margin-bottom: 0; -} -.asyncapi__message-payload-oneOf-list-item .asyncapi__message-payload { - position: relative; - border-radius: 4px; - border: solid 1px rgba(151, 151, 151, 0.26); - /*background-color: #ffffff;*/ -} -.asyncapi__message-payload-oneOf-list-item - .asyncapi__message-payload:last-child { - margin-bottom: 0; -} - -.asyncapi__message-payload-anyOf { -} - -.asyncapi__message-payload-anyOf-header { - color: #32363a; - /*background-color: #fafafa;*/ - border-top: solid 1px rgba(151, 151, 151, 0.26); -} -.asyncapi__message-payload-anyOf-header > h4 { - padding: 12px; - margin: 0; -} - -.asyncapi__message-payload-anyOf-list { - margin: 0; - padding: 16px; - list-style-type: none; -} - -.asyncapi__message-payload-anyOf-list-item { - margin-bottom: 16px; -} -.asyncapi__message-payload-anyOf-list-item:last-child { - margin-bottom: 0; -} -.asyncapi__message-payload-anyOf-list-item .asyncapi__message-payload { - position: relative; - border-radius: 4px; - border: solid 1px rgba(151, 151, 151, 0.26); - /*background-color: #ffffff;*/ -} -.asyncapi__message-payload-anyOf-list-item - .asyncapi__message-payload:last-child { - margin-bottom: 0; -} - -.asyncapi__message-payload { - margin: 0; -} - -.asyncapi__message-payload-header { - color: #32363a; - /*background-color: #fafafa;*/ - border-top: solid 1px rgba(151, 151, 151, 0.26); -} -.asyncapi__message-payload-header > h4 { - padding: 12px; - margin: 0; -} - -.asyncapi__message-payload-schema { - margin: 0; -} -.asyncapi__message-payload-schema > .asyncapi__schema { - padding: 0; - border: none; -} -.asyncapi__message-payload-schema > .asyncapi__schema:before { - content: ''; - position: relative; - border: none; -} - -.asyncapi__message-tags { - margin: 20px 0; -} - -.asyncapi__message-tags-header { - color: #32363a; -} -.asyncapi__message-tags-header > h4 { - margin: 0 0 8px 0; -} - -.asyncapi__message-tags-list { -} - -.asyncapi__message-tags-list-item { -} - -.asyncapi__schemas { -} -.asyncapi__schemas > div { - margin-top: 24px; - /*background: #fff;*/ - border-radius: 5px; - padding: 16px; - box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.16); -} - -.asyncapi__schemas-header { -} - -.asyncapi__schemas-toggle .asyncapi__toggle-header-content { - padding: 0; -} -.asyncapi__schemas-toggle--expanded .asyncapi__toggle-header { - padding-bottom: 12px; -} - -.asyncapi__schemas-list { - margin: 0; - padding: 0; - list-style-type: none; -} - -.asyncapi__schemas-list-item { - margin-bottom: 16px; -} -.asyncapi__schemas-list-item:last-child { - margin-bottom: 0; -} - -.asyncapi__schema { - position: relative; - border-radius: 4px; - border: solid 1px rgba(151, 151, 151, 0.26); - /*background-color: #ffffff;*/ -} -.asyncapi__schema:last-child { - margin-bottom: 0; -} - -.asyncapi__schema-header { - padding: 12px; -} - -.asyncapi__schema-header-title { - font-size: 14px; -} - -.asyncapi__schema-table { - border-top: solid 1px rgba(151, 151, 151, 0.26); -} -.asyncapi__schema-table > table { - margin: 0; -} - -.asyncapi__schema-example { - padding: 16px; -} - -.asyncapi__schema-example-header { -} - -.asyncapi__schema-example-header-title { -} - -.asyncapi__schema-example-header-generated-badge { - display: inline-block; -} - -.asyncapi__security { - margin-top: 24px; - /*background: #fff;*/ - border-radius: 5px; - padding: 16px; -} - -.asyncapi__security-header { -} -.asyncapi__security-header > h2 { - margin: 0 0 24px 0; -} - -.asyncapi__security-table { - margin: 0; -} - -.asyncapi__servers { -} -.asyncapi__servers > div { - margin-top: 24px; - /*background: #fff;*/ - border-radius: 5px; - padding: 16px; - box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.16); -} - -.asyncapi__servers-toggle .asyncapi__toggle-header-content { - padding: 0; -} -.asyncapi__servers-toggle--expanded .asyncapi__toggle-header { - padding-bottom: 12px; -} - -.asyncapi__servers-header { -} -.asyncapi__servers-header > h2 { - margin: 0 0 24px 0; -} - -.asyncapi__servers-list { - margin: 0; - padding: 0; - list-style-type: none; -} - -.asyncapi__servers-list-item { - margin-bottom: 16px; -} -.asyncapi__servers-list-item:last-child { - margin-bottom: 0; -} - -.asyncapi__server { - position: relative; - border-radius: 4px; - border: solid 1px rgba(151, 151, 151, 0.26); - /*background-color: #ffffff;*/ -} - -.asyncapi__server-header { - padding: 12px; -} - -.asyncapi__server-header-stage { - color: #107ee3; - margin-right: 6px; -} - -.asyncapi__server-header-protocol { - color: #18873d; - margin-right: 6px; -} - -.asyncapi__server-description { - border-top: solid 1px rgba(151, 151, 151, 0.26); - padding: 12px; -} - -.asyncapi__servers-table { - margin-bottom: 0; -} -.asyncapi__servers-table > .asyncapi__table { - margin: 0; -} - -.asyncapi__server-variables { -} - -.asyncapi__server-variables-header { - color: #32363a; - /*background-color: #fafafa;*/ - border-top: solid 1px rgba(151, 151, 151, 0.26); -} -.asyncapi__server-variables-header > h4 { - padding: 12px; - margin: 0; -} - -.asyncapi__server-variables-table { - border-top: solid 1px rgba(151, 151, 151, 0.26); -} -.asyncapi__server-variables-table > table { - margin: 0; -} -.asyncapi__server-variables-table .asyncapi__table-body > tr:last-child td { - border-bottom: none; -} - -.asyncapi__server-variables-table-cell { - padding: 0; - border-bottom: none; -} - -.asyncapi__server-expand-icon { - display: inline-block; - position: relative; - width: 10px; - height: 10px; - margin-right: 10px; - transform-origin: 50% 50%; - transition: 0.5s ease; - cursor: pointer; -} -.asyncapi__server-expand-icon:before { - content: '>'; - /*font-family: 'SAP-icons';*/ - position: absolute; - color: #0071d4; - font-size: 12px; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); -} - -.asyncapi__server-expand-icon--open { - transform: rotate(90deg); -} - -.asyncapi__server-variables-enum-list { - margin: 0 0 0 15px; - padding: 0; -} - -.asyncapi__server-variables-enum-list-item { -} - -.asyncapi__server-security { -} - -.asyncapi__server-security-header { - color: #32363a; - /*background-color: #fafafa;*/ - border-top: solid 1px rgba(151, 151, 151, 0.26); -} -.asyncapi__server-security-header > h4 { - padding: 12px; - margin: 0; -} - -.asyncapi__server-security-table { - border-top: solid 1px rgba(151, 151, 151, 0.26); -} -.asyncapi__server-security-table > table { - margin: 0; -} -.asyncapi__server-security-table .asyncapi__table-body > tr:last-child td { - border-bottom: none; -} - -.asyncapi__server-security-table-cell { - padding: 0; - border-bottom: none; -} - -.asyncapi__server-security-flows-list { - margin: 0; - padding: 0; - list-style-type: none; -} -.asyncapi__server-security-flows-list a { - color: #0b74de; -} - -.asyncapi__server-security-flows-list-item { - margin-top: 12px; -} -.asyncapi__server-security-flows-list-item:first-child { - margin-top: 0; -} - -.asyncapi__server-security-flow { - /*background: #fafafa;*/ - border: 1px solid #dae1e7; - padding: 12px; - border-radius: 5px; -} - -.asyncapi__server-security-flow-list { - margin: 0; - padding: 0; - list-style-type: none; -} - -.asyncapi__server-security-flow-list-item { - padding: 3px 0; -} -.asyncapi__server-security-flow-list-item > span { - margin-left: 12px; -} -.asyncapi__server-security-flow-list-item > a { - margin-left: 12px; -} - -.asyncapi__server-security-flows-table-cell { - border-bottom: solid 1px #d4d4d4; - padding: 12px; -} - -.asyncapi__server-security-oauth2 { - border-bottom: none; -} -.asyncapi__server-security-oauth2 > td { - border-bottom: none; -} - -.asyncapi__server-security-scopes-list { - margin: 0; - padding: 0; - list-style-type: none; - display: inline-block; - margin-left: 6px; -} - -.asyncapi__server-security-scopes-list-item { - display: inline-block; - margin-right: 6px; -} - -.asyncapi__server-security-scope { - display: inline-block; - font-weight: bold; - font-size: 11px; - line-height: 18px; - border-radius: 3px; - padding: 0px 5px; - text-align: center; - text-transform: uppercase; - /*background: #e2eaf2;*/ - color: #18873d; -} - -.asyncapi__channels { -} -.asyncapi__channels > div { - margin-top: 24px; - /*background: #fff;*/ - border-radius: 5px; - padding: 16px; - box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.16); -} - -.asyncapi__channels-toggle .asyncapi__toggle-header-content { - padding: 0; -} -.asyncapi__channels-toggle--expanded .asyncapi__toggle-header { - padding-bottom: 12px; -} - -.asyncapi__channels-header { -} -.asyncapi__channels-header > h2 { - margin: 0 0 24px 0; -} - -.asyncapi__channels-list { - padding: 0; - margin: 0; - list-style-type: none; -} - -.asyncapi__channels-list-item { - margin-bottom: 16px; -} -.asyncapi__channels-list-item:last-child { - margin-bottom: 0; -} - -.asyncapi__channel { - position: relative; - border-radius: 4px; - border: solid 1px rgba(151, 151, 151, 0.26); - /*background-color: #ffffff;*/ -} - -.asyncapi__channel-header { - padding: 12px; -} -.asyncapi__channel-header > h3 { - color: #0b74de; - font-size: 15px; -} - -.asyncapi__channel-header-badges { - margin: 0; - padding: 0; - list-style-type: none; - display: inline-block; -} - -.asyncapi__channel-header-badges > li { - display: inline-block; - margin-right: 6px; -} - -.asyncapi__channel-header-badges-deprecated-badge { - display: inline-block; - margin-right: 6px; -} - -.asyncapi__channel-header-badges-publish-badge { - display: inline-block; - margin-right: 6px; -} - -.asyncapi__channel-header-badges-subscribe-badge { - display: inline-block; - margin-right: 6px; -} - -.asyncapi__channel-header-title { - font-size: 14px; -} - -.asyncapi__channel-operations { -} -.asyncapi__channel-operations .asyncapi__message { - border: none; -} - -.asyncapi__channel-operations-header { - color: #32363a; - /*background-color: #fafafa;*/ - border-top: solid 1px rgba(151, 151, 151, 0.26); -} -.asyncapi__channel-operations-header > h4 { - padding: 12px; - margin: 0; -} - -.asyncapi__channel-operations-header-oneOf { - border-top: solid 1px rgba(151, 151, 151, 0.26); -} - -.asyncapi__channel-operations-list { - margin: 0; - padding: 0; - list-style-type: none; -} -.asyncapi__channel-operations-list .asyncapi__messages { - padding: 16px; -} -.asyncapi__channel-operations-list .asyncapi__messages-list { - margin: 0; - padding: 0; - list-style-type: none; -} -.asyncapi__channel-operations-list .asyncapi__messages-list-item { - margin-bottom: 16px; -} -.asyncapi__channel-operations-list .asyncapi__messages-list-item:last-child { - margin-bottom: 0; -} -.asyncapi__channel-operations-list - .asyncapi__messages-list-item - .asyncapi__message { - position: relative; - border-radius: 4px; - border: solid 1px rgba(151, 151, 151, 0.26); - /*background-color: #ffffff;*/ -} - -.asyncapi__channel-operations-list-item { -} - -.asyncapi__channel-operation-oneOf-subscribe-header { - color: #32363a; - /*background-color: #fafafa;*/ - border-top: solid 1px rgba(151, 151, 151, 0.26); - border-bottom: solid 1px rgba(151, 151, 151, 0.26); -} -.asyncapi__channel-operation-oneOf-subscribe-header > h4 { - padding: 12px; - margin: 0; -} -.asyncapi__channel-operation-oneOf-subscribe-header > h4 > .asyncapi__badge { - margin-right: 6px; -} - -.asyncapi__channel-operation-oneOf-publish-header { - color: #32363a; - /*background-color: #fafafa;*/ - border-top: solid 1px rgba(151, 151, 151, 0.26); - border-bottom: solid 1px rgba(151, 151, 151, 0.26); -} -.asyncapi__channel-operation-oneOf-publish-header > h4 { - padding: 12px; - margin: 0; -} -.asyncapi__channel-operation-oneOf-publish-header > h4 > .asyncapi__badge { - margin-right: 6px; -} - -.asyncapi__channel-operation { -} - -.asyncapi__channel-parameters { -} - -.asyncapi__channel-parameters-header { - color: #32363a; - /*background-color: #fafafa;*/ - border-top: solid 1px rgba(151, 151, 151, 0.26); -} -.asyncapi__channel-parameters-header > h4 { - padding: 12px; - margin: 0; -} - -.asyncapi__channel-parameters-list { - margin: 0; - padding: 0; - list-style-type: none; -} - -.asyncapi__channel-parameters-list-item { -} - -.asyncapi__channel-parameter { - position: relative; -} - -.asyncapi__channel-parameter-header { -} - -.asyncapi__channel-parameter-header-description { -} - -.asyncapi__channel-parameter-schema { -} -.asyncapi__channel-parameter-schema > .asyncapi__schema { - padding: 0; - border: none; -} -.asyncapi__channel-parameter-schema > .asyncapi__schema:before { - content: ''; - position: relative; - border: none; -} - -.asyncapi__error { - /*background-color: #ffffff;*/ - border-left: 6px solid #f44336; - border-radius: 4px; - color: #32363a; - font-family: '72'; - font-size: 13px; - margin-bottom: 24px; - box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.16); -} - -.asyncapi__error-header { - padding: 16px; - box-shadow: inset 0 -1px 0 0 rgba(115, 121, 128, 0.15); - font-weight: bold; - position: relative; - display: flex; - flex-flow: row wrap; - align-items: center; - justify-content: center; -} -.asyncapi__error-header h2 { - flex-grow: 1; - padding: 0; - margin: 0; -} -.asyncapi__error-header > .asyncapi__toggle-header-content { - padding: 0; -} - -.asyncapi__error-body { - font-weight: normal; - position: relative; -} - -.asyncapi__error-body-pre { - margin: 0; - padding: 12px; - background-color: #263238; - white-space: pre-wrap; - word-break: break-word; - color: #fff; - border-bottom-right-radius: 4px; - font-size: 11px; -} - -.asyncapi__error-body-code { - font-family: monospace; - display: block; -} - -.asyncapi__enum { - line-height: 2; - border-style: solid; - border-color: #dae1e7; - border-radius: 0.25rem; - border-width: 1px; - margin-left: 0.25rem; - padding: 0 0.5rem; - color: #f6993f; -} diff --git a/yarn.lock b/yarn.lock index dae727c92f..5f2b4bb2a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,15 @@ # yarn lockfile v1 +"@apidevtools/json-schema-ref-parser@9.0.6", "@apidevtools/json-schema-ref-parser@^9.0.6": + version "9.0.6" + resolved "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz#5d9000a3ac1fd25404da886da6b266adcd99cf1c" + integrity sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg== + dependencies: + "@jsdevtools/ono" "^7.1.3" + call-me-maybe "^1.0.1" + js-yaml "^3.13.1" + "@apollo/protobufjs@^1.0.3": version "1.0.4" resolved "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.0.4.tgz#cf01747a55359066341f31b5ce8db17df44244e0" @@ -40,18 +49,45 @@ resolved "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.1.tgz#1403ac5de10d8ca689fc1f65844c27179ae1d44f" integrity sha512-UQ9BequOTIavs0pTHLMwQwKQF8tTV1oezY/H2O9chA+JNPFZSua55xpU5dPSjAU9/jLJ1VwU+HJuTVN8u7S6Fg== -"@asyncapi/parser@0.16.2": - version "0.16.2" - resolved "https://registry.npmjs.org/@asyncapi/parser/-/parser-0.16.2.tgz#6e0806d0a751e999499212e52926a6dc6ec251fe" - integrity sha512-dagGD6VFAgl/zLQuoWAfi48i74wv32naV6WcvazcpvEXshW3Q//OrUyRFa6EbY0lmIMXeasc7HKm40AUJ920ug== +"@asyncapi/avro-schema-parser@^0.1.2": + version "0.1.2" + resolved "https://registry.npmjs.org/@asyncapi/avro-schema-parser/-/avro-schema-parser-0.1.2.tgz#f6c340ccaa24bc36399d3a0f1a6e02790a948453" + integrity sha512-K4GlakiE42J9AWwAu3BWn3Qbf+N8C6vE4eEm5LEx7HqAhHG+FA0U7/3vvXoj31rnS/8sgPQpc2msLWQlmCtZyw== + +"@asyncapi/openapi-schema-parser@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@asyncapi/openapi-schema-parser/-/openapi-schema-parser-2.0.0.tgz#80e2f38e92b6635dde19aae07b92e3caa0effc58" + integrity sha512-XfDp3EIs6ptar3jARQZzi3ObmS44l6Qozc5GJmZJUQ6mHLTTqUGJ0nxcrXAW88vosjilgJVaQ63oGolA6smSHQ== dependencies: + "@openapi-contrib/openapi-schema-to-json-schema" "^3.0.0" + +"@asyncapi/parser@^1.0.0-rc.1": + version "1.0.0-rc.2" + resolved "https://registry.npmjs.org/@asyncapi/parser/-/parser-1.0.0-rc.2.tgz#87d2e83c1d390e21d53f868e6209cbc584d35449" + integrity sha512-nZYJLnMiq48q7YHa+AI9ZaDc5UqoqKR7MDhTiIKsIJj6X5fF6hpwBrTP0bQn76Pc1oGBXRB69PcD/Y+Et1qFyw== + dependencies: + "@apidevtools/json-schema-ref-parser" "^9.0.6" + "@asyncapi/specs" "^2.7.4" + "@fmvilas/pseudo-yaml-ast" "^0.3.1" ajv "^6.10.1" - asyncapi "^2.6.1" js-yaml "^3.13.1" - json-schema-ref-parser "^7.1.0" + json-to-ast "^2.1.0" node-fetch "^2.6.0" tiny-merge-patch "^0.1.2" +"@asyncapi/raml-dt-schema-parser@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@asyncapi/raml-dt-schema-parser/-/raml-dt-schema-parser-2.0.0.tgz#6e9eff89032aa7b82a963d8e72e320e493fc3835" + integrity sha512-ve41LIvbqDU8s0ZeDrWy+dyQZ/XSb7vKiJUHNgy8xcgxsz4YuttbEJbyGJvarw3qf2y+0y6cA1KUFiXoE+AIUg== + dependencies: + js-yaml "^3.13.1" + ramldt2jsonschema "^1.1.0" + +"@asyncapi/specs@^2.7.4": + version "2.7.4" + resolved "https://registry.npmjs.org/@asyncapi/specs/-/specs-2.7.4.tgz#5db4390b68aeb40d70c1723d8f46b0a091110afc" + integrity sha512-3Np9ip1Qn5AgnxTrbI0CMW2F/WUorpiAKz+GUfEy4a6GPk0eTSI6CIcbx2/jej5P91nhEyny9+D3oIzn2MreTA== + "@babel/code-frame@7.0.0": version "7.0.0" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" @@ -1758,6 +1794,13 @@ unique-filename "^1.1.1" which "^1.3.1" +"@fmvilas/pseudo-yaml-ast@^0.3.1": + version "0.3.1" + resolved "https://registry.npmjs.org/@fmvilas/pseudo-yaml-ast/-/pseudo-yaml-ast-0.3.1.tgz#66c5df2c2d76ba8571dc5bd98fda4d7dce6121de" + integrity sha512-8OAB74W2a9M3k9bjYD8AjVXkX+qO8c0SqNT5HlgOqx7AxSw8xdksEcZp7gFtfi+4njSxT6+76ZR+1ubjAwQHOg== + dependencies: + yaml-ast-parser "0.0.43" + "@graphql-tools/delegate@6.0.15": version "6.0.15" resolved "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-6.0.15.tgz#9e060bfc31fe7735bd5b2b401e98dea3fa5d3b25" @@ -2111,6 +2154,11 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" +"@jsdevtools/ono@^7.1.3": + version "7.1.3" + resolved "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" + integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== + "@kyleshockey/object-assign-deep@^0.4.2": version "0.4.2" resolved "https://registry.npmjs.org/@kyleshockey/object-assign-deep/-/object-assign-deep-0.4.2.tgz#84900f0eefc372798f4751b5262830b8208922ec" @@ -2123,14 +2171,18 @@ dependencies: stream "^0.0.2" -"@kyma-project/asyncapi-react@^0.6.1": - version "0.6.2" - resolved "https://registry.npmjs.org/@kyma-project/asyncapi-react/-/asyncapi-react-0.6.2.tgz#99539f630b511d4f7298805dfaf545956192141c" - integrity sha512-yGgYv0XyxI5PxNv0GzTqABsXKwFETlZwBWDqwfUtwirTOTIFyLU69lHbMtM9gn0hPFciP09uHmKt8+8gOpMKvA== +"@kyma-project/asyncapi-react@^0.11.0": + version "0.11.0" + resolved "https://registry.npmjs.org/@kyma-project/asyncapi-react/-/asyncapi-react-0.11.0.tgz#888fbe9204f120fc04fd8184664e8025d8736c92" + integrity sha512-CJu9vJ4tTjk3oRjYvZxE4CRLE/QvFsyvCnecZSXWKNiytLK/JuQxkosyFvKpCKsB+uGsPFn0sfcLPZ5jVSEFYw== dependencies: - "@asyncapi/parser" "0.16.2" + "@asyncapi/avro-schema-parser" "^0.1.2" + "@asyncapi/openapi-schema-parser" "^2.0.0" + "@asyncapi/parser" "^1.0.0-rc.1" + "@asyncapi/raml-dt-schema-parser" "^2.0.0" constate "^1.2.0" dompurify "^1.0.11" + json-schema-ref-parser "^9.0.6" markdown-it "^9.1.0" merge "^1.2.1" openapi-sampler "^1.0.0-beta.15" @@ -3148,6 +3200,14 @@ resolved "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz#db9cc719191a62e7d9200f6e7bab21c5b848adca" integrity sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q== +"@openapi-contrib/openapi-schema-to-json-schema@^3.0.0": + version "3.0.3" + resolved "https://registry.npmjs.org/@openapi-contrib/openapi-schema-to-json-schema/-/openapi-schema-to-json-schema-3.0.3.tgz#c626eab186938f2751ee54ec68b345133bc0065c" + integrity sha512-/WX/Jos8n7CxvtWPmhlKl9qCAAW0I+VR+V4yXfQxCmB8wmjiz6lPLTGjNk5zD15qi2MGv58++hQLLdow89KdkA== + dependencies: + fast-deep-equal "^3.1.3" + lodash.clonedeep "^4.5.0" + "@panva/asn1.js@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6" @@ -5605,6 +5665,26 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== +ajv@6.5.2: + version "6.5.2" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz#678495f9b82f7cca6be248dd92f59bff5e1f4360" + integrity sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.1" + +ajv@^5.0.0: + version "5.5.2" + resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5, ajv@^6.7.0: version "6.12.2" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" @@ -6199,11 +6279,6 @@ async@^3.2.0: resolved "https://registry.npmjs.org/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== -asyncapi@^2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/asyncapi/-/asyncapi-2.6.1.tgz#5e35124abfd416f050a239bf72cb8eef7ebeda66" - integrity sha512-ROszLQMYzyp/CzPyLhuT/9NpJXxI7wrjv6yW8JpA/XVMEWCqyVXr9jajJhs9d/863+ispS+ptGhg1PC17AnIzQ== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -7713,6 +7788,11 @@ coa@^2.0.2: chalk "^2.4.1" q "^1.1.2" +code-error-fragment@0.0.230: + version "0.0.230" + resolved "https://registry.npmjs.org/code-error-fragment/-/code-error-fragment-0.0.230.tgz#d736d75c832445342eca1d1fedbf17d9618b14d7" + integrity sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw== + code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" @@ -10523,6 +10603,11 @@ fast-deep-equal@2.0.1, fast-deep-equal@^2.0.1: resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +fast-deep-equal@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= + fast-deep-equal@^3.0.0, fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -11704,6 +11789,11 @@ graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1. resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + graphiql@^1.0.0-alpha.10: version "1.0.3" resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.0.3.tgz#f6b5d5c417d8f1a28786d3228a69883426ba74ad" @@ -14089,14 +14179,24 @@ json-schema-merge-allof@^0.6.0: json-schema-compare "^0.2.2" lodash "^4.17.4" -json-schema-ref-parser@^7.1.0: - version "7.1.4" - resolved "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-7.1.4.tgz#abb3f2613911e9060dc2268477b40591753facf0" - integrity sha512-AD7bvav0vak1/63w3jH8F7eHId/4E4EPdMAEZhGxtjktteUv9dnNB/cJy6nVnMyoTPBJnLwFK6tiQPSTeleCtQ== +json-schema-migrate@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/json-schema-migrate/-/json-schema-migrate-0.2.0.tgz#ba47a5b0072fc72396460e1bd60b44d52178bbc6" + integrity sha1-ukelsAcvxyOWRg4b1gtE1SF4u8Y= dependencies: - call-me-maybe "^1.0.1" - js-yaml "^3.13.1" - ono "^6.0.0" + ajv "^5.0.0" + +json-schema-ref-parser@^9.0.6: + version "9.0.6" + resolved "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz#fc89a5e6b853f2abe8c0af30d3874196526adb60" + integrity sha512-z0JGv7rRD3CnJbZY/qCpscyArdtLJhr/wRBmFUdoZ8xMjsFyNdILSprG2degqRLjBjyhZHAEBpGOxniO9rKTxA== + dependencies: + "@apidevtools/json-schema-ref-parser" "9.0.6" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= json-schema-traverse@^0.4.1: version "0.4.1" @@ -14123,6 +14223,14 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= +json-to-ast@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/json-to-ast/-/json-to-ast-2.1.0.tgz#041a9fcd03c0845036acb670d29f425cea4faaf9" + integrity sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ== + dependencies: + code-error-fragment "0.0.230" + grapheme-splitter "^1.0.4" + json3@^3.3.2: version "3.3.3" resolved "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" @@ -16473,11 +16581,6 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -ono@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/ono/-/ono-6.0.1.tgz#1bc14ffb8af1e5db3f7397f75b88e4a2d64bbd71" - integrity sha512-5rdYW/106kHqLeG22GE2MHKq+FlsxMERZev9DCzQX1zwkxnFwBivSn5i17a5O/rDmOJOdf4Wyt80UZljzx9+DA== - open@^6.3.0: version "6.4.0" resolved "https://registry.npmjs.org/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" @@ -18325,6 +18428,16 @@ ramda@^0.25.0: resolved "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" integrity sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ== +ramldt2jsonschema@^1.1.0: + version "1.2.3" + resolved "https://registry.npmjs.org/ramldt2jsonschema/-/ramldt2jsonschema-1.2.3.tgz#8d45a7f306a1169a3bde91cab725d1d6d0ff7d55" + integrity sha512-+wLDAV2NNv9NkfEUOYStaDu/6RYgYXeC1zLtXE+dMU/jDfjpN4iJnBGycDwFTFaIQGosOQhxph7fEX6Mpwxdug== + dependencies: + commander "^5.0.0" + js-yaml "^3.14.0" + json-schema-migrate "^0.2.0" + webapi-parser "^0.5.0" + randomatic@^3.0.0: version "3.1.1" resolved "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" @@ -22236,7 +22349,7 @@ update-notifier@^4.0.0: semver-diff "^3.1.1" xdg-basedir "^4.0.0" -uri-js@^4.2.2: +uri-js@^4.2.1, uri-js@^4.2.2: version "4.2.2" resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== @@ -22577,6 +22690,13 @@ wcwidth@^1.0.0, wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +webapi-parser@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/webapi-parser/-/webapi-parser-0.5.0.tgz#2632185c5d8f3e6addb2520857af89ea9844dc14" + integrity sha512-fPt6XuMqLSvBz8exwX4QE1UT+pROLHa00EMDCdO0ybICduwQ1V4f7AWX4pNOpCp+x+0FjczEsOxtQU0d8L3QKw== + dependencies: + ajv "6.5.2" + webidl-conversions@^3.0.0, webidl-conversions@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -23166,6 +23286,11 @@ yallist@^4.0.0: resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml-ast-parser@0.0.43: + version "0.0.43" + resolved "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" + integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== + yaml@*, yaml@^1.10.0, yaml@^1.7.2, yaml@^1.9.2: version "1.10.0" resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" From 42a885d07c747947ea6c62f335d51a855fe9b087 Mon Sep 17 00:00:00 2001 From: msamad Date: Mon, 17 Aug 2020 18:01:36 +1200 Subject: [PATCH 040/656] Add ingestor for private bitbucket cloud repositories (#1938) * Add ingestor for private bitbucket cloud repositories * Fix test to compare URL string value instead of object * Fix tests for Github and Gitlab ingestor to compare URL string value instead of object * Fix bitbucket password env variable for clarity --- .../src/ingestion/LocationReaders.ts | 2 + .../BitbucketApiReaderProcessor.test.ts | 102 ++++++++++++++ .../processors/BitbucketApiReaderProcessor.ts | 124 ++++++++++++++++++ .../GithubApiReaderProcessor.test.ts | 8 +- .../GitlabApiReaderProcessor.test.ts | 14 +- 5 files changed, 245 insertions(+), 5 deletions(-) create mode 100644 plugins/catalog-backend/src/ingestion/processors/BitbucketApiReaderProcessor.test.ts create mode 100644 plugins/catalog-backend/src/ingestion/processors/BitbucketApiReaderProcessor.ts diff --git a/plugins/catalog-backend/src/ingestion/LocationReaders.ts b/plugins/catalog-backend/src/ingestion/LocationReaders.ts index 7e91af7c59..05f93815b8 100644 --- a/plugins/catalog-backend/src/ingestion/LocationReaders.ts +++ b/plugins/catalog-backend/src/ingestion/LocationReaders.ts @@ -30,6 +30,7 @@ import { GithubReaderProcessor } from './processors/GithubReaderProcessor'; import { GithubApiReaderProcessor } from './processors/GithubApiReaderProcessor'; import { GitlabApiReaderProcessor } from './processors/GitlabApiReaderProcessor'; import { GitlabReaderProcessor } from './processors/GitlabReaderProcessor'; +import { BitbucketApiReaderProcessor } from './processors/BitbucketApiReaderProcessor'; import { UrlReaderProcessor } from './processors/UrlReaderProcessor'; import { LocationRefProcessor } from './processors/LocationEntityProcessor'; import { StaticLocationProcessor } from './processors/StaticLocationProcessor'; @@ -77,6 +78,7 @@ export class LocationReaders implements LocationReader { new GithubApiReaderProcessor(), new GitlabApiReaderProcessor(), new GitlabReaderProcessor(), + new BitbucketApiReaderProcessor(), new UrlReaderProcessor(), new YamlProcessor(), new EntityPolicyProcessor(entityPolicy), diff --git a/plugins/catalog-backend/src/ingestion/processors/BitbucketApiReaderProcessor.test.ts b/plugins/catalog-backend/src/ingestion/processors/BitbucketApiReaderProcessor.test.ts new file mode 100644 index 0000000000..fa4731a40e --- /dev/null +++ b/plugins/catalog-backend/src/ingestion/processors/BitbucketApiReaderProcessor.test.ts @@ -0,0 +1,102 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { BitbucketApiReaderProcessor } from './BitbucketApiReaderProcessor'; + +describe('BitbucketApiReaderProcessor', () => { + it('should build raw api', () => { + const processor = new BitbucketApiReaderProcessor(); + + const tests = [ + { + target: + 'https://bitbucket.org/org-name/repo-name/src/master/templates/my-template.yaml', + url: new URL( + 'https://api.bitbucket.org/2.0/repositories/org-name/repo-name/src/master/templates/my-template.yaml', + ), + err: undefined, + }, + { + target: 'https://api.com/a/b/blob/master/path/to/c.yaml', + url: null, + err: + 'Incorrect url: https://api.com/a/b/blob/master/path/to/c.yaml, Error: Wrong Bitbucket URL or Invalid file path', + }, + { + target: 'com/a/b/blob/master/path/to/c.yaml', + url: null, + err: + 'Incorrect url: com/a/b/blob/master/path/to/c.yaml, TypeError: Invalid URL: com/a/b/blob/master/path/to/c.yaml', + }, + ]; + + for (const test of tests) { + if (test.err) { + expect(() => processor.buildRawUrl(test.target)).toThrowError(test.err); + } else if (test.url) { + expect(processor.buildRawUrl(test.target).toString()).toEqual( + test.url.toString(), + ); + } else { + throw new Error( + 'This should not have happened. Either err or url should have matched.', + ); + } + } + }); + + it('should return request options', () => { + const tests = [ + { + username: '', + password: '', + expect: { + headers: {}, + }, + }, + { + username: 'only-user-provided', + password: '', + expect: { + headers: {}, + }, + }, + { + username: '', + password: 'only-password-provided', + expect: { + headers: {}, + }, + }, + { + username: 'some-user', + password: 'my-secret', + expect: { + headers: { + Authorization: 'Basic c29tZS11c2VyOm15LXNlY3JldA==', + }, + }, + }, + ]; + + for (const test of tests) { + process.env.BITBUCKET_USERNAME = test.username; + process.env.BITBUCKET_APP_PASSWORD = test.password; + const processor = new BitbucketApiReaderProcessor(); + expect(processor.getRequestOptions()).toEqual(test.expect); + } + }); +}); diff --git a/plugins/catalog-backend/src/ingestion/processors/BitbucketApiReaderProcessor.ts b/plugins/catalog-backend/src/ingestion/processors/BitbucketApiReaderProcessor.ts new file mode 100644 index 0000000000..8162e505d6 --- /dev/null +++ b/plugins/catalog-backend/src/ingestion/processors/BitbucketApiReaderProcessor.ts @@ -0,0 +1,124 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { LocationSpec } from '@backstage/catalog-model'; +import fetch, { RequestInit, HeadersInit } from 'node-fetch'; +import * as result from './results'; +import { LocationProcessor, LocationProcessorEmit } from './types'; + +export class BitbucketApiReaderProcessor implements LocationProcessor { + private username: string = process.env.BITBUCKET_USERNAME || ''; + private password: string = process.env.BITBUCKET_APP_PASSWORD || ''; + + getRequestOptions(): RequestInit { + const headers: HeadersInit = {}; + + if (this.username !== '' && this.password !== '') { + headers.Authorization = `Basic ${Buffer.from( + `${this.username}:${this.password}`, + 'utf8', + ).toString('base64')}`; + } + + const requestOptions: RequestInit = { + headers, + }; + + return requestOptions; + } + + async readLocation( + location: LocationSpec, + optional: boolean, + emit: LocationProcessorEmit, + ): Promise { + if (location.type !== 'bitbucket/api') { + return false; + } + + try { + const url = this.buildRawUrl(location.target); + + const response = await fetch(url.toString(), this.getRequestOptions()); + + if (response.ok) { + const data = await response.buffer(); + emit(result.data(location, data)); + } else { + const message = `${location.target} could not be read as ${url}, ${response.status} ${response.statusText}`; + if (response.status === 404) { + if (!optional) { + emit(result.notFoundError(location, message)); + } + } else { + emit(result.generalError(location, message)); + } + } + } catch (e) { + const message = `Unable to read ${location.type} ${location.target}, ${e}`; + emit(result.generalError(location, message)); + } + return true; + } + + // Converts + // from: https://bitbucket.org/orgname/reponame/src/master/file.yaml + // to: https://api.bitbucket.org/2.0/repositories/orgname/reponame/src/master/file.yaml + + buildRawUrl(target: string): URL { + try { + const url = new URL(target); + + const [ + empty, + userOrOrg, + repoName, + srcKeyword, + ref, + ...restOfPath + ] = url.pathname.split('/'); + + if ( + url.hostname !== 'bitbucket.org' || + empty !== '' || + userOrOrg === '' || + repoName === '' || + srcKeyword !== 'src' || + !restOfPath.join('/').match(/\.yaml$/) + ) { + throw new Error('Wrong Bitbucket URL or Invalid file path'); + } + + // transform to api + url.pathname = [ + empty, + '2.0', + 'repositories', + userOrOrg, + repoName, + 'src', + ref, + ...restOfPath, + ].join('/'); + url.hostname = 'api.bitbucket.org'; + url.protocol = 'https'; + + return url; + } catch (e) { + throw new Error(`Incorrect url: ${target}, ${e}`); + } + } +} diff --git a/plugins/catalog-backend/src/ingestion/processors/GithubApiReaderProcessor.test.ts b/plugins/catalog-backend/src/ingestion/processors/GithubApiReaderProcessor.test.ts index 4dd3fd359f..63ddb071c3 100644 --- a/plugins/catalog-backend/src/ingestion/processors/GithubApiReaderProcessor.test.ts +++ b/plugins/catalog-backend/src/ingestion/processors/GithubApiReaderProcessor.test.ts @@ -53,8 +53,14 @@ describe('GithubApiReaderProcessor', () => { for (const test of tests) { if (test.err) { expect(() => processor.buildRawUrl(test.target)).toThrowError(test.err); + } else if (test.url) { + expect(processor.buildRawUrl(test.target).toString()).toEqual( + test.url.toString(), + ); } else { - expect(processor.buildRawUrl(test.target)).toEqual(test.url); + throw new Error( + 'This should not have happened. Either err or url should have matched.', + ); } } }); diff --git a/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.test.ts b/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.test.ts index a429a0e6fb..cd46d97d13 100644 --- a/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.test.ts +++ b/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.test.ts @@ -25,7 +25,7 @@ describe('GitlabApiReaderProcessor', () => { target: 'https://gitlab.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file.yaml', url: new URL( - 'https://gitlab.com/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile.yaml?ref=branch', + 'https://gitlab.com/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile.yaml/raw?ref=branch', ), err: undefined, }, @@ -33,7 +33,7 @@ describe('GitlabApiReaderProcessor', () => { target: 'https://gitlab.example.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file.yaml', url: new URL( - 'https://gitlab.example.com/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile.yaml?ref=branch', + 'https://gitlab.example.com/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile.yaml/raw?ref=branch', ), err: undefined, }, @@ -41,7 +41,7 @@ describe('GitlabApiReaderProcessor', () => { target: 'https://gitlab.com/groupA/teams/teamA/repoA/-/blob/branch/my/path/to/file.yaml', // Repo not in subgroup url: new URL( - 'https://gitlab.example.com/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile.yaml?ref=branch', + 'https://gitlab.com/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile.yaml/raw?ref=branch', ), err: undefined, }, @@ -59,8 +59,14 @@ describe('GitlabApiReaderProcessor', () => { expect(() => processor.buildRawUrl(test.target, 12345)).toThrowError( test.err, ); + } else if (test.url) { + expect(processor.buildRawUrl(test.target, 12345).toString()).toEqual( + test.url.toString(), + ); } else { - expect(processor.buildRawUrl(test.target, 12345)).toEqual(test.url); + throw new Error( + 'This should not have happened. Either err or url should have matched.', + ); } } }); From f24a6c0b5cada39a53ebeb0f4ad4e1e0e01656f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 17 Aug 2020 09:50:41 +0200 Subject: [PATCH 041/656] fix(core): pin material-table to fix e2e CI errors in master This PR https://github.com/mbrn/material-table/pull/2311 broke material-table builds that use webpack. We don't see the problem locally since we have the unaffected version in our lockfiles. However when running the e2e (app generation) flows, there is no lockfile so it resolves to the affected broken versions, breaking master builds at the moment. Pinning to the unaffected version for now. --- packages/core/package.json | 2 +- yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 1fa6804d58..7333e0ce2a 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -40,7 +40,7 @@ "classnames": "^2.2.6", "clsx": "^1.1.0", "lodash": "^4.17.15", - "material-table": "1.68.x", + "material-table": "1.68.0", "prop-types": "^15.7.2", "rc-progress": "^3.0.0", "react": "^16.12.0", diff --git a/yarn.lock b/yarn.lock index 5f2b4bb2a0..78a99cbe27 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15310,7 +15310,7 @@ markdown-toc@^1.2.0: repeat-string "^1.6.1" strip-color "^0.1.0" -material-table@1.68.x: +material-table@1.68.0: version "1.68.0" resolved "https://registry.npmjs.org/material-table/-/material-table-1.68.0.tgz#275c3d9a885c40ae4bc5a7461c00e877f92397b9" integrity sha512-dyJJaVsS3m+i6sn71AvYcVdA1P9X1XiUOM2PekfvEeeMtkdQb66oChGkk77ndYi3Ja6j4DovGVNrgeVLwXLZiw== From 033233d81f3305c6085d9c7506c6584bf590611e Mon Sep 17 00:00:00 2001 From: Raghunandan Balachandran Date: Mon, 17 Aug 2020 10:10:12 +0200 Subject: [PATCH 042/656] Fix auth0 backend provider --- app-config.yaml | 25 ++++-- .../core/src/layout/Sidebar/UserSettings.tsx | 1 - .../src/providers/auth0/provider.ts | 76 ++++++++----------- 3 files changed, 50 insertions(+), 52 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index f578fb3fca..998d092759 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -30,7 +30,7 @@ auth: providers: google: development: - appOrigin: "http://localhost:3000/" + appOrigin: 'http://localhost:3000/' secure: false clientId: $secret: @@ -40,7 +40,7 @@ auth: env: AUTH_GOOGLE_CLIENT_SECRET github: development: - appOrigin: "http://localhost:3000/" + appOrigin: 'http://localhost:3000/' secure: false clientId: $secret: @@ -48,12 +48,12 @@ auth: clientSecret: $secret: env: AUTH_GITHUB_CLIENT_SECRET - enterpriseInstanceUrl: + enterpriseInstanceUrl: $secret: env: AUTH_GITHUB_ENTERPRISE_INSTANCE_URL gitlab: development: - appOrigin: "http://localhost:3000/" + appOrigin: 'http://localhost:3000/' secure: false clientId: $secret: @@ -70,7 +70,7 @@ auth: # issuer: "passport-saml" okta: development: - appOrigin: "http://localhost:3000/" + appOrigin: 'http://localhost:3000/' secure: false clientId: $secret: @@ -83,7 +83,7 @@ auth: env: AUTH_OKTA_AUDIENCE oauth2: development: - appOrigin: "http://localhost:3000/" + appOrigin: 'http://localhost:3000/' secure: false clientId: $secret: @@ -97,3 +97,16 @@ auth: tokenURL: $secret: env: AUTH_OAUTH2_TOKEN_URL + auth0: + development: + appOrigin: 'http://localhost:3000/' + secure: false + clientId: + $secret: + env: AUTH_AUTH0_CLIENT_ID + clientSecret: + $secret: + env: AUTH_AUTH0_CLIENT_SECRET + domain: + $secret: + env: AUTH_AUTH0_DOMAIN diff --git a/packages/core/src/layout/Sidebar/UserSettings.tsx b/packages/core/src/layout/Sidebar/UserSettings.tsx index 272bc46b79..e69d63186d 100644 --- a/packages/core/src/layout/Sidebar/UserSettings.tsx +++ b/packages/core/src/layout/Sidebar/UserSettings.tsx @@ -21,7 +21,6 @@ import { identityApiRef, oauth2ApiRef, oktaAuthApiRef, - auth0AuthApiRef, useApi, configApiRef, } from '@backstage/core-api'; diff --git a/plugins/auth-backend/src/providers/auth0/provider.ts b/plugins/auth-backend/src/providers/auth0/provider.ts index 8eebd5f158..6dfcf3830a 100644 --- a/plugins/auth-backend/src/providers/auth0/provider.ts +++ b/plugins/auth-backend/src/providers/auth0/provider.ts @@ -19,10 +19,6 @@ import passport from 'passport'; import Auth0Strategy, { Auth0StrategyOptionsWithRequest } from './strategy'; import { Logger } from 'winston'; import { TokenIssuer } from '../../identity'; -import { - EnvironmentHandler, - EnvironmentHandlers, -} from '../../lib/EnvironmentHandler'; import { OAuthProvider } from '../../lib/OAuthProvider'; import { executeFetchUserProfileStrategy, @@ -33,21 +29,12 @@ import { } from '../../lib/PassportStrategyHelper'; import { AuthProviderConfig, - EnvironmentProviderConfig, OAuthProviderHandlers, OAuthResponse, PassportDoneCallback, RedirectInfo, } from '../types'; - -interface Auth0ProviderConfig { - clientId: string; - clientSecret: string; - domain: string; - callbackURL: string; - secure: boolean; - appOrigin: string; -} +import { Config } from '@backstage/config'; type PrivateInfo = { refreshToken: string; @@ -155,46 +142,45 @@ export class Auth0AuthProvider implements OAuthProviderHandlers { export function createAuth0Provider( { baseUrl }: AuthProviderConfig, - providerConfig: EnvironmentProviderConfig, + _: string, + envConfig: Config, logger: Logger, tokenIssuer: TokenIssuer, ) { - const envProviders: EnvironmentHandlers = {}; const providerId = 'auth0'; + const secure = envConfig.getBoolean('secure'); + const appOrigin = envConfig.getString('appOrigin'); + const clientID = envConfig.getString('clientId'); + const clientSecret = envConfig.getString('clientSecret'); + const domain = envConfig.getString('domain'); + const callbackURL = `${baseUrl}/${providerId}/handler/frame`; - for (const [env, envConfig] of Object.entries(providerConfig)) { - const config = (envConfig as unknown) as Auth0ProviderConfig; - const opts = { - clientID: config.clientId, - clientSecret: config.clientSecret, - callbackURL: `${baseUrl}/${providerId}/handler/frame?env=${env}`, - domain: config.domain, - } as Auth0StrategyOptionsWithRequest; + const opts = { + clientID, + clientSecret, + callbackURL, + domain, + } as Auth0StrategyOptionsWithRequest; - if (!opts.clientID || !opts.clientSecret || !opts.domain) { - if (process.env.NODE_ENV !== 'development') { - throw new Error( - 'Failed to initialize OAuth2 auth provider, set AUTH_AUTH0_CLIENT_ID, AUTH_AUTH0_CLIENT_SECRET, and AUTH_AUTH0_DOMAIN env vars', - ); - } - - logger.warn( - 'OAuth2 auth provider disabled, set AUTH_AUTH0_CLIENT_ID, AUTH_AUTH0_CLIENT_SECRET, and AUTH_AUTH0_DOMAIN env vars to enable', + if (!opts.clientID || !opts.clientSecret || !opts.domain) { + if (process.env.NODE_ENV !== 'development') { + throw new Error( + 'Failed to initialize Auth0 auth provider, set AUTH_AUTH0_CLIENT_ID, AUTH_AUTH0_CLIENT_SECRET, and AUTH_AUTH0_DOMAIN env vars', ); - continue; } - const { secure, appOrigin } = config; - envProviders[env] = new OAuthProvider(new Auth0AuthProvider(opts), { - disableRefresh: true, - persistScopes: true, - providerId: providerId, - secure, - baseUrl, - appOrigin, - tokenIssuer, - }); + logger.warn( + 'Auth0 auth provider disabled, set AUTH_AUTH0_CLIENT_ID, AUTH_AUTH0_CLIENT_SECRET, and AUTH_AUTH0_DOMAIN env vars to enable', + ); + return undefined; } - return new EnvironmentHandler(providerId, envProviders); + return new OAuthProvider(new Auth0AuthProvider(opts), { + disableRefresh: true, + providerId, + secure, + baseUrl, + appOrigin, + tokenIssuer, + }); } From 475036235d663adc1f2f9be368a52b8c61017dce Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 31 Jul 2020 13:29:35 +0000 Subject: [PATCH 043/656] build(deps): bump webpack-node-externals from 1.7.2 to 2.5.0 Bumps [webpack-node-externals](https://github.com/liady/webpack-node-externals) from 1.7.2 to 2.5.0. - [Release notes](https://github.com/liady/webpack-node-externals/releases) - [Commits](https://github.com/liady/webpack-node-externals/compare/v1.7.2...v2.5.0) Signed-off-by: dependabot-preview[bot] --- packages/cli/package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index cc5b3edc9b..2aba00b0e3 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -95,7 +95,7 @@ "url-loader": "^4.1.0", "webpack": "^4.41.6", "webpack-dev-server": "^3.10.3", - "webpack-node-externals": "^1.7.2", + "webpack-node-externals": "^2.5.0", "yaml": "^1.10.0", "yml-loader": "^2.1.0", "yn": "^4.0.0" diff --git a/yarn.lock b/yarn.lock index 78a99cbe27..62335b1479 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22785,10 +22785,10 @@ webpack-log@^2.0.0: ansi-colors "^3.0.0" uuid "^3.3.2" -webpack-node-externals@^1.7.2: - version "1.7.2" - resolved "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz#6e1ee79ac67c070402ba700ef033a9b8d52ac4e3" - integrity sha512-ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg== +webpack-node-externals@^2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-2.5.0.tgz#8d50f3289c71bc2b921a8da228e0b652acc503f1" + integrity sha512-g7/Z7Q/gsP8GkJkKZuJggn6RSb5PvxW1YD5vvmRZIxaSxAzkqjfL5n9CslVmNYlSqBVCyiqFgOqVS2IOObCSRg== webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" From 8680fedff6b31feddcaca8607791352cd349e491 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 13 Aug 2020 17:04:35 +0200 Subject: [PATCH 044/656] whitelist -> allowlist --- packages/cli/package.json | 2 +- packages/cli/src/lib/bundler/config.ts | 4 ++-- .../.storybook/webpack-plugin-fail-build-on-warning.js | 6 +++--- yarn.lock | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 2aba00b0e3..3c9f85ac30 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -47,7 +47,7 @@ "@svgr/webpack": "4.3.x", "@types/start-server-webpack-plugin": "^2.2.0", "@types/webpack-env": "^1.15.2", - "@types/webpack-node-externals": "^1.7.1", + "@types/webpack-node-externals": "^2.5.0", "bfj": "^7.0.2", "chalk": "^4.0.0", "chokidar": "^3.3.1", diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 56150ad968..8049ce436d 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -152,11 +152,11 @@ export function createBackendConfig( externals: [ nodeExternals({ modulesDir: paths.rootNodeModules, - whitelist: ['webpack/hot/poll?100', /\@backstage\/.*/], + allowlist: ['webpack/hot/poll?100', /\@backstage\/.*/], }), nodeExternals({ modulesDir: paths.targetNodeModules, - whitelist: ['webpack/hot/poll?100', /\@backstage\/.*/], + allowlist: ['webpack/hot/poll?100', /\@backstage\/.*/], }), ], target: 'node' as const, diff --git a/packages/storybook/.storybook/webpack-plugin-fail-build-on-warning.js b/packages/storybook/.storybook/webpack-plugin-fail-build-on-warning.js index 1ccf825839..b812b6bac9 100644 --- a/packages/storybook/.storybook/webpack-plugin-fail-build-on-warning.js +++ b/packages/storybook/.storybook/webpack-plugin-fail-build-on-warning.js @@ -19,7 +19,7 @@ * https://github.com/spotify/backstage/issues/718. To make sure new warnings are not introduced with new PRs, we * want to fail CI builds if there are warnings when building storybook. * - * This webpack plugin makes sure the CI builds fail on Webpack warnings. We also have a whitelist of warnings here + * This webpack plugin makes sure the CI builds fail on Webpack warnings. We also have an allowlist of warnings here * which we think are non-critical. * * Note that this implementation will not detect other warnings emitted by storybook build that are separate from @@ -32,7 +32,7 @@ */ class WebpackPluginFailBuildOnWarning { // Ignore the following warnings in the Webpack build. - warningsWhitelist = new Set([ + warningsAllowlist = new Set([ 'AssetsOverSizeLimitWarning', 'EntrypointsOverSizeLimitWarning', 'NoAsyncChunksWarning', @@ -50,7 +50,7 @@ class WebpackPluginFailBuildOnWarning { if (warnings.length > 0) { // Throw error if there are unexpected warnings. for (let warning of warnings) { - if (!this.warningsWhitelist.has(warning.name)) { + if (!this.warningsAllowlist.has(warning.name)) { process.on('beforeExit', () => { console.log( `You have some unexpected warning(s) in your webpack build. Exiting process as error.`, diff --git a/yarn.lock b/yarn.lock index 62335b1479..9341567067 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5202,10 +5202,10 @@ resolved "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.15.2.tgz#927997342bb9f4a5185a86e6579a0a18afc33b0a" integrity sha512-67ZgZpAlhIICIdfQrB5fnDvaKFcDxpKibxznfYRVAT4mQE41Dido/3Ty+E3xGBmTogc5+0Qb8tWhna+5B8z1iQ== -"@types/webpack-node-externals@^1.7.1": - version "1.7.1" - resolved "https://registry.npmjs.org/@types/webpack-node-externals/-/webpack-node-externals-1.7.1.tgz#73d0d7ae0e98cfbd69b7443388302cd69217494a" - integrity sha512-kbO2gYPKvMb5j1KOgnIuUH52CKul9Ud4b10J5n+JX8oHmgu86hYpBVfrV4bMDe5lhCaO64h8QrKz7WnRZzqkbA== +"@types/webpack-node-externals@^2.5.0": + version "2.5.0" + resolved "https://registry.npmjs.org/@types/webpack-node-externals/-/webpack-node-externals-2.5.0.tgz#bcd161af84a4960416e5850e06931b35321c6654" + integrity sha512-KaWfhUQlpWknM/CMBKhV7i0vxX/N2xEy3WeaE500s4ZNxC4nLnKB+0F3gD3Fg+5octPq0nn8ZlfFR/P3dSkXpw== dependencies: "@types/webpack" "*" From 8c22b1ca0fd6dabbd3d325b00b7dbe8fdd609aeb Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2020 08:24:24 +0000 Subject: [PATCH 045/656] chore(deps-dev): bump cypress from 4.9.0 to 4.12.1 Bumps [cypress](https://github.com/cypress-io/cypress) from 4.9.0 to 4.12.1. - [Release notes](https://github.com/cypress-io/cypress/releases) - [Commits](https://github.com/cypress-io/cypress/compare/v4.9.0...v4.12.1) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 236 ++++++++++++++++++++++++++---------------------------- 1 file changed, 113 insertions(+), 123 deletions(-) diff --git a/yarn.lock b/yarn.lock index 78a99cbe27..155b96415a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1562,7 +1562,7 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@cypress/listr-verbose-renderer@0.4.1": +"@cypress/listr-verbose-renderer@^0.4.1": version "0.4.1" resolved "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a" integrity sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo= @@ -1572,7 +1572,7 @@ date-fns "^1.27.2" figures "^1.7.0" -"@cypress/request@2.88.5": +"@cypress/request@^2.88.5": version "2.88.5" resolved "https://registry.npmjs.org/@cypress/request/-/request-2.88.5.tgz#8d7ecd17b53a849cfd5ab06d5abe7d84976375d7" integrity sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA== @@ -1598,7 +1598,7 @@ tunnel-agent "^0.6.0" uuid "^3.3.2" -"@cypress/xvfb@1.2.4": +"@cypress/xvfb@^1.2.4": version "1.2.4" resolved "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== @@ -5055,12 +5055,12 @@ "@types/express-serve-static-core" "*" "@types/mime" "*" -"@types/sinonjs__fake-timers@6.0.1": +"@types/sinonjs__fake-timers@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz#681df970358c82836b42f989188d133e218c458e" integrity sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA== -"@types/sizzle@*", "@types/sizzle@2.3.2": +"@types/sizzle@*", "@types/sizzle@^2.3.2": version "2.3.2" resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== @@ -6020,7 +6020,7 @@ aproba@^2.0.0: resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== -arch@2.1.2, arch@^2.1.0: +arch@^2.1.0, arch@^2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/arch/-/arch-2.1.2.tgz#0c52bbe7344bb4fa260c443d2cbad9c00ff2f0bf" integrity sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ== @@ -6865,7 +6865,7 @@ bl@^4.0.1: inherits "^2.0.4" readable-stream "^3.4.0" -bluebird@3.7.2, bluebird@^3.3.5, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: +bluebird@3.7.2, bluebird@^3.3.5, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -7288,7 +7288,7 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" -cachedir@2.3.0: +cachedir@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== @@ -7509,7 +7509,7 @@ chardet@^0.7.0: resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -check-more-types@2.24.0: +check-more-types@2.24.0, check-more-types@^2.24.0: version "2.24.0" resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= @@ -7670,7 +7670,7 @@ cli-spinners@^2.2.0: resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77" integrity sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ== -cli-table3@0.5.1: +cli-table3@0.5.1, cli-table3@~0.5.1: version "0.5.1" resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== @@ -7930,22 +7930,22 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== -commander@4.1.1, commander@^4.0.0, commander@^4.0.1, commander@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - commander@^2.11.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3, commander@^2.8.1, commander@~2.20.3: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^4.0.0, commander@^4.0.1, commander@^4.1.1: + version "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: version "5.1.0" resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== -common-tags@1.8.0: +common-tags@^1.8.0: version "1.8.0" resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== @@ -8756,47 +8756,47 @@ cyclist@^1.0.1: integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= cypress@*, cypress@^4.2.0: - version "4.9.0" - resolved "https://registry.npmjs.org/cypress/-/cypress-4.9.0.tgz#c188a3864ddf841c0fdc81a9e4eff5cf539cd1c1" - integrity sha512-qGxT5E0j21FPryzhb0OBjCdhoR/n1jXtumpFFSBPYWsaZZhNaBvc3XlBUDEZKkkXPsqUFYiyhWdHN/zo0t5FcA== + version "4.12.1" + resolved "https://registry.npmjs.org/cypress/-/cypress-4.12.1.tgz#0ead1b9f4c0917d69d8b57f996b6e01fe693b6ec" + integrity sha512-9SGIPEmqU8vuRA6xst2CMTYd9sCFCxKSzrHt0wr+w2iAQMCIIsXsQ5Gplns1sT6LDbZcmLv6uehabAOl3fhc9Q== dependencies: - "@cypress/listr-verbose-renderer" "0.4.1" - "@cypress/request" "2.88.5" - "@cypress/xvfb" "1.2.4" - "@types/sinonjs__fake-timers" "6.0.1" - "@types/sizzle" "2.3.2" - arch "2.1.2" - bluebird "3.7.2" - cachedir "2.3.0" - chalk "2.4.2" - check-more-types "2.24.0" - cli-table3 "0.5.1" - commander "4.1.1" - common-tags "1.8.0" - debug "4.1.1" - eventemitter2 "6.4.2" - execa "1.0.0" - executable "4.1.1" - extract-zip "1.7.0" - fs-extra "8.1.0" - getos "3.2.1" - is-ci "2.0.0" - is-installed-globally "0.3.2" - lazy-ass "1.6.0" - listr "0.14.3" - lodash "4.17.15" - log-symbols "3.0.0" - minimist "1.2.5" - moment "2.26.0" - ospath "1.2.2" - pretty-bytes "5.3.0" - ramda "0.26.1" - request-progress "3.0.0" - supports-color "7.1.0" - tmp "0.1.0" - untildify "4.0.0" - url "0.11.0" - yauzl "2.10.0" + "@cypress/listr-verbose-renderer" "^0.4.1" + "@cypress/request" "^2.88.5" + "@cypress/xvfb" "^1.2.4" + "@types/sinonjs__fake-timers" "^6.0.1" + "@types/sizzle" "^2.3.2" + arch "^2.1.2" + bluebird "^3.7.2" + cachedir "^2.3.0" + chalk "^2.4.2" + check-more-types "^2.24.0" + cli-table3 "~0.5.1" + commander "^4.1.1" + common-tags "^1.8.0" + debug "^4.1.1" + eventemitter2 "^6.4.2" + execa "^1.0.0" + executable "^4.1.1" + extract-zip "^1.7.0" + fs-extra "^8.1.0" + getos "^3.2.1" + is-ci "^2.0.0" + is-installed-globally "^0.3.2" + lazy-ass "^1.6.0" + listr "^0.14.3" + lodash "^4.17.19" + log-symbols "^3.0.0" + minimist "^1.2.5" + moment "^2.27.0" + ospath "^1.2.2" + pretty-bytes "^5.3.0" + ramda "~0.26.1" + request-progress "^3.0.0" + supports-color "^7.1.0" + tmp "~0.1.0" + untildify "^4.0.0" + url "^0.11.0" + yauzl "^2.10.0" d3-dispatch@1: version "1.0.6" @@ -10304,10 +10304,10 @@ event-stream@=3.3.4: stream-combiner "~0.0.4" through "~2.3.1" -eventemitter2@6.4.2: - version "6.4.2" - resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.2.tgz#f31f8b99d45245f0edbc5b00797830ff3b388970" - integrity sha512-r/Pwupa5RIzxIHbEKCkNXqpEQIIT4uQDxmP4G/Lug/NokVUWj0joz/WzWl3OxRpC5kDrH/WdiUJoR+IrwvXJEw== +eventemitter2@^6.4.2: + version "6.4.3" + resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.3.tgz#35c563619b13f3681e7eb05cbdaf50f56ba58820" + integrity sha512-t0A2msp6BzOf+QAcI6z9XMktLj52OjGQg+8SJH6v5+3uxNpWYRR3wQmfA+6xtMU9kOC59qk9licus5dYcrYkMQ== eventemitter3@^3.1.0: version "3.1.2" @@ -10355,19 +10355,6 @@ exec-sh@^0.3.2: resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== -execa@1.0.0, execa@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@3.4.0: version "3.4.0" resolved "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" @@ -10397,6 +10384,19 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^4.0.0, execa@^4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/execa/-/execa-4.0.2.tgz#ad87fb7b2d9d564f70d2b62d511bee41d5cbb240" @@ -10412,7 +10412,7 @@ execa@^4.0.0, execa@^4.0.1: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -executable@4.1.1, executable@^4.1.0: +executable@^4.1.0, executable@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== @@ -10578,7 +10578,7 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@1.7.0: +extract-zip@^1.7.0: version "1.7.0" resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== @@ -11435,7 +11435,7 @@ getopts@2.2.5: resolved "https://registry.npmjs.org/getopts/-/getopts-2.2.5.tgz#67a0fe471cacb9c687d817cab6450b96dde8313b" integrity sha512-9jb7AW5p3in+IiJWhQiZmmwkpLaR/ccTWdWQCtZM66HJcHHLegowh4q4tSD7gouUyeNvFWRavfK9GXosQHDpFA== -getos@3.2.1: +getos@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== @@ -12965,7 +12965,7 @@ is-callable@^1.1.4, is-callable@^1.1.5: resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== -is-ci@2.0.0, is-ci@^2.0.0: +is-ci@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== @@ -13136,7 +13136,7 @@ is-in-browser@^1.0.2, is-in-browser@^1.1.3: resolved "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU= -is-installed-globally@0.3.2, is-installed-globally@^0.3.1: +is-installed-globally@^0.3.1, is-installed-globally@^0.3.2: version "0.3.2" resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== @@ -14489,7 +14489,7 @@ latest-version@^5.0.0: dependencies: package-json "^6.3.0" -lazy-ass@1.6.0: +lazy-ass@1.6.0, lazy-ass@^1.6.0: version "1.6.0" resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= @@ -14686,7 +14686,7 @@ listr2@^2.1.0: rxjs "^6.5.5" through "^2.3.8" -listr@0.14.3: +listr@^0.14.3: version "0.14.3" resolved "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== @@ -14968,23 +14968,11 @@ lodash.without@^4.4.0: resolved "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= -lodash@4.17.15: - version "4.17.15" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4, lodash@^4.2.1, lodash@~4.17.10: version "4.17.20" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== -log-symbols@3.0.0, log-symbols@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" - integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== - dependencies: - chalk "^2.4.2" - log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" @@ -14992,6 +14980,13 @@ log-symbols@^1.0.2: dependencies: chalk "^1.0.0" +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + log-symbols@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" @@ -15654,7 +15649,7 @@ minimist-options@^3.0.1: arrify "^1.0.1" is-plain-obj "^1.1.0" -minimist@1.2.5, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -15776,11 +15771,6 @@ modify-values@^1.0.0: resolved "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== -moment@2.26.0: - version "2.26.0" - resolved "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz#5e1f82c6bafca6e83e808b30c8705eed0dcbd39a" - integrity sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw== - moment@^2.25.3, moment@^2.26.0, moment@^2.27.0: version "2.27.0" resolved "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d" @@ -16714,7 +16704,7 @@ osenv@0, osenv@^0.1.4, osenv@^0.1.5: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -ospath@1.2.2: +ospath@^1.2.2: version "1.2.2" resolved "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= @@ -18023,7 +18013,7 @@ prettier@^2.0.5: resolved "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg== -pretty-bytes@5.3.0: +pretty-bytes@^5.3.0: version "5.3.0" resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2" integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg== @@ -18413,11 +18403,6 @@ raf@^3.1.0, raf@^3.4.1: dependencies: performance-now "^2.1.0" -ramda@0.26.1, ramda@^0.26: - version "0.26.1" - resolved "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" - integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ== - ramda@^0.21.0: version "0.21.0" resolved "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" @@ -18428,6 +18413,11 @@ ramda@^0.25.0: resolved "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" integrity sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ== +ramda@^0.26, ramda@~0.26.1: + version "0.26.1" + resolved "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" + integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ== + ramldt2jsonschema@^1.1.0: version "1.2.3" resolved "https://registry.npmjs.org/ramldt2jsonschema/-/ramldt2jsonschema-1.2.3.tgz#8d45a7f306a1169a3bde91cab725d1d6d0ff7d55" @@ -19465,7 +19455,7 @@ replace-in-file@^6.0.0: glob "^7.1.6" yargs "^15.3.1" -request-progress@3.0.0: +request-progress@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= @@ -21182,13 +21172,6 @@ supertest@^4.0.2: methods "^1.1.2" superagent "^3.8.3" -supports-color@7.1.0, supports-color@^7.0.0, supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== - dependencies: - has-flag "^4.0.0" - supports-color@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -21215,6 +21198,13 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + supports-hyperlinks@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" @@ -21694,13 +21684,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== -tmp@0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" - integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== - dependencies: - rimraf "^2.6.3" - tmp@^0.0.33: version "0.0.33" resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -21708,6 +21691,13 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +tmp@~0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" + integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== + dependencies: + rimraf "^2.6.3" + tmpl@1.0.x: version "1.0.4" resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" @@ -22320,7 +22310,7 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -untildify@4.0.0: +untildify@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== @@ -22406,7 +22396,7 @@ url-to-options@^1.0.1: resolved "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= -url@0.11.0, url@^0.11.0, url@~0.11.0: +url@^0.11.0, url@~0.11.0: version "0.11.0" resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= @@ -23420,7 +23410,7 @@ yargs@^5.0.0: y18n "^3.2.1" yargs-parser "^3.2.0" -yauzl@2.10.0, yauzl@^2.10.0, yauzl@^2.4.2: +yauzl@^2.10.0, yauzl@^2.4.2: version "2.10.0" resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= From ac013cd60741b137997645c3fc97d849a8b3ec6a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2020 08:24:24 +0000 Subject: [PATCH 046/656] chore(deps): bump @types/dockerode from 2.5.32 to 2.5.34 Bumps [@types/dockerode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dockerode) from 2.5.32 to 2.5.34. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/dockerode) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 78a99cbe27..0c694aecb1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4454,14 +4454,7 @@ resolved "https://registry.npmjs.org/@types/diff/-/diff-4.0.2.tgz#2e9bb89f9acc3ab0108f0f3dc4dbdcf2fff8a99c" integrity sha512-mIenTfsIe586/yzsyfql69KRnA75S8SVXQbTLpDejRrjH0QSJcpu3AUOi/Vjnt9IOsXKxPhJfGpQUNMueIU1fQ== -"@types/dockerode@^2.5.32": - version "2.5.32" - resolved "https://registry.npmjs.org/@types/dockerode/-/dockerode-2.5.32.tgz#52d3628f605f8ea65202541c59a8a6dd166384fd" - integrity sha512-TfaGOoOHxsjkWRj2sPoQ3FLmTC5mVMhZ4kzZy13U7mjtIDoloE4e7AMj5jPLbffWB6Csy5DF5e0lC9M+tnKz/A== - dependencies: - "@types/node" "*" - -"@types/dockerode@^2.5.34": +"@types/dockerode@^2.5.32", "@types/dockerode@^2.5.34": version "2.5.34" resolved "https://registry.npmjs.org/@types/dockerode/-/dockerode-2.5.34.tgz#9adb884f7cc6c012a6eb4b2ad794cc5d01439959" integrity sha512-LcbLGcvcBwBAvjH9UrUI+4qotY+A5WCer5r43DR5XHv2ZIEByNXFdPLo1XxR+v/BjkGjlggW8qUiXuVEhqfkpA== From bffd8610d45ad58e3bf768fdda2b804a72eb3725 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2020 08:24:33 +0000 Subject: [PATCH 047/656] chore(deps): bump apollo-server-express from 2.16.0 to 2.16.1 Bumps [apollo-server-express](https://github.com/apollographql/apollo-server/tree/HEAD/packages/apollo-server-express) from 2.16.0 to 2.16.1. - [Release notes](https://github.com/apollographql/apollo-server/releases) - [Changelog](https://github.com/apollographql/apollo-server/blob/main/CHANGELOG.md) - [Commits](https://github.com/apollographql/apollo-server/commits/apollo-server-express@2.16.1/packages/apollo-server-express) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/yarn.lock b/yarn.lock index 78a99cbe27..b16ee3eafc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4505,7 +4505,7 @@ "@types/qs" "*" "@types/range-parser" "*" -"@types/express@*", "@types/express@^4.17.6": +"@types/express@*", "@types/express@4.17.7", "@types/express@^4.17.6": version "4.17.7" resolved "https://registry.npmjs.org/@types/express/-/express-4.17.7.tgz#42045be6475636d9801369cd4418ef65cdb0dd59" integrity sha512-dCOT5lcmV/uC2J9k0rPafATeeyz+99xTt54ReX11/LObZgfzJqZNcW27zGhYyX+9iSEGXGt5qLPwRSvBZcLvtQ== @@ -4515,16 +4515,6 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/express@4.17.4": - version "4.17.4" - resolved "https://registry.npmjs.org/@types/express/-/express-4.17.4.tgz#e78bf09f3f530889575f4da8a94cd45384520aac" - integrity sha512-DO1L53rGqIDUEvOjJKmbMEQ5Z+BM2cIEPy/eV3En+s166Gz+FeuzRerxcab757u/U4v4XF4RYrZPmqKa+aY/2w== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "*" - "@types/qs" "*" - "@types/serve-static" "*" - "@types/fs-capacitor@*": version "2.0.0" resolved "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz#17113e25817f584f58100fb7a08eed288b81956e" @@ -5897,10 +5887,10 @@ apollo-server-caching@^0.5.2: dependencies: lru-cache "^5.0.0" -apollo-server-core@^2.16.0: - version "2.16.0" - resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.16.0.tgz#56b367db49f97b7da03b29cef89b63d9ed14ee0c" - integrity sha512-mnvg2cPvsQtjFXIqIhEAbPqGyiSXDSbiBgNQ8rY8g7r2eRMhHKZePqGF03gP1/w87yVaSDRAZBDk6o+jiBXjVQ== +apollo-server-core@^2.16.0, apollo-server-core@^2.16.1: + version "2.16.1" + resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.16.1.tgz#5b5b8245ab9c0cb6c2367ec19ab855dea6ccea3a" + integrity sha512-nuwn5ZBbmzPwDetb3FgiFFJlNK7ZBFg8kis/raymrjd3eBGdNcOyMTJDl6J9673X9Xqp+dXQmFYDW/G3G8S1YA== dependencies: "@apollographql/apollo-tools" "^0.4.3" "@apollographql/graphql-playground-html" "1.6.26" @@ -5939,17 +5929,17 @@ apollo-server-errors@^2.4.2: integrity sha512-FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ== apollo-server-express@^2.16.0: - version "2.16.0" - resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.16.0.tgz#3474a7f7eb868a2a847a364839147f8d7f26454a" - integrity sha512-mBIvKcF8gApj7wbmqe0A4Tsy+Pw66mI6cmtD912bG59KhUBveSCZ21dDlRSvnXUyK+GOo2ItwcUEtmks+Z2Pqw== + version "2.16.1" + resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.16.1.tgz#7438bca590ef8577d24d20ba0b6d582c120c0146" + integrity sha512-Oq5YNcaMYnRk6jDmA9LWf8oSd2KHDVe7jQ4wtooAvG9FVUD+FaFBgSkytXHMvtifQh2wdF07Ri8uDLMz6IQjTw== dependencies: "@apollographql/graphql-playground-html" "1.6.26" "@types/accepts" "^1.3.5" "@types/body-parser" "1.19.0" "@types/cors" "^2.8.4" - "@types/express" "4.17.4" + "@types/express" "4.17.7" accepts "^1.3.5" - apollo-server-core "^2.16.0" + apollo-server-core "^2.16.1" apollo-server-types "^0.5.1" body-parser "^1.18.3" cors "^2.8.4" From 693b7bd2f64ddbda6dc5c7d0585f80eb0cf3513a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2020 08:25:00 +0000 Subject: [PATCH 048/656] chore(deps-dev): bump @types/google-protobuf from 3.7.2 to 3.7.3 Bumps [@types/google-protobuf](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/google-protobuf) from 3.7.2 to 3.7.3. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/google-protobuf) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 78a99cbe27..3b0cb6a3e5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4559,9 +4559,9 @@ "@types/node" "*" "@types/google-protobuf@^3.7.2": - version "3.7.2" - resolved "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.7.2.tgz#cd8a360c193ce4d672575a20a79f49ba036d38d2" - integrity sha512-ifFemzjNchFBCtHS6bZNhSZCBu7tbtOe0e8qY0z2J4HtFXmPJjm6fXSaQsTG7yhShBEZtt2oP/bkwu5k+emlkQ== + version "3.7.3" + resolved "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.7.3.tgz#429512e541bbd777f2c867692e6335ee08d1f6d4" + integrity sha512-FRwj40euE2bYkG+0X5w2nEA8yAzgJRcEa7RBd0Gsdkb9/tPM2pctVVAvnOUTbcXo2VmIHPo0Ae94Gl9vRHfKzg== "@types/graceful-fs@^4.1.2": version "4.1.3" From d2f4438f5b936cff796acb649486b47a01dad0a9 Mon Sep 17 00:00:00 2001 From: Sebastian Qvarfordt Date: Mon, 17 Aug 2020 11:18:09 +0200 Subject: [PATCH 049/656] Fix techdocs-cli when not running local --- packages/techdocs-cli/bin/techdocs-cli | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/techdocs-cli/bin/techdocs-cli b/packages/techdocs-cli/bin/techdocs-cli index d21094a028..ccc9c23beb 100755 --- a/packages/techdocs-cli/bin/techdocs-cli +++ b/packages/techdocs-cli/bin/techdocs-cli @@ -21,7 +21,7 @@ const path = require('path'); const isLocal = require('fs').existsSync(path.resolve(__dirname, '../src')); if (!isLocal) { - require('../dist'); + require('..'); } else { require('ts-node').register({ transpileOnly: true, From c673826ebb77b1876b19bb8126e28b5108cba294 Mon Sep 17 00:00:00 2001 From: Tim Jacomb Date: Mon, 17 Aug 2020 09:51:19 +0100 Subject: [PATCH 050/656] Fix sqllite backend --- packages/backend-common/src/database/connection.ts | 2 +- packages/backend/src/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/backend-common/src/database/connection.ts b/packages/backend-common/src/database/connection.ts index fcff459d1e..d968275482 100644 --- a/packages/backend-common/src/database/connection.ts +++ b/packages/backend-common/src/database/connection.ts @@ -37,7 +37,7 @@ export function createDatabase( if (client === 'pg') { return createPgDatabase(config, overrides); } else if (client === 'sqlite3') { - return createSqlite3Database(config, overrides); + return createSqlite3Database(config); } return knex(mergeDatabaseConfig(config.get(), overrides)); diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts index cb24b00477..50f59795fc 100644 --- a/packages/backend/src/index.ts +++ b/packages/backend/src/index.ts @@ -93,6 +93,6 @@ async function main() { module.hot?.accept(); main().catch(error => { - console.error(`Backend failed to start up, ${error}`); + console.error('Backend failed to start up', error); process.exit(1); }); From 1aac6f1fb35bdbfc26518651bf4310752d102651 Mon Sep 17 00:00:00 2001 From: Govind Date: Mon, 17 Aug 2020 12:39:51 +0200 Subject: [PATCH 051/656] Add documentation explaining authentication in the backend (#1963) * Add documentation explaining authentication in the backend * Link newly added document to mkdocs and app documentation Co-authored-by: Govindarajan Nagarajan --- docs/auth/auth-backend-classes.md | 122 ++++++++++++++++++++++++++++++ microsite/sidebars.json | 3 +- mkdocs.yml | 1 + 3 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 docs/auth/auth-backend-classes.md diff --git a/docs/auth/auth-backend-classes.md b/docs/auth/auth-backend-classes.md new file mode 100644 index 0000000000..1a476fa2f0 --- /dev/null +++ b/docs/auth/auth-backend-classes.md @@ -0,0 +1,122 @@ +# Authentication backend class layout and description. + +## How does authentication work ? + +The Backstage application can use various authentication `providers` for +authentication. A provider has to implement an `AuthProviderRouterHandlers` +interface for handling authentication. This interface consists of 4 methods. +Each of this method is hosted at an endpoint `/auth/[provider]/method`, where +`method` performs a certain operation as follows: + +``` + /auth/[provider]/start -> start + /auth/[provider]/handler/frame -> frameHandler + /auth/[provider]/refresh -> refresh + /auth/[provider]/logout -> logout +``` + +For more information on how these methods are used and for which purpose, refer +to the documentation [here](oauth.md) + +For details on the parameters, input and output conditions for each method, +refer to the type documentation under +`backstage/plugins/auth-backend/src/providers/types.ts` + +There are currently 2 different classes for 2 authentication mechanisms that +implement this interface: `OAuthProvider` for `OAuth` based Mechanism and a +`SAMLAuthProvider` for a `SAML` based mechanism + +### `OAuth` mechanisms + +Currently `OAuth` is assumed to be the defacto authentication mechanism for +backstage based applications. + +Backstage comes with `batteries-included` set of OAuth Providers for some +commonly used Providers : `Okta`, `Github`, `Google` , `Gitlab` and a generic +`oauth2` provider. + +All of these use the `authorization` flow of OAuth2 to implement authentication. + +If your `authentication` provider is any of the above mentioned (except +`oauth2`) providers, you can configure them by setting the right variables in +`app-config.yaml` under then `auth` section. + +### Configuration + +Each authentication (except SAML )provider needs 5 parameters: an `oauth` +client_id, client_secret, an authorization endpoint and a token endpoint, and an +app origin. The `appOrigin` value is the URL at which the frontend of the +application is hosted. This is required because, the application opens a popup +window to perform the authentication and once the flow is completed, the popup +window sends a `postMessage` to the frontend application to indicate the result +of the operation. Also this URL is used to verify that authentication requests +are coming from only this endpoint. + +These values are configured via the `app-config.yaml` present in the root of +your app folder + +``` +auth: + providers: + google: + development: + appOrigin: "http://localhost:3000/" + secure: false + clientId: + $secret: + env: AUTH_GOOGLE_CLIENT_ID + clientSecret: + $secret: + env: AUTH_GOOGLE_CLIENT_SECRET + github: + development: + appOrigin: "http://localhost:3000/" + secure: false + clientId: + $secret: + env: AUTH_GITHUB_CLIENT_ID + clientSecret: + $secret: + env: AUTH_GITHUB_CLIENT_SECRET + enterpriseInstanceUrl: + $secret: + env: AUTH_GITHUB_ENTERPRISE_INSTANCE_URL + gitlab: + development: + appOrigin: "http://localhost:3000/" + secure: false + clientId: + $secret: +``` + +## Technical notes + +### EnvironmentHandler + +The concept of an `env` is core to the way the `auth-backend` works. `Spotify` +uses an `env` query parameter to identify the environment in which the +application is running (`dev`, `staging`, `prod`, etc). Each runtime can support +multiple environments at the same time and the right handler for each request is +identified and dispatched to based on the `env` parameter. All +`AuthProviderRouterHandlers` are wrapped within a `EnvironmentHandler`. + +An `EnvironmentHandler` takes an `id` for each provider that it wraps, the +handlers for each of the `env` the provider is supported in, and a `function` +that given a `Request` as argument, can extract the information about the `env` +under which it should be processed. + +Each provider exposes a factory function `createXProvider` (where X = name of +the Provider) that takes the globalconfig, env and other parameters and returns +a `AuthProviderRouteHandler` for each env, AND, a `envIdentifier` fn to identify +the `env` in a request. + +For a list of currently available providers, look in the `factories` module +located in `backstage/plugins/auth-backend/src/providers/factories.ts` + +### `oauth2` provider + +The `oauth2` provider abstracts a generic **OAuth2+OIDC** based authentication +provider. What this means is that after the application has been given +permission by the user, the`authorization code` will be exchanged for an +`access_token` , a `refresh_token` and an `id_token`. This `id_token` is used to +obtain an email id of the user, which is then used for creating the session. diff --git a/microsite/sidebars.json b/microsite/sidebars.json index c8b335660e..d407340471 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -103,7 +103,8 @@ "auth/add-auth-provider", "auth/auth-backend", "auth/oauth", - "auth/glossary" + "auth/glossary", + "auth/auth-backend-classes" ], "Designing for Backstage": [ diff --git a/mkdocs.yml b/mkdocs.yml index 8c97a4f1fd..27335903de 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -70,6 +70,7 @@ nav: - Overview: 'auth/index.md' - Add auth provider: 'auth/add-auth-provider.md' - Auth backend: 'auth/auth-backend.md' + - Auth backend class structure: 'auth/auth-backend-classes.md' - OAuth: 'auth/oauth.md' - Glossary: 'auth/glossary.md' - Designing for Backstage: From 8282004e44deb2b94239ce1788b6feb4fc978de6 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2020 15:18:08 +0200 Subject: [PATCH 052/656] chore(deps-dev): bump @storybook/addons from 5.3.19 to 6.0.4 (#1925) Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 5.3.19 to 6.0.4. - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v6.0.4/lib/addons) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- packages/storybook/package.json | 2 +- yarn.lock | 162 +++++++++++++++++++++++++++++++- 2 files changed, 159 insertions(+), 5 deletions(-) diff --git a/packages/storybook/package.json b/packages/storybook/package.json index bbb8743522..3a928b044e 100644 --- a/packages/storybook/package.json +++ b/packages/storybook/package.json @@ -20,7 +20,7 @@ "@storybook/addon-actions": "^5.3.17", "@storybook/addon-links": "^5.3.17", "@storybook/addon-storysource": "^5.3.18", - "@storybook/addons": "^5.3.17", + "@storybook/addons": "^6.0.4", "@storybook/react": "^5.3.17", "storybook-dark-mode": "^0.6.1" } diff --git a/yarn.lock b/yarn.lock index 6a63b34141..58084fb145 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1654,7 +1654,7 @@ resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== -"@emotion/is-prop-valid@0.8.8", "@emotion/is-prop-valid@^0.8.1": +"@emotion/is-prop-valid@0.8.8", "@emotion/is-prop-valid@^0.8.1", "@emotion/is-prop-valid@^0.8.6": version "0.8.8" resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== @@ -3276,6 +3276,16 @@ prop-types "^15.6.1" react-lifecycles-compat "^3.0.4" +"@reach/router@^1.3.3": + version "1.3.4" + resolved "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz#d2574b19370a70c80480ed91f3da840136d10f8c" + integrity sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA== + dependencies: + create-react-context "0.3.0" + invariant "^2.2.3" + prop-types "^15.6.1" + react-lifecycles-compat "^3.0.4" + "@rjsf/core@^2.1.0": version "2.2.2" resolved "https://registry.npmjs.org/@rjsf/core/-/core-2.2.2.tgz#1ebb6fe47448998f3b54e2dea8d58de8a46014dc" @@ -3512,7 +3522,7 @@ regenerator-runtime "^0.13.3" util-deprecate "^1.0.2" -"@storybook/addons@5.3.19", "@storybook/addons@^5.3.17": +"@storybook/addons@5.3.19": version "5.3.19" resolved "https://registry.npmjs.org/@storybook/addons/-/addons-5.3.19.tgz#3a7010697afd6df9a41b8c8a7351d9a06ff490a4" integrity sha512-Ky/k22p6i6FVNvs1VhuFyGvYJdcp+FgXqFgnPyY/OXJW/vPDapdElpTpHJZLFI9I2FQBDcygBPU5RXkumQ+KUQ== @@ -3525,6 +3535,21 @@ global "^4.3.2" util-deprecate "^1.0.2" +"@storybook/addons@^6.0.4": + version "6.0.4" + resolved "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.4.tgz#ee240b77a2c33dfabe4415a4a23c6937bc31c8aa" + integrity sha512-WBkhS2F2gPCqH6SWYaaBgR0xDZ19vrLExfYp1ULof2KMtsKKPQqR6bGF0D5ijLXonea/aemIc50GMhVtLR2qfg== + dependencies: + "@storybook/api" "6.0.4" + "@storybook/channels" "6.0.4" + "@storybook/client-logger" "6.0.4" + "@storybook/core-events" "6.0.4" + "@storybook/router" "6.0.4" + "@storybook/theming" "6.0.4" + core-js "^3.0.1" + global "^4.3.2" + regenerator-runtime "^0.13.3" + "@storybook/api@5.3.19": version "5.3.19" resolved "https://registry.npmjs.org/@storybook/api/-/api-5.3.19.tgz#77f15e9e2eee59fe1ddeaba1ef39bc34713a6297" @@ -3551,6 +3576,32 @@ telejson "^3.2.0" util-deprecate "^1.0.2" +"@storybook/api@6.0.4": + version "6.0.4" + resolved "https://registry.npmjs.org/@storybook/api/-/api-6.0.4.tgz#bf62c1a0092066a4836c1cf516f7780b13e03f37" + integrity sha512-hQuctJcYAGk946B4Qw/TPeYGDhou0fCVSjmrjakaFIQlaExAuq5gZARBPE/iPIvuVNEfIJUz5R8fbMJtJ5NH7w== + dependencies: + "@reach/router" "^1.3.3" + "@storybook/channels" "6.0.4" + "@storybook/client-logger" "6.0.4" + "@storybook/core-events" "6.0.4" + "@storybook/csf" "0.0.1" + "@storybook/router" "6.0.4" + "@storybook/semver" "^7.3.2" + "@storybook/theming" "6.0.4" + "@types/reach__router" "^1.3.5" + core-js "^3.0.1" + fast-deep-equal "^3.1.1" + global "^4.3.2" + lodash "^4.17.15" + memoizerific "^1.11.3" + react "^16.8.3" + regenerator-runtime "^0.13.3" + store2 "^2.7.1" + telejson "^5.0.2" + ts-dedent "^1.1.1" + util-deprecate "^1.0.2" + "@storybook/channel-postmessage@5.3.19": version "5.3.19" resolved "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-5.3.19.tgz#ef9fe974c2a529d89ce342ff7acf5cc22805bae9" @@ -3569,6 +3620,15 @@ dependencies: core-js "^3.0.1" +"@storybook/channels@6.0.4": + version "6.0.4" + resolved "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.4.tgz#c47766961a8bad61db706cfdda5511c741aa215a" + integrity sha512-8yOc9NFbtrw+30wCHABgobRVyBnDnQcueLH4KYWHKwlgK3IKBFF6g0dnlTgi9HSwkK1B1Rqmt00oJKnwZmNYCw== + dependencies: + core-js "^3.0.1" + ts-dedent "^1.1.1" + util-deprecate "^1.0.2" + "@storybook/client-api@5.3.19": version "5.3.19" resolved "https://registry.npmjs.org/@storybook/client-api/-/client-api-5.3.19.tgz#7a5630bb8fffb92742b1773881e9004ee7fdf8e0" @@ -3599,6 +3659,14 @@ dependencies: core-js "^3.0.1" +"@storybook/client-logger@6.0.4": + version "6.0.4" + resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.4.tgz#85e82a68c0456dd829852ef4ef92d2f055b08ed8" + integrity sha512-fNw5iIptcNZBmazDc+JdwXX63UATg+/1tbSoVy8N/ntkh7Ttb21QmvurdHVtElipQIJEt+e7NYCw3x7uM49FFw== + dependencies: + core-js "^3.0.1" + global "^4.3.2" + "@storybook/components@5.3.19": version "5.3.19" resolved "https://registry.npmjs.org/@storybook/components/-/components-5.3.19.tgz#aac1f9eea1247cc85bd93b10fca803876fb84a6b" @@ -3633,6 +3701,13 @@ dependencies: core-js "^3.0.1" +"@storybook/core-events@6.0.4": + version "6.0.4" + resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.4.tgz#6ecde97cc5d0a0dd3e1b4c2358586998ae81d8f4" + integrity sha512-iMLPVIioD1/CUchm3NUB4ou8IchT+E36YSFZnlitof6HJKZbdpq+cFdVXrPGm/OdwUokgx63tWob3t0QaVRMcg== + dependencies: + core-js "^3.0.1" + "@storybook/core@5.3.19": version "5.3.19" resolved "https://registry.npmjs.org/@storybook/core/-/core-5.3.19.tgz#1e61f35c5148343a0c580f5d5efb77f3b4243a30" @@ -3773,6 +3848,26 @@ qs "^6.6.0" util-deprecate "^1.0.2" +"@storybook/router@6.0.4": + version "6.0.4" + resolved "https://registry.npmjs.org/@storybook/router/-/router-6.0.4.tgz#8b9727dd8a966129311615288174e03131792d0f" + integrity sha512-+XFRbRuEWhGKemc2ihIxGVMlQ4kyQ0Al1E9Lx7gDdiq6BjClhEsxmxHb/dqpcSlIw4QCVcINj9zZ6htur0w25w== + dependencies: + "@reach/router" "^1.3.3" + "@types/reach__router" "^1.3.5" + core-js "^3.0.1" + global "^4.3.2" + memoizerific "^1.11.3" + qs "^6.6.0" + +"@storybook/semver@^7.3.2": + version "7.3.2" + resolved "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz#f3b9c44a1c9a0b933c04e66d0048fcf2fa10dac0" + integrity sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg== + dependencies: + core-js "^3.6.5" + find-up "^4.1.0" + "@storybook/source-loader@5.3.19": version "5.3.19" resolved "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-5.3.19.tgz#ff0a00731c24c61721d8b9d84152f8542913a3b7" @@ -3807,6 +3902,24 @@ resolve-from "^5.0.0" ts-dedent "^1.1.0" +"@storybook/theming@6.0.4": + version "6.0.4" + resolved "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.4.tgz#cfcb77fff483a8963b0a2033b14dd1c3588412ae" + integrity sha512-iMH5jh28yp9fvI3hgnAvauGEOUj1ZerwAlbYGyrOY/qlAirfso9jX7Fp5x2gpvshFIjCgLXLeOXH+zLZJ8gBmg== + dependencies: + "@emotion/core" "^10.0.20" + "@emotion/is-prop-valid" "^0.8.6" + "@emotion/styled" "^10.0.17" + "@storybook/client-logger" "6.0.4" + 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 "^1.1.1" + "@storybook/ui@5.3.19": version "5.3.19" resolved "https://registry.npmjs.org/@storybook/ui/-/ui-5.3.19.tgz#ac03b67320044a3892ee784111d4436b61874332" @@ -4897,6 +5010,14 @@ "@types/history" "*" "@types/react" "*" +"@types/reach__router@^1.3.5": + version "1.3.5" + resolved "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.5.tgz#14e1e981cccd3a5e50dc9e969a72de0b9d472f6d" + integrity sha512-h0NbqXN/tJuBY/xggZSej1SKQEstbHO7J/omt1tYoFGmj3YXOodZKbbqD4mNDh7zvEGYd7YFrac1LTtAr3xsYQ== + dependencies: + "@types/history" "*" + "@types/react" "*" + "@types/react-dev-utils@^9.0.4": version "9.0.4" resolved "https://registry.npmjs.org/@types/react-dev-utils/-/react-dev-utils-9.0.4.tgz#3e4bee79b7536777cef219427ab1d38adc24f3f2" @@ -8279,7 +8400,7 @@ core-js@^2.4.0, core-js@^2.5.7, core-js@^2.6.11, core-js@^2.6.5: resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== -core-js@^3.0.1, core-js@^3.0.4, core-js@^3.5.0: +core-js@^3.0.1, core-js@^3.0.4, core-js@^3.5.0, core-js@^3.6.5: version "3.6.5" resolved "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== @@ -13076,6 +13197,11 @@ is-function@^1.0.1: resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" integrity sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU= +is-function@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + is-generator-fn@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" @@ -13280,6 +13406,13 @@ is-regex@^1.0.4, is-regex@^1.0.5: dependencies: has "^1.0.3" +is-regex@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== + dependencies: + has-symbols "^1.0.1" + is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" @@ -17509,6 +17642,13 @@ polished@^3.3.1: dependencies: "@babel/runtime" "^7.8.7" +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" + popper.js@^1.14.1, popper.js@^1.14.4, popper.js@^1.14.7: version "1.16.1" resolved "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" @@ -21423,6 +21563,20 @@ telejson@^3.2.0: lodash "^4.17.15" memoizerific "^1.11.3" +telejson@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/telejson/-/telejson-5.0.2.tgz#ed1e64be250cc1c757a53c19e1740b49832b3d51" + integrity sha512-XCrDHGbinczsscs8LXFr9jDhvy37yBk9piB7FJrCfxE8oP66WDkolNMpaBkWYgQqB9dQGBGtTDzGQPedc9KJmw== + dependencies: + "@types/is-function" "^1.0.0" + global "^4.4.0" + is-function "^1.0.2" + is-regex "^1.1.1" + is-symbol "^1.0.3" + isobject "^4.0.0" + lodash "^4.17.19" + memoizerific "^1.11.3" + temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" @@ -21878,7 +22032,7 @@ tryer@^1.0.1: resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== -ts-dedent@^1.1.0: +ts-dedent@^1.1.0, ts-dedent@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/ts-dedent/-/ts-dedent-1.1.1.tgz#68fad040d7dbd53a90f545b450702340e17d18f3" integrity sha512-UGTRZu1evMw4uTPyYF66/KFd22XiU+jMaIuHrkIHQ2GivAXVlLV0v/vHrpOuTRf9BmpNHi/SO7Vd0rLu0y57jg== From 5374dcdb5d699e96a2e9fdd6783e3f8fdf7814fe Mon Sep 17 00:00:00 2001 From: Dominik Henneke Date: Thu, 13 Aug 2020 15:16:40 +0200 Subject: [PATCH 053/656] feat(catalog): update trivial tab implementation --- .../src/components/EntityPage/EntityPage.tsx | 61 ++++++------------- 1 file changed, 19 insertions(+), 42 deletions(-) diff --git a/plugins/catalog/src/components/EntityPage/EntityPage.tsx b/plugins/catalog/src/components/EntityPage/EntityPage.tsx index 5dd35bf8db..8a375b8d6e 100644 --- a/plugins/catalog/src/components/EntityPage/EntityPage.tsx +++ b/plugins/catalog/src/components/EntityPage/EntityPage.tsx @@ -27,22 +27,17 @@ import { Progress, useApi, } from '@backstage/core'; -import { SentryIssuesWidget } from '@backstage/plugin-sentry'; -import { Widget as GithubActionsWidget } from '@backstage/plugin-github-actions'; -import { - JenkinsBuildsWidget, - JenkinsLastBuildWidget, -} from '@backstage/plugin-jenkins'; -import { Grid, Box } from '@material-ui/core'; +import { Box } from '@material-ui/core'; import { Alert } from '@material-ui/lab'; import React, { FC, useEffect, useState } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; import { useAsync } from 'react-use'; import { catalogApiRef } from '../..'; import { EntityContextMenu } from '../EntityContextMenu/EntityContextMenu'; -import { EntityMetadataCard } from '../EntityMetadataCard/EntityMetadataCard'; -import { UnregisterEntityDialog } from '../UnregisterEntityDialog/UnregisterEntityDialog'; +import { EntityPageApi } from '../EntityPageApi/EntityPageApi'; +import { EntityPageOverview } from '../EntityPageOverview/EntityPageOverview'; import { FavouriteEntity } from '../FavouriteEntity/FavouriteEntity'; +import { UnregisterEntityDialog } from '../UnregisterEntityDialog/UnregisterEntityDialog'; const REDIRECT_DELAY = 1000; function headerProps( @@ -105,6 +100,8 @@ export const EntityPage: FC<{}> = () => { } }, [errorApi, navigate, error, loading, entity]); + const [selectedTabId, setSelectedTabId] = useState(''); + if (!name) { navigate('/catalog'); return null; @@ -122,6 +119,7 @@ export const EntityPage: FC<{}> = () => { { id: 'overview', label: 'Overview', + content: (e: Entity) => , }, { id: 'ci', @@ -134,6 +132,7 @@ export const EntityPage: FC<{}> = () => { { id: 'api', label: 'API', + content: (e: Entity) => , }, { id: 'monitoring', @@ -152,6 +151,8 @@ export const EntityPage: FC<{}> = () => { entity, ); + const selectedTab = tabs.find(tab => tab.id === selectedTabId) || tabs[0]; + return (
= () => { {entity && ( <> - + { + setSelectedTabId(tabs[idx].id); + }} + /> - - - - - {entity.metadata?.annotations?.[ - 'backstage.io/jenkins-github-folder' - ] && ( - - - - )} - {entity.metadata?.annotations?.[ - 'backstage.io/jenkins-github-folder' - ] && ( - - - - )} - {entity.metadata?.annotations?.[ - 'backstage.io/github-actions-id' - ] && ( - - - - )} - - - - + {selectedTab && selectedTab.content + ? selectedTab.content(entity) + : null} Date: Fri, 14 Aug 2020 14:05:30 +0200 Subject: [PATCH 054/656] fix(catalog): read correct property name implementsApis --- packages/catalog-model/examples/petstore-component.yaml | 2 +- .../catalog/src/components/EntityPageApi/EntityPageApi.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/catalog-model/examples/petstore-component.yaml b/packages/catalog-model/examples/petstore-component.yaml index 5cf0d1f270..7e2093ad09 100644 --- a/packages/catalog-model/examples/petstore-component.yaml +++ b/packages/catalog-model/examples/petstore-component.yaml @@ -7,7 +7,7 @@ spec: type: service lifecycle: experimental owner: pets@example.com - implementedApis: + implementsApis: - petstore - streetlights - hello-world diff --git a/plugins/catalog/src/components/EntityPageApi/EntityPageApi.tsx b/plugins/catalog/src/components/EntityPageApi/EntityPageApi.tsx index b115539366..5c0ff5485b 100644 --- a/plugins/catalog/src/components/EntityPageApi/EntityPageApi.tsx +++ b/plugins/catalog/src/components/EntityPageApi/EntityPageApi.tsx @@ -28,7 +28,7 @@ export const EntityPageApi: FC<{ entity: Entity }> = ({ entity }) => { const { value: apiEntities, loading } = useAsync(async () => { const a = await Promise.all( - ((entity?.spec?.implementedApis as string[]) || []).map(api => + ((entity?.spec?.implementsApis as string[]) || []).map(api => catalogApi.getEntityByName({ kind: 'API', name: api, @@ -48,7 +48,7 @@ export const EntityPageApi: FC<{ entity: Entity }> = ({ entity }) => { {loading && } {!loading && ( - {((entity?.spec?.implementedApis as string[]) || []).map(api => { + {((entity?.spec?.implementsApis as string[]) || []).map(api => { const apiEntity = apiEntities && apiEntities.get(api); return ( From b349720c7507d611aea7239d55cc220a3d20f325 Mon Sep 17 00:00:00 2001 From: "toban@dfds.com" Date: Mon, 17 Aug 2020 17:06:28 +0200 Subject: [PATCH 055/656] =migrations https logic to new branch --- microsite/i18n/en.json | 3 + microsite/pages/en/background.js | 2 +- packages/backend-common/package.json | 3 +- .../src/service/lib/ServiceBuilderImpl.ts | 120 ++++++++++++++++-- .../backend-common/src/service/lib/config.ts | 70 ++++++++++ packages/backend-common/src/service/types.ts | 19 +++ yarn.lock | 2 +- 7 files changed, 204 insertions(+), 15 deletions(-) diff --git a/microsite/i18n/en.json b/microsite/i18n/en.json index af891426db..5ddede3d97 100644 --- a/microsite/i18n/en.json +++ b/microsite/i18n/en.json @@ -50,6 +50,9 @@ "auth/add-auth-provider": { "title": "Adding authentication providers" }, + "auth/auth-backend-classes": { + "title": "auth/auth-backend-classes" + }, "auth/auth-backend": { "title": "Auth backend" }, diff --git a/microsite/pages/en/background.js b/microsite/pages/en/background.js index 70a15421ab..c5bf9bee94 100644 --- a/microsite/pages/en/background.js +++ b/microsite/pages/en/background.js @@ -112,7 +112,7 @@ const Background = props => { left: 0, right: 0, bottom: 0, - backgroundImage: `linear-gradient( to bottom, rgb(18, 18, 18), rgba(0, 0, 0, 0) ), url(../img/dot.svg);`, + backgroundImage: `linear-gradient( to bottom, rgb(18, 18, 18), rgba(0, 0, 0, 0) ), url(../img/dot.svg)`, }} />
diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 5cf2ee95e5..8d932cfd49 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -43,7 +43,8 @@ "lodash": "^4.17.15", "morgan": "^1.10.0", "stoppable": "^1.1.0", - "winston": "^3.2.1" + "winston": "^3.2.1", + "selfsigned": "^1.10.7" }, "peerDependencies": { "pg-connection-string": "^2.3.0" diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index cd8e445dd8..1182cc6388 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -19,7 +19,9 @@ import compression from 'compression'; import cors from 'cors'; import express, { Router } from 'express'; import helmet from 'helmet'; -import { Server } from 'http'; +import * as http from 'http'; +import * as https from 'https'; +import * as fs from 'fs'; import stoppable from 'stoppable'; import { Logger } from 'winston'; import { useHotCleanup } from '../../hot'; @@ -30,7 +32,12 @@ import { requestLoggingHandler, } from '../../middleware'; import { ServiceBuilder } from '../types'; -import { readBaseOptions, readCorsOptions } from './config'; +import { + readBaseOptions, + readCorsOptions, + readHttpsSettings, + HttpsSettings, +} from './config'; const DEFAULT_PORT = 7000; // '' is express default, which listens to all interfaces @@ -41,6 +48,7 @@ export class ServiceBuilderImpl implements ServiceBuilder { private host: string | undefined; private logger: Logger | undefined; private corsOptions: cors.CorsOptions | undefined; + private httpsSettings: HttpsSettings | undefined; private routers: [string, Router][]; // Reference to the module where builder is created - needed for hot module // reloading @@ -70,6 +78,11 @@ export class ServiceBuilderImpl implements ServiceBuilder { this.corsOptions = corsOptions; } + const httpsSettings = readHttpsSettings(backendConfig); + if (httpsSettings) { + this.httpsSettings = httpsSettings; + } + return this; } @@ -88,6 +101,11 @@ export class ServiceBuilderImpl implements ServiceBuilder { return this; } + setHttpsSettings(settings: HttpsSettings): ServiceBuilder { + this.httpsSettings = settings; + return this; + } + enableCors(options: cors.CorsOptions): ServiceBuilder { this.corsOptions = options; return this; @@ -98,9 +116,15 @@ export class ServiceBuilderImpl implements ServiceBuilder { return this; } - start(): Promise { + start(): Promise { const app = express(); - const { port, host, logger, corsOptions } = this.getOptions(); + const { + port, + host, + logger, + corsOptions, + httpsSettings, + } = this.getOptions(); app.use(helmet()); if (corsOptions) { @@ -121,20 +145,90 @@ export class ServiceBuilderImpl implements ServiceBuilder { reject(e); }); - const server = stoppable( - app.listen(port, host, () => { - logger.info(`Listening on ${host}:${port}`); - }), - 0, - ); + let server: http.Server; + + if (httpsSettings) { + logger.info('Initializing https server'); + + const credentials: { key: string; cert: string } = { + key: '', + cert: '', + }; + const signingOptions: any = httpsSettings?.certificate; + + if (signingOptions?.algorithm !== undefined) { + logger.info('Generating self-signed certificate with attributes'); + + const certificateAttributes: Array = Object.entries( + signingOptions.attributes, + ).map(([name, value]) => ({ name, value })); + + // TODO: Create a type def for selfsigned. + const signatures = require('selfsigned').generate( + certificateAttributes, + { + algorithm: signingOptions?.algorithm, + keySize: signingOptions?.size || 2048, + days: signingOptions?.days || 30, + }, + ); + + logger.info( + 'Bootstrapping key and cert from self-signed certificate', + ); + + credentials.key = signatures.private; + credentials.cert = signatures.cert; + } else { + if (fs.existsSync(signingOptions?.key)) { + if (fs.lstatSync(signingOptions?.key).isFile()) { + logger.info('Bootstrapping key from file'); + + credentials.key = fs.readFileSync(signingOptions?.key).toString(); + } + } else { + logger.info('Bootstrapping key from config'); + + credentials.key = signingOptions?.key; + } + + if (fs.existsSync(signingOptions?.cert)) { + if (fs.lstatSync(signingOptions?.cert).isFile()) { + logger.info('Bootstrapping cert from file'); + + credentials.cert = fs + .readFileSync(signingOptions?.cert) + .toString(); + } + } else { + logger.info('Bootstrapping cert from config'); + + credentials.cert = signingOptions?.cert; + } + } + + if (credentials.key === '' || credentials.cert === '') { + throw new Error('Invalid credentials'); + } + + server = https.createServer(credentials, app) as http.Server; + } else { + logger.info('Initializing http server'); + + server = http.createServer(app); + } + + const stoppableServer = stoppable(server, 0); + + stoppableServer.listen(port, host); useHotCleanup(this.module, () => - server.stop((e: any) => { + stoppableServer.stop((e: any) => { if (e) console.error(e); }), ); - resolve(server); + resolve(stoppableServer); }); } @@ -143,12 +237,14 @@ export class ServiceBuilderImpl implements ServiceBuilder { host: string; logger: Logger; corsOptions?: cors.CorsOptions; + httpsSettings?: HttpsSettings; } { return { port: this.port ?? DEFAULT_PORT, host: this.host ?? DEFAULT_HOST, logger: this.logger ?? getRootLogger(), corsOptions: this.corsOptions, + httpsSettings: this.httpsSettings, }; } } diff --git a/packages/backend-common/src/service/lib/config.ts b/packages/backend-common/src/service/lib/config.ts index 49f8dc4f04..e257bd4111 100644 --- a/packages/backend-common/src/service/lib/config.ts +++ b/packages/backend-common/src/service/lib/config.ts @@ -22,6 +22,41 @@ export type BaseOptions = { listenHost?: string; }; +export type CertificateOptions = { + key?: CertificateKeyOptions; + attributes?: CertificateAttributeOptions; +}; + +export type CertificateKeyOptions = { + size?: number; + algorithm?: string; + days?: number; +}; + +export type CertificateAttributeOptions = { + commonName?: string; +}; + +export type HttpsSettings = { + certificate: CertificateSigningOptions | CertificateReferenceOptions; +}; + +export type CertificateReferenceOptions = { + key: string; + cert: string; +}; + +export type CertificateSigningOptions = { + algorithm: string; + size?: number; + days?: number; + attributes?: CertificateAttributes; +}; + +export type CertificateAttributes = { + commonName?: string; +}; + /** * Reads some base options out of a config object. * @@ -40,6 +75,7 @@ export function readBaseOptions(config: ConfigReader): BaseOptions { if (typeof config.get('listen') === 'string') { // TODO(freben): Expand this to support more addresses and perhaps optional const { host, port } = parseListenAddress(config.getString('listen')); + return removeUnknown({ listenPort: port, listenHost: host, @@ -49,6 +85,7 @@ export function readBaseOptions(config: ConfigReader): BaseOptions { return removeUnknown({ listenPort: config.getOptionalNumber('listen.port'), listenHost: config.getOptionalString('listen.host'), + baseUrl: config.getOptionalString('baseUrl'), }); } @@ -86,6 +123,39 @@ export function readCorsOptions(config: ConfigReader): CorsOptions | undefined { }); } +/** + * Attempts to read a https settings object from the root of a config object. + * + * @param config The root of a backend config object + * @returns A https settings object, or undefined if not specified + * + * @example + * ```json + * { + * https: { + * certificate: ... + * } + * } + * ``` + */ +export function readHttpsSettings( + config: ConfigReader, +): HttpsSettings | undefined { + const cc = config.getOptionalConfig('https'); + + if (!cc) { + return undefined; + } + + const certificateConfig = cc.get('certificate'); + + const cfg = { + certificate: certificateConfig, + }; + + return removeUnknown(cfg as HttpsSettings); +} + function getOptionalStringOrStrings( config: ConfigReader, key: string, diff --git a/packages/backend-common/src/service/types.ts b/packages/backend-common/src/service/types.ts index 070794969f..d389f4b5ff 100644 --- a/packages/backend-common/src/service/types.ts +++ b/packages/backend-common/src/service/types.ts @@ -19,6 +19,7 @@ import cors from 'cors'; import { Router, RequestHandler } from 'express'; import { Server } from 'http'; import { Logger } from 'winston'; +import { HttpsSettings } from './lib/config'; export type ServiceBuilder = { /** @@ -39,6 +40,15 @@ export type ServiceBuilder = { */ setPort(port: number): ServiceBuilder; + /** + * Sets the host to listen on. + * + * '' is express default, which listens to all interfaces. + * + * @param host The host to listen on + */ + setHost(host: string): ServiceBuilder; + /** * Sets the logger to use for service-specific logging. * @@ -58,6 +68,15 @@ export type ServiceBuilder = { */ enableCors(options: cors.CorsOptions): ServiceBuilder; + /** + * Configure self-signed certificate generation options. + * + * If this method is not called, the resulting service will use sensible defaults + * + * @param options Standard certificate options + */ + setHttpsSettings(settings: HttpsSettings): ServiceBuilder; + /** * Adds a router (similar to the express .use call) to the service. * diff --git a/yarn.lock b/yarn.lock index 6a63b34141..9ab7af396b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9349,7 +9349,7 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -docusaurus@2.0.0-alpha.61: +docusaurus@^2.0.0-alpha.61: version "2.0.0-alpha.61" resolved "https://registry.npmjs.org/docusaurus/-/docusaurus-2.0.0-alpha.61.tgz#f347b81c98c66f1de3ecfccf63fa421ddff52fbb" integrity sha512-qDU3nOA4Xs95tIjjSETnEuRmTukTzgxyTZ5MgMyuG7y6h4oDHtpLcYf8F+xlXuuWHKv3VSxRJNzV8fZHPgnK3g== From e673020f5cffb9362be6ad35fd46aec00124f50b Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Tue, 18 Aug 2020 09:27:18 +0200 Subject: [PATCH 056/656] fix: remove redundant steps from docs build --- microsite/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/package.json b/microsite/package.json index 6a10628b5a..dd8957245a 100644 --- a/microsite/package.json +++ b/microsite/package.json @@ -6,7 +6,7 @@ "scripts": { "examples": "docusaurus-examples", "start": "docusaurus-start", - "build": "docusaurus-build && cp static/img/*.svg build/backstage/img/", + "build": "docusaurus-build", "publish-gh-pages": "docusaurus-publish", "write-translations": "docusaurus-write-translations", "version": "docusaurus-version", From d982278fc34450f59c5f237502413ae92c3cb4bc Mon Sep 17 00:00:00 2001 From: "toban@dfds.com" Date: Tue, 18 Aug 2020 10:27:48 +0200 Subject: [PATCH 057/656] =fixed broken microsite --- microsite/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/package.json b/microsite/package.json index 6a10628b5a..dd8957245a 100644 --- a/microsite/package.json +++ b/microsite/package.json @@ -6,7 +6,7 @@ "scripts": { "examples": "docusaurus-examples", "start": "docusaurus-start", - "build": "docusaurus-build && cp static/img/*.svg build/backstage/img/", + "build": "docusaurus-build", "publish-gh-pages": "docusaurus-publish", "write-translations": "docusaurus-write-translations", "version": "docusaurus-version", From 44e09bd980afb1cf936ddbe6679eb7f34239dde9 Mon Sep 17 00:00:00 2001 From: "toban@dfds.com" Date: Tue, 18 Aug 2020 10:37:38 +0200 Subject: [PATCH 058/656] =added disabled config for https w. self-signed cert --- app-config.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app-config.yaml b/app-config.yaml index a0233991f8..f3b3b8d00c 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -13,6 +13,13 @@ backend: database: client: sqlite3 connection: ':memory:' + # https: + # certificate: + # size: 2048 + # algorithm: sha256 + # days: 30 + # attributes: + # commonName: 'contoso.com' proxy: '/circleci/api': From 3a6f4415eb163a82dbd1e968001cec843c9597b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Tue, 18 Aug 2020 10:52:56 +0200 Subject: [PATCH 059/656] [Docs] Detailed roadmap and vision (#1991) * [Docs] Update roadmap and vision * Add shield to roadmap * Update roadmap.md * Link to .io in main README * Fix verify links? --- README.md | 34 ++---- docs/README.md | 1 + docs/overview/roadmap.md | 63 +++++++--- docs/overview/vision.md | 21 ++++ docs/overview/what-is-backstage.md | 6 +- microsite/README copy.md | 182 ----------------------------- microsite/core/Footer.js | 31 +---- microsite/i18n/en.json | 3 + microsite/sidebars.json | 3 +- mkdocs.yml | 1 + 10 files changed, 95 insertions(+), 250 deletions(-) create mode 100644 docs/overview/vision.md delete mode 100644 microsite/README copy.md diff --git a/README.md b/README.md index 9a1622cda7..982997a347 100644 --- a/README.md +++ b/README.md @@ -18,26 +18,16 @@ Backstage unifies all your infrastructure tooling, services, and documentation t Out of the box, Backstage includes: -- [Backstage Service Catalog](https://github.com/spotify/backstage/blob/master/docs/features/software-catalog/index.md) for managing all your software (microservices, libraries, data pipelines, websites, ML models, etc.) -- [Backstage Software Templates](https://github.com/spotify/backstage/blob/master/docs/features/software-templates/index.md) for quickly spinning up new projects and standardizing your tooling with your organization’s best practices -- [Backstage TechDocs](https://github.com/spotify/backstage/tree/master/docs/features/techdocs) for making it easy to create, maintain, find, and use technical documentation, using a "docs like code" approach +- [Backstage Service Catalog]((https://backstage.io/docs/features/software-catalog/software-catalog-overview) for managing all your software (microservices, libraries, data pipelines, websites, ML models, etc.) +- [Backstage Software Templates](https://backstage.io/docs/features/software-templates/software-templates-index) for quickly spinning up new projects and standardizing your tooling with your organization’s best practices +- [Backstage TechDocs](https://backstage.io/docs/features/techdocs/techdocs-overview) for making it easy to create, maintain, find, and use technical documentation, using a "docs like code" approach - Plus, a growing ecosystem of [open source plugins](https://github.com/spotify/backstage/tree/master/plugins) that further expand Backstage’s customizability and functionality For more information go to [backstage.io](https://backstage.io) or join our [Discord chatroom](https://discord.gg/EBHEGzX). ## Project roadmap -We created Backstage about 4 years ago. While our internal version of Backstage has had the benefit of time to mature and evolve, the first iteration of our open source version is still nascent. We are envisioning three phases of the project and we have already begun work on various aspects of these phases: - -- 🣠**Phase 1:** Extensible frontend platform (Done ✅) - You will be able to easily create a single consistent UI layer for your internal infrastructure and tools. A set of reusable [UX patterns and components](http://backstage.io/storybook) help ensure a consistent experience between tools. - -- 🢠**Phase 2:** Service Catalog ([alpha released](https://backstage.io/blog/2020/06/22/backstage-service-catalog-alpha)) - With a single catalog, Backstage makes it easy for a team to manage ten services — and makes it possible for your company to manage thousands of them. Developers can get a uniform overview of all their software and related resources, regardless of how and where they are running, as well as an easy way to onboard and manage those resources. - -- 🇠**Phase 3:** Ecosystem (later) - Everyone's infrastructure stack is different. By fostering a vibrant community of contributors we hope to provide an ecosystem of Open Source plugins/integrations that allows you to pick the tools that match your stack. - -Check out our [Milestones](https://github.com/spotify/backstage/milestones) and open [RFCs](https://github.com/spotify/backstage/labels/rfc) how they relate to the three Phases outlined above. - -Our vision for Backstage is for it to become the trusted standard toolbox (read: UX layer) for the open source infrastructure landscape. Think of it like Kubernetes for developer experience. We realize this is an ambitious goal. We can’t do it alone. If this sounds interesting or you'd like to help us shape our product vision, we'd love to talk. You can email me directly: [alund@spotify.com](mailto:alund@spotify.com). +A detailed project roadmap, including already delivered milestones, is available [here](https://backstage.io/docs/overview/roadmap). ## Overview @@ -69,7 +59,7 @@ Using `npx` you can then run the following to create an app in a chosen subdirec npx @backstage/create-app ``` -You will be taken through a wizard to create your app, and the output should look something like this. You can read more about this process [here](docs/getting-started/create-an-app.md) +You will be taken through a wizard to create your app, and the output should look something like this. You can read more about this process [here](https://backstage.io/docs/getting-started/create-an-app) ### Contributing to Backstage @@ -77,22 +67,22 @@ You can read more in our [CONTRIBUTING.md](./CONTRIBUTING.md#get-started) guide, ### Next steps -Take a look at the [Getting Started](docs/getting-started/index.md) guide to learn how to set up Backstage, and how to develop on the platform. +Take a look at the [Getting Started](https://backstage.io/docs/getting-started/index) guide to learn how to set up Backstage, and how to develop on the platform. ## Documentation -- [Main documentation](docs/README.md) -- [Service Catalog](docs/features/software-catalog/index.md) -- [Architecture](docs/overview/architecture-terminology.md) ([Decisions](docs/architecture-decisions/index.md)) -- [Designing for Backstage](docs/dls/design.md) -- [Storybook - UI components](http://backstage.io/storybook) +- [Main documentation](https://backstage.io/docs/overview/what-is-backstage) +- [Service Catalog](https://backstage.io/docs/features/software-catalog/software-catalog-overview) +- [Architecture](https://backstage.io/docs/overview/architecture-terminology) ([Decisions](https://backstage.io/docs/architecture-decisions/adrs-overview)) +- [Designing for Backstage](https://backstage.io/docs/dls/design) +- [Storybook - UI components](https://backstage.io/storybook) ## Community - [Discord chatroom](https://discord.gg/MUpMjP2) - Get support or discuss the project - [Good First Issues](https://github.com/spotify/backstage/contribute) - Start here if you want to contribute - [RFCs](https://github.com/spotify/backstage/labels/rfc) - Help shape the technical direction -- [FAQ](docs/FAQ.md) - Frequently Asked Questions +- [FAQ](https://backstage.io/docs/FAQ) - Frequently Asked Questions - [Code of Conduct](CODE_OF_CONDUCT.md) - This is how we roll - [Adopters](ADOPTERS.md) - Companies already using Backstage - [Blog](https://backstage.io/blog/) - Announcements and updates diff --git a/docs/README.md b/docs/README.md index 9bbc69ca6d..b9e79a9e0a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -11,6 +11,7 @@ better yet, a pull request. - [Backstage architecture](overview/architecture-overview.md) - [Architecture and terminology](overview/architecture-terminology.md) - [Roadmap](overview/roadmap.md) + - [Vision](overview/vision.md) - Getting started - [Running Backstage locally](getting-started/index.md) - [Installation](getting-started/installation.md) diff --git a/docs/overview/roadmap.md b/docs/overview/roadmap.md index 6acea71509..97020a3a22 100644 --- a/docs/overview/roadmap.md +++ b/docs/overview/roadmap.md @@ -3,37 +3,66 @@ id: roadmap title: Project roadmap --- -We created Backstage about 4 years ago. While our internal version of Backstage -has had the benefit of time to mature and evolve, the first iteration of our -open source version is still nascent. We are envisioning three phases of the -project and we have already begun work on various aspects of these phases: +## Current status + +Backstage is currently in Alpha. This means that you can expect APIs and +features to change until we reach our +[Backstage Beta milestone](https://github.com/spotify/backstage/milestone/19). +Before we have API stability, plugins will need ongoing maintenance. It is also +recommended that teams who adopt Backstage today upgrades their installation as +new [releases](https://github.com/spotify/backstage/releases) are available. + +## Phases + +We have divided the project into three high-level _phases_ and we have already +begun work on various aspects of these phases: - 🣠**Phase 1:** Extensible frontend platform (Done ✅) - You will be able to easily create a single consistent UI layer for your internal infrastructure and tools. A set of reusable - [UX patterns and components](http://backstage.io/storybook) help ensure a + [UX patterns and components](https://backstage.io/storybook) help ensure a consistent experience between tools. - 🢠**Phase 2:** Service Catalog ([alpha released](https://backstage.io/blog/2020/06/22/backstage-service-catalog-alpha)) - With a single catalog, Backstage makes it easy for a team to manage ten services — and makes it possible for your company to manage thousands of them. - Developers can get a uniform overview of all their software and related - resources, regardless of how and where they are running, as well as an easy - way to onboard and manage those resources. - 🇠**Phase 3:** Ecosystem (later) - Everyone's infrastructure stack is different. By fostering a vibrant community of contributors we hope to provide an ecosystem of Open Source plugins/integrations that allows you to pick the tools that match your stack. -Check out our [Milestones](https://github.com/spotify/backstage/milestones) and -open [RFCs](https://github.com/spotify/backstage/labels/rfc) how they relate to -the three Phases outlined above. +## Detailed roadmap -Our vision for Backstage is for it to become the trusted standard toolbox (read: -UX layer) for the open source infrastructure landscape. Think of it like -Kubernetes for developer experience. We realize this is an ambitious goal. We -can’t do it alone. If this sounds interesting or you'd like to help us shape our -product vision, we'd love to talk. You can email me directly: -[alund@spotify.com](mailto:alund@spotify.com). +### Ongoing work 🚧 + +- [Plugins for managing micro services end-2-end](https://github.com/spotify/backstage/milestone/14) +- [TechDocs v1](https://github.com/spotify/backstage/milestone/16) +- [Initial GraphQL API](https://github.com/spotify/backstage/milestone/13) +- Backstage Design Language System (DLS) +- Cloud Cost Insights plugin (from Spotify) +- Further improvements to platform documentation + +### Future work 🔮 + +- [Backstage Beta](https://github.com/spotify/backstage/milestone/19) +- [Global search](https://github.com/spotify/backstage/issues/1499) +- [[TechDocs V.2] Stabilization release](https://github.com/spotify/backstage/milestone/17) +- Deploy a product demo at `demo.backstage.io` +- Plugin marketplace + +### Completed milestones ✅ + +- [Improved and move documentation to backstage.io](https://backstage.io/docs/overview/what-is-backstage) +- [Backstage Service Catalog (alpha)](https://backstage.io/blog/2020/06/22/backstage-service-catalog-alpha) +- [Backstage Software Templates (alpha)](https://backstage.io/blog/2020/08/05/announcing-backstage-software-templates) +- [Make it possible to add custom auth providers](https://backstage.io/blog/2020/07/01/how-to-enable-authentication-in-backstage-using-passport) +- [TechDocs v0](https://github.com/spotify/backstage/milestone/15) +- CI plugins: CircleCI, Jenkins, GitHub Actions and TravisCI +- [Service API documentation](https://github.com/spotify/backstage/pull/1737) +- Backstage Service Catalog can read from: GitHub, GitLab, + [Bitbucket](https://github.com/spotify/backstage/pull/1938) +- Support auth providers: Google, Okta, GitHub, GitLab, + [auth0](https://github.com/spotify/backstage/pull/1611), + [AWS](https://github.com/spotify/backstage/pull/1990) diff --git a/docs/overview/vision.md b/docs/overview/vision.md new file mode 100644 index 0000000000..2ab7cdc6f4 --- /dev/null +++ b/docs/overview/vision.md @@ -0,0 +1,21 @@ +--- +id: vision +title: Vision +--- + +Our goal is to provide engineers with the best developer experience in the +world. + +A fantastic developer experience leads to happy, creative and productive +engineers. Our belief is that engineers should not have to be experts in various +infrastructure tools to be productive. Infrastructure should be abstracted away +so that you can return to building and scaling, quickly and safely. + +![](https://backstage.io/animations/backstage-logos-hero-8.gif) + +We are working on making Backstage the trusted standard toolbox (read: UX layer) +for the open source infrastructure landscape. Think of it like Kubernetes for +developer experience. We realize this is an ambitious goal. We can’t do it +alone. If this sounds interesting or you'd like to help us shape our product +vision, we'd love to talk. You can email me directly: +[alund@spotify.com](mailto:alund@spotify.com). diff --git a/docs/overview/what-is-backstage.md b/docs/overview/what-is-backstage.md index 163b6c219b..665e172c0b 100644 --- a/docs/overview/what-is-backstage.md +++ b/docs/overview/what-is-backstage.md @@ -28,9 +28,6 @@ Out of the box, Backstage includes: [open source plugins](https://github.com/spotify/backstage/tree/master/plugins) that further expand Backstage’s customizability and functionality -For more information go to [backstage.io](https://backstage.io) or join our -[Discord chatroom](https://discord.gg/EBHEGzX). - ### Benefits - For _engineering managers_, it allows you to maintain standards and best @@ -45,3 +42,6 @@ For more information go to [backstage.io](https://backstage.io) or join our - For _everyone_, it’s a single, consistent experience that ties all your infrastructure tooling, resources, standards, owners, contributors, and administrators together in one place. + +If you have questions or want support, please join our +[Discord chatroom](https://discord.gg/EBHEGzX). diff --git a/microsite/README copy.md b/microsite/README copy.md deleted file mode 100644 index d7187888a3..0000000000 --- a/microsite/README copy.md +++ /dev/null @@ -1,182 +0,0 @@ -This website was created with [Docusaurus](https://docusaurus.io/). - -# What's In This Document - -- [Get Started in 5 Minutes](#get-started-in-5-minutes) -- [Directory Structure](#directory-structure) -- [Editing Content](#editing-content) -- [Adding Content](#adding-content) -- [Full Documentation](#full-documentation) - -## Directory Structure - -Your project file structure should look something like this - -``` -my-docusaurus/ - docs/ - doc-1.md - doc-2.md - doc-3.md - website/ - blog/ - 2016-3-11-oldest-post.md - 2017-10-24-newest-post.md - core/ - node_modules/ - pages/ - static/ - css/ - img/ - package.json - sidebars.json - siteConfig.js -``` - -# Editing Content - -## Editing an existing docs page - -Edit docs by navigating to `docs/` and editing the corresponding document: - -`docs/doc-to-be-edited.md` - -```markdown ---- -id: page-needs-edit -title: This Doc Needs To Be Edited ---- - -Edit me... -``` - -For more information about docs, click [here](https://docusaurus.io/docs/en/navigation) - -## Editing an existing blog post - -Edit blog posts by navigating to `website/blog` and editing the corresponding post: - -`website/blog/post-to-be-edited.md` - -```markdown ---- -id: post-needs-edit -title: This Blog Post Needs To Be Edited ---- - -Edit me... -``` - -For more information about blog posts, click [here](https://docusaurus.io/docs/en/adding-blog) - -# Adding Content - -## Adding a new docs page to an existing sidebar - -1. Create the doc as a new markdown file in `/docs`, example `docs/newly-created-doc.md`: - -```md ---- -id: newly-created-doc -title: This Doc Needs To Be Edited ---- - -My new content here.. -``` - -1. Refer to that doc's ID in an existing sidebar in `website/sidebars.json`: - -```javascript -// Add newly-created-doc to the Getting Started category of docs -{ - "docs": { - "Getting Started": [ - "quick-start", - "newly-created-doc" // new doc here - ], - ... - }, - ... -} -``` - -For more information about adding new docs, click [here](https://docusaurus.io/docs/en/navigation) - -## Adding a new blog post - -1. Make sure there is a header link to your blog in `website/siteConfig.js`: - -`website/siteConfig.js` - -```javascript -headerLinks: [ - ... - { blog: true, label: 'Blog' }, - ... -] -``` - -2. Create the blog post with the format `YYYY-MM-DD-My-Blog-Post-Title.md` in `website/blog`: - -`website/blog/2018-05-21-New-Blog-Post.md` - -```markdown ---- -author: Frank Li -authorURL: https://twitter.com/foobarbaz -authorFBID: 503283835 -title: New Blog Post ---- - -Lorem Ipsum... -``` - -For more information about blog posts, click [here](https://docusaurus.io/docs/en/adding-blog) - -## Adding items to your site's top navigation bar - -1. Add links to docs, custom pages or external links by editing the headerLinks field of `website/siteConfig.js`: - -`website/siteConfig.js` - -```javascript -{ - headerLinks: [ - ... - /* you can add docs */ - { doc: 'my-examples', label: 'Examples' }, - /* you can add custom pages */ - { page: 'help', label: 'Help' }, - /* you can add external links */ - { href: 'https://github.com/facebook/docusaurus', label: 'GitHub' }, - ... - ], - ... -} -``` - -For more information about the navigation bar, click [here](https://docusaurus.io/docs/en/navigation) - -## Adding custom pages - -1. Docusaurus uses React components to build pages. The components are saved as .js files in `website/pages/en`: -1. If you want your page to show up in your navigation header, you will need to update `website/siteConfig.js` to add to the `headerLinks` element: - -`website/siteConfig.js` - -```javascript -{ - headerLinks: [ - ... - { page: 'my-new-custom-page', label: 'My New Custom Page' }, - ... - ], - ... -} -``` - -For more information about custom pages, click [here](https://docusaurus.io/docs/en/custom-pages). - -# Full Documentation - -Full documentation can be found on the [website](https://docusaurus.io/). diff --git a/microsite/core/Footer.js b/microsite/core/Footer.js index c44b8196a6..407bebca84 100644 --- a/microsite/core/Footer.js +++ b/microsite/core/Footer.js @@ -32,22 +32,15 @@ class Footer extends React.Component {
Community
@@ -55,18 +48,6 @@ class Footer extends React.Component { Subscribe to our newsletter - {/* -
Docs
- - Developing a Plugin - - - API Overview - - - Layout Components - - */}
More
diff --git a/microsite/i18n/en.json b/microsite/i18n/en.json index af891426db..40ad25fe53 100644 --- a/microsite/i18n/en.json +++ b/microsite/i18n/en.json @@ -186,6 +186,9 @@ "overview/support": { "title": "Support and community" }, + "overview/vision": { + "title": "Vision" + }, "overview/what-is-backstage": { "title": "What is Backstage?" }, diff --git a/microsite/sidebars.json b/microsite/sidebars.json index d407340471..b07f326086 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -4,7 +4,8 @@ "overview/what-is-backstage", "overview/architecture-overview", "overview/architecture-terminology", - "overview/roadmap" + "overview/roadmap", + "overview/vision" ], "Getting Started": [ "getting-started/index", diff --git a/mkdocs.yml b/mkdocs.yml index 27335903de..085d83b7cc 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -7,6 +7,7 @@ nav: - Backstage architecture: 'overview/architecture-overview.md' - Architecture and terminology: 'overview/architecture-terminology.md' - Roadmap: 'overview/roadmap.md' + - Vision: 'overview/vision.md' - Getting started: - Running Backstage locally: 'getting-started/index.md' - Installation: 'getting-started/installation.md' From 547d0a1390bac0f09ca1fd42267fcdbd51212b12 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 18 Aug 2020 12:08:38 +0200 Subject: [PATCH 060/656] auth-backend: nicer error message for missing env query --- plugins/auth-backend/src/lib/EnvironmentHandler.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/auth-backend/src/lib/EnvironmentHandler.ts b/plugins/auth-backend/src/lib/EnvironmentHandler.ts index fb39ed86b8..53e56a7420 100644 --- a/plugins/auth-backend/src/lib/EnvironmentHandler.ts +++ b/plugins/auth-backend/src/lib/EnvironmentHandler.ts @@ -19,6 +19,7 @@ import { AuthProviderRouteHandlers, EnvironmentIdentifierFn, } from '../providers/types'; +import { InputError } from '@backstage/backend-common'; export type EnvironmentHandlers = { [key: string]: AuthProviderRouteHandlers; @@ -37,7 +38,11 @@ export class EnvironmentHandler implements AuthProviderRouteHandlers { ): AuthProviderRouteHandlers | undefined { const env: string | undefined = this.envIdentifier(req); - if (env && this.providers.hasOwnProperty(env)) { + if (!env) { + throw new InputError(`Must specify 'env' query to select environment`); + } + + if (this.providers.hasOwnProperty(env)) { return this.providers[env]; } From 5c8c0e7499e606cb56fd984e09dd9d4bb7889791 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 18 Aug 2020 12:09:09 +0200 Subject: [PATCH 061/656] yarn.lock: sync --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 58084fb145..515104c0da 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9470,7 +9470,7 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -docusaurus@2.0.0-alpha.61: +docusaurus@^2.0.0-alpha.61: version "2.0.0-alpha.61" resolved "https://registry.npmjs.org/docusaurus/-/docusaurus-2.0.0-alpha.61.tgz#f347b81c98c66f1de3ecfccf63fa421ddff52fbb" integrity sha512-qDU3nOA4Xs95tIjjSETnEuRmTukTzgxyTZ5MgMyuG7y6h4oDHtpLcYf8F+xlXuuWHKv3VSxRJNzV8fZHPgnK3g== From fe3d94272eb418e6b32ff8188f02316fac17202e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 18 Aug 2020 15:48:52 +0200 Subject: [PATCH 062/656] chore(deps): bump yup from 0.29.1 to 0.29.3 (#2003) Bumps [yup](https://github.com/jquense/yup) from 0.29.1 to 0.29.3. - [Release notes](https://github.com/jquense/yup/releases) - [Changelog](https://github.com/jquense/yup/blob/master/CHANGELOG.md) - [Commits](https://github.com/jquense/yup/compare/v0.29.1...v0.29.3) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/yarn.lock b/yarn.lock index 515104c0da..3ab06f55b6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1447,10 +1447,10 @@ 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.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.4", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2", "@babel/runtime@^7.9.6": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz#303d8bd440ecd5a491eae6117fd3367698674c5c" - integrity sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.10.5", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.4", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.11.2" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" + integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== dependencies: regenerator-runtime "^0.13.4" @@ -21447,10 +21447,10 @@ symbol.prototype.description@^1.0.0: es-abstract "^1.17.0-next.1" has-symbols "^1.0.1" -synchronous-promise@^2.0.10: - version "2.0.11" - resolved "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.11.tgz#e92022b0754e916f556d3ace1626d24a24214b7e" - integrity sha512-8/L5FOCjnlK0FoAfj+NqdCaImMKvEyOEzGmdfcezKp5K9HIukm4akx72endvM87eS/gU8kOxiMQflpC/CdkQAg== +synchronous-promise@^2.0.13: + version "2.0.13" + resolved "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.13.tgz#9d8c165ddee69c5a6542862b405bc50095926702" + integrity sha512-R9N6uDkVsghHePKh1TEqbnLddO2IY25OcsksyFp/qBe7XYd0PVbKEWxhcdMhpLzE1I6skj5l4aEZ3CRxcbArlA== table@^5.2.3: version "5.4.6" @@ -23574,16 +23574,16 @@ yn@^4.0.0: integrity sha512-huWiiCS4TxKc4SfgmTwW1K7JmXPPAmuXWYy4j9qjQo4+27Kni8mGhAAi1cloRWmBe2EqcLgt3IGqQoRL/MtPgg== yup@^0.29.1: - version "0.29.1" - resolved "https://registry.npmjs.org/yup/-/yup-0.29.1.tgz#35d25aab470a0c3950f66040ba0ff4b1b6efe0d9" - integrity sha512-U7mPIbgfQWI6M3hZCJdGFrr+U0laG28FxMAKIgNvgl7OtyYuUoc4uy9qCWYHZjh49b8T7Ug8NNDdiMIEytcXrQ== + version "0.29.3" + resolved "https://registry.npmjs.org/yup/-/yup-0.29.3.tgz#69a30fd3f1c19f5d9e31b1cf1c2b851ce8045fea" + integrity sha512-RNUGiZ/sQ37CkhzKFoedkeMfJM0vNQyaz+wRZJzxdKE7VfDeVKH8bb4rr7XhRLbHJz5hSjoDNwMEIaKhuMZ8gQ== dependencies: - "@babel/runtime" "^7.9.6" + "@babel/runtime" "^7.10.5" fn-name "~3.0.0" lodash "^4.17.15" lodash-es "^4.17.11" property-expr "^2.0.2" - synchronous-promise "^2.0.10" + synchronous-promise "^2.0.13" toposort "^2.0.2" zen-observable-ts@^0.8.21: From b19fa4a559967f0324dea2c4b350645cfe80f9cf Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 18 Aug 2020 15:49:21 +0200 Subject: [PATCH 063/656] chore(deps): bump @rjsf/material-ui from 2.1.0 to 2.3.0 (#1979) Bumps [@rjsf/material-ui](https://github.com/rjsf-team/react-jsonschema-form) from 2.1.0 to 2.3.0. - [Release notes](https://github.com/rjsf-team/react-jsonschema-form/releases) - [Commits](https://github.com/rjsf-team/react-jsonschema-form/compare/v2.1.0...v2.3.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3ab06f55b6..cb089c9cb7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3304,9 +3304,9 @@ shortid "^2.2.14" "@rjsf/material-ui@^2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/@rjsf/material-ui/-/material-ui-2.1.0.tgz#a361b125af3a383b7f671634b8d254345f9f9311" - integrity sha512-9mMttnPNP6GiP7BtZGimYcYsbWwjyviqg/PD8oxrkEtZykULXOIdC3WDMJ3nPSym8RvZsgSnB8bajCpa5iSYQQ== + version "2.3.0" + resolved "https://registry.npmjs.org/@rjsf/material-ui/-/material-ui-2.3.0.tgz#a051eb4db2ad778e39933a31ba806f415dd3ba90" + integrity sha512-v/xZ4Xk18ZgBARcCe99IDqdO97GU0UC784gG8PhGGFDdy5Rbdy7ixTjHkGYttkr43PB7SX6ttohNhkKSW4nATQ== "@roadiehq/backstage-plugin-travis-ci@^0.1.3": version "0.1.3" From e3d2e98df487b93676fda6544f07ea49f2a298a4 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 18 Aug 2020 15:49:45 +0200 Subject: [PATCH 064/656] chore(deps-dev): bump @types/webpack from 4.41.17 to 4.41.21 (#2006) Bumps [@types/webpack](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/webpack) from 4.41.17 to 4.41.21. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/webpack) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index cb089c9cb7..eefb373aa1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5323,9 +5323,9 @@ source-map "^0.6.1" "@types/webpack@*", "@types/webpack@^4.41.7", "@types/webpack@^4.41.8": - version "4.41.17" - resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.17.tgz#0a69005e644d657c85b7d6ec1c826a71bebd1c93" - integrity sha512-6FfeCidTSHozwKI67gIVQQ5Mp0g4X96c2IXxX75hYEQJwST/i6NyZexP//zzMOBb+wG9jJ7oO8fk9yObP2HWAw== + version "4.41.21" + resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.21.tgz#cc685b332c33f153bb2f5fc1fa3ac8adeb592dee" + integrity sha512-2j9WVnNrr/8PLAB5csW44xzQSJwS26aOnICsP3pSGCEdsu6KYtfQ6QJsVUKHWRnm1bL7HziJsfh5fHqth87yKA== dependencies: "@types/anymatch" "*" "@types/node" "*" From cf53a1666d72376c0ac9d504b7ec8abe005a93bf Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 18 Aug 2020 15:50:16 +0200 Subject: [PATCH 065/656] chore(deps-dev): bump @storybook/addons from 6.0.4 to 6.0.12 (#2002) Bumps [@storybook/addons](https://github.com/storybookjs/storybook/tree/HEAD/lib/addons) from 6.0.4 to 6.0.12. - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v6.0.12/lib/addons) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 78 +++++++++++++++++++++++++++---------------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/yarn.lock b/yarn.lock index eefb373aa1..9d0232337f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3536,16 +3536,16 @@ util-deprecate "^1.0.2" "@storybook/addons@^6.0.4": - version "6.0.4" - resolved "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.4.tgz#ee240b77a2c33dfabe4415a4a23c6937bc31c8aa" - integrity sha512-WBkhS2F2gPCqH6SWYaaBgR0xDZ19vrLExfYp1ULof2KMtsKKPQqR6bGF0D5ijLXonea/aemIc50GMhVtLR2qfg== + version "6.0.12" + resolved "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.12.tgz#f57f89e0aa55febfb5437ddc2628a0ccc9f44f44" + integrity sha512-gVCyWK4jys5cUY0d3/Bxi02oeCsgdi6xVvA+T4v+SgeduAfm/k01tdO2qDXL37Sl+2TT9HBQGazDrsIUW4d7Ug== dependencies: - "@storybook/api" "6.0.4" - "@storybook/channels" "6.0.4" - "@storybook/client-logger" "6.0.4" - "@storybook/core-events" "6.0.4" - "@storybook/router" "6.0.4" - "@storybook/theming" "6.0.4" + "@storybook/api" "6.0.12" + "@storybook/channels" "6.0.12" + "@storybook/client-logger" "6.0.12" + "@storybook/core-events" "6.0.12" + "@storybook/router" "6.0.12" + "@storybook/theming" "6.0.12" core-js "^3.0.1" global "^4.3.2" regenerator-runtime "^0.13.3" @@ -3576,19 +3576,19 @@ telejson "^3.2.0" util-deprecate "^1.0.2" -"@storybook/api@6.0.4": - version "6.0.4" - resolved "https://registry.npmjs.org/@storybook/api/-/api-6.0.4.tgz#bf62c1a0092066a4836c1cf516f7780b13e03f37" - integrity sha512-hQuctJcYAGk946B4Qw/TPeYGDhou0fCVSjmrjakaFIQlaExAuq5gZARBPE/iPIvuVNEfIJUz5R8fbMJtJ5NH7w== +"@storybook/api@6.0.12": + version "6.0.12" + resolved "https://registry.npmjs.org/@storybook/api/-/api-6.0.12.tgz#d6ded5c9ac8f989c4915e11a80a4db69341fc95f" + integrity sha512-8+jPtfhUVM1hT22OT4rjHRxkW924gbWrAxCFYUXOw80a0x7BcT4sL2ah1D4FWf0IpCT/onLf9jLvSVXr8V0xOw== dependencies: "@reach/router" "^1.3.3" - "@storybook/channels" "6.0.4" - "@storybook/client-logger" "6.0.4" - "@storybook/core-events" "6.0.4" + "@storybook/channels" "6.0.12" + "@storybook/client-logger" "6.0.12" + "@storybook/core-events" "6.0.12" "@storybook/csf" "0.0.1" - "@storybook/router" "6.0.4" + "@storybook/router" "6.0.12" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.0.4" + "@storybook/theming" "6.0.12" "@types/reach__router" "^1.3.5" core-js "^3.0.1" fast-deep-equal "^3.1.1" @@ -3620,10 +3620,10 @@ dependencies: core-js "^3.0.1" -"@storybook/channels@6.0.4": - version "6.0.4" - resolved "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.4.tgz#c47766961a8bad61db706cfdda5511c741aa215a" - integrity sha512-8yOc9NFbtrw+30wCHABgobRVyBnDnQcueLH4KYWHKwlgK3IKBFF6g0dnlTgi9HSwkK1B1Rqmt00oJKnwZmNYCw== +"@storybook/channels@6.0.12": + version "6.0.12" + resolved "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.12.tgz#377f8049272f1862f9235a5051d95124d53fa08e" + integrity sha512-0EMtjde4tRrBnJj5jOXSgtMYfMxGZgoe/0hvVSJuOABf0FY5x6xrqNNDfory7+TtgieuoQE4idl2/tdHE6QJJA== dependencies: core-js "^3.0.1" ts-dedent "^1.1.1" @@ -3659,10 +3659,10 @@ dependencies: core-js "^3.0.1" -"@storybook/client-logger@6.0.4": - version "6.0.4" - resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.4.tgz#85e82a68c0456dd829852ef4ef92d2f055b08ed8" - integrity sha512-fNw5iIptcNZBmazDc+JdwXX63UATg+/1tbSoVy8N/ntkh7Ttb21QmvurdHVtElipQIJEt+e7NYCw3x7uM49FFw== +"@storybook/client-logger@6.0.12": + version "6.0.12" + resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.12.tgz#33b4c3cd1f1d98dab32d8c8c906301f1ab18f969" + integrity sha512-MEFDlBbbqcivF/Xmxitx/ky8kxN7TVBZ7K754/pPEI5q6UW32DecJIRg79UWp/1nBPMX/A0U3ORwv+0MjgDZBQ== dependencies: core-js "^3.0.1" global "^4.3.2" @@ -3701,10 +3701,10 @@ dependencies: core-js "^3.0.1" -"@storybook/core-events@6.0.4": - version "6.0.4" - resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.4.tgz#6ecde97cc5d0a0dd3e1b4c2358586998ae81d8f4" - integrity sha512-iMLPVIioD1/CUchm3NUB4ou8IchT+E36YSFZnlitof6HJKZbdpq+cFdVXrPGm/OdwUokgx63tWob3t0QaVRMcg== +"@storybook/core-events@6.0.12": + version "6.0.12" + resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.12.tgz#499ae06092103b149fcd9417d8e0baa356adc2c0" + integrity sha512-52yNnp+dBkHiG9S+rQO7Nv3PdSDi0XnBt7FoQ+v8H31vGpgdBLEhy8w5ZA4eTrL951VaU/4/XoOaG2+yPALaoA== dependencies: core-js "^3.0.1" @@ -3848,10 +3848,10 @@ qs "^6.6.0" util-deprecate "^1.0.2" -"@storybook/router@6.0.4": - version "6.0.4" - resolved "https://registry.npmjs.org/@storybook/router/-/router-6.0.4.tgz#8b9727dd8a966129311615288174e03131792d0f" - integrity sha512-+XFRbRuEWhGKemc2ihIxGVMlQ4kyQ0Al1E9Lx7gDdiq6BjClhEsxmxHb/dqpcSlIw4QCVcINj9zZ6htur0w25w== +"@storybook/router@6.0.12": + version "6.0.12" + resolved "https://registry.npmjs.org/@storybook/router/-/router-6.0.12.tgz#f66d979ec01e15c11a378eb5dde3e696747ac184" + integrity sha512-vv1jHOOGelSzmDJnp9SdC/KR5RpE2am568ImOAQ9/XCmXNDhVshVlIS7ajy6yCKN/mS/63zKflbRNef+3SLU9Q== dependencies: "@reach/router" "^1.3.3" "@types/reach__router" "^1.3.5" @@ -3902,15 +3902,15 @@ resolve-from "^5.0.0" ts-dedent "^1.1.0" -"@storybook/theming@6.0.4": - version "6.0.4" - resolved "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.4.tgz#cfcb77fff483a8963b0a2033b14dd1c3588412ae" - integrity sha512-iMH5jh28yp9fvI3hgnAvauGEOUj1ZerwAlbYGyrOY/qlAirfso9jX7Fp5x2gpvshFIjCgLXLeOXH+zLZJ8gBmg== +"@storybook/theming@6.0.12": + version "6.0.12" + resolved "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.12.tgz#83b2099e7a7a5bd3acadb8e4106234ede62197c7" + integrity sha512-hmF6EIbm2A7G84+JR36UQWteElSwSNfGLzccAlUMiZIhdMG0SuCtyHe6FmckAWC226Mv+MW14fr+a4+OuRpM4g== dependencies: "@emotion/core" "^10.0.20" "@emotion/is-prop-valid" "^0.8.6" "@emotion/styled" "^10.0.17" - "@storybook/client-logger" "6.0.4" + "@storybook/client-logger" "6.0.12" core-js "^3.0.1" deep-object-diff "^1.1.0" emotion-theming "^10.0.19" From 38e185b2beaffb6d296ac4538f6cf7486f1c592b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 18 Aug 2020 15:50:43 +0200 Subject: [PATCH 066/656] docs(auth-backend): some minor tweaks (#1989) --- docs/auth/auth-backend-classes.md | 92 ++++++++++++++++--------------- 1 file changed, 47 insertions(+), 45 deletions(-) diff --git a/docs/auth/auth-backend-classes.md b/docs/auth/auth-backend-classes.md index 1a476fa2f0..42ee48c5e0 100644 --- a/docs/auth/auth-backend-classes.md +++ b/docs/auth/auth-backend-classes.md @@ -1,11 +1,11 @@ -# Authentication backend class layout and description. +# Authentication Backend Classes Layout and Description -## How does authentication work ? +## How Does Authentication Work? -The Backstage application can use various authentication `providers` for -authentication. A provider has to implement an `AuthProviderRouterHandlers` -interface for handling authentication. This interface consists of 4 methods. -Each of this method is hosted at an endpoint `/auth/[provider]/method`, where +The Backstage application can use various authentication providers for +authentication. A provider has to implement an `AuthProviderRouteHandlers` +interface for handling authentication. This interface consists of four methods. +Each of these methods is hosted at an endpoint `/auth/[provider]/method`, where `method` performs a certain operation as follows: ``` @@ -16,44 +16,45 @@ Each of this method is hosted at an endpoint `/auth/[provider]/method`, where ``` For more information on how these methods are used and for which purpose, refer -to the documentation [here](oauth.md) +to the documentation [here](oauth.md). For details on the parameters, input and output conditions for each method, refer to the type documentation under -`backstage/plugins/auth-backend/src/providers/types.ts` +`plugins/auth-backend/src/providers/types.ts`. -There are currently 2 different classes for 2 authentication mechanisms that -implement this interface: `OAuthProvider` for `OAuth` based Mechanism and a -`SAMLAuthProvider` for a `SAML` based mechanism +There are currently two different classes for two authentication mechanisms that +implement this interface: an `OAuthProvider` for [OAuth](https://oauth.net/2/) +based mechanisms and a `SAMLAuthProvider` for +[SAML](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html) +based mechanisms. -### `OAuth` mechanisms +### OAuth mechanisms -Currently `OAuth` is assumed to be the defacto authentication mechanism for -backstage based applications. +Currently OAuth is assumed to be the de facto authentication mechanism for +Backstage based applications. -Backstage comes with `batteries-included` set of OAuth Providers for some -commonly used Providers : `Okta`, `Github`, `Google` , `Gitlab` and a generic -`oauth2` provider. +Backstage comes with a "batteries-included" set of supported commonly used OAuth +providers: Okta, Github, Google, Gitlab, and a generic OAuth2 provider. -All of these use the `authorization` flow of OAuth2 to implement authentication. +All of these use the authorization flow of OAuth2 to implement authentication. -If your `authentication` provider is any of the above mentioned (except -`oauth2`) providers, you can configure them by setting the right variables in -`app-config.yaml` under then `auth` section. +If your authentication provider is any of the above mentioned (except generic +OAuth2) providers, you can configure them by setting the right variables in +`app-config.yaml` under the `auth` section. ### Configuration -Each authentication (except SAML )provider needs 5 parameters: an `oauth` -client_id, client_secret, an authorization endpoint and a token endpoint, and an -app origin. The `appOrigin` value is the URL at which the frontend of the -application is hosted. This is required because, the application opens a popup -window to perform the authentication and once the flow is completed, the popup +Each authentication provider (except SAML) needs five parameters: an OAuth +client ID, a client secret, an authorization endpoint and a token endpoint, and +an app origin. The app origin is the URL at which the frontend of the +application is hosted. This is required because the application opens a popup +window to perform the authentication, and once the flow is completed, the popup window sends a `postMessage` to the frontend application to indicate the result of the operation. Also this URL is used to verify that authentication requests are coming from only this endpoint. These values are configured via the `app-config.yaml` present in the root of -your app folder +your app folder. ``` auth: @@ -87,36 +88,37 @@ auth: secure: false clientId: $secret: + ... ``` -## Technical notes +## Technical Notes ### EnvironmentHandler -The concept of an `env` is core to the way the `auth-backend` works. `Spotify` -uses an `env` query parameter to identify the environment in which the -application is running (`dev`, `staging`, `prod`, etc). Each runtime can support +The concept of an "env" is core to the way the auth backend works. It uses an +`env` query parameter to identify the environment in which the application is +running (`development`, `staging`, `production`, etc). Each runtime can support multiple environments at the same time and the right handler for each request is identified and dispatched to based on the `env` parameter. All -`AuthProviderRouterHandlers` are wrapped within a `EnvironmentHandler`. +`AuthProviderRouteHandlers` are wrapped within an `EnvironmentHandler`. -An `EnvironmentHandler` takes an `id` for each provider that it wraps, the -handlers for each of the `env` the provider is supported in, and a `function` -that given a `Request` as argument, can extract the information about the `env` -under which it should be processed. +An `EnvironmentHandler` takes an ID for each provider that it wraps, the +handlers for each env the provider is supported in, and a function that, given a +`Request` as argument, can extract the information about the env under which it +should be processed. -Each provider exposes a factory function `createXProvider` (where X = name of -the Provider) that takes the globalconfig, env and other parameters and returns -a `AuthProviderRouteHandler` for each env, AND, a `envIdentifier` fn to identify -the `env` in a request. +Each provider exposes a factory function `createXProvider` (where X is the name +of the provider) that takes the global config, env and other parameters and +returns an `AuthProviderRouteHandlers` for each env, and an `envIdentifier` +function to identify the env of a request. For a list of currently available providers, look in the `factories` module -located in `backstage/plugins/auth-backend/src/providers/factories.ts` +located in `plugins/auth-backend/src/providers/factories.ts` -### `oauth2` provider +### OAuth2 provider -The `oauth2` provider abstracts a generic **OAuth2+OIDC** based authentication +The `oauth2` provider abstracts a generic **OAuth2 + OIDC** based authentication provider. What this means is that after the application has been given -permission by the user, the`authorization code` will be exchanged for an -`access_token` , a `refresh_token` and an `id_token`. This `id_token` is used to +permission by the user, the `authorization code` will be exchanged for an +`access_token`, a `refresh_token` and an `id_token`. This `id_token` is used to obtain an email id of the user, which is then used for creating the session. From 141bb0b9ab3c902b0c7715e606b251a2fd4ac7ef Mon Sep 17 00:00:00 2001 From: "toban@dfds.com" Date: Tue, 18 Aug 2020 16:53:37 +0200 Subject: [PATCH 067/656] =triggering checks to see why CLI tests timed out --- app-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app-config.yaml b/app-config.yaml index f3b3b8d00c..0e94367aa1 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -19,7 +19,7 @@ backend: # algorithm: sha256 # days: 30 # attributes: - # commonName: 'contoso.com' + # commonName: 'dfds.com' proxy: '/circleci/api': From 044a2e2eab31b3cd6a58f18df8971c0b1fe7aeb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Tue, 18 Aug 2020 17:16:28 +0200 Subject: [PATCH 068/656] Fix broken MD link in README (#2007) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 982997a347..ee9e85fd7f 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Backstage unifies all your infrastructure tooling, services, and documentation t Out of the box, Backstage includes: -- [Backstage Service Catalog]((https://backstage.io/docs/features/software-catalog/software-catalog-overview) for managing all your software (microservices, libraries, data pipelines, websites, ML models, etc.) +- [Backstage Service Catalog](https://backstage.io/docs/features/software-catalog/software-catalog-overview) for managing all your software (microservices, libraries, data pipelines, websites, ML models, etc.) - [Backstage Software Templates](https://backstage.io/docs/features/software-templates/software-templates-index) for quickly spinning up new projects and standardizing your tooling with your organization’s best practices - [Backstage TechDocs](https://backstage.io/docs/features/techdocs/techdocs-overview) for making it easy to create, maintain, find, and use technical documentation, using a "docs like code" approach - Plus, a growing ecosystem of [open source plugins](https://github.com/spotify/backstage/tree/master/plugins) that further expand Backstage’s customizability and functionality From 86eac5b4583c3e2e614865c8a2ead7568fe513c1 Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Tue, 18 Aug 2020 18:35:45 +0200 Subject: [PATCH 069/656] feat(catalog): add tags to entity metadata This add a field tags to the entity metadata to specifiy a user defined classifications. Closes #1997 --- .../software-catalog/descriptor-format.md | 17 +++++++++++++++++ packages/catalog-model/src/entity/Entity.ts | 6 ++++++ .../policies/FieldFormatEntityPolicy.test.ts | 8 ++++++++ .../entity/policies/FieldFormatEntityPolicy.ts | 6 ++++++ .../policies/ReservedFieldsEntityPolicy.test.ts | 3 +++ .../policies/ReservedFieldsEntityPolicy.ts | 1 + .../policies/SchemaValidEntityPolicy.test.ts | 8 ++++++++ .../entity/policies/SchemaValidEntityPolicy.ts | 1 + .../src/validation/makeValidator.ts | 1 + packages/catalog-model/src/validation/types.ts | 1 + 10 files changed, 52 insertions(+) diff --git a/docs/features/software-catalog/descriptor-format.md b/docs/features/software-catalog/descriptor-format.md index 4751bd88f7..a7d57890dc 100644 --- a/docs/features/software-catalog/descriptor-format.md +++ b/docs/features/software-catalog/descriptor-format.md @@ -42,6 +42,7 @@ software catalog API. "labels": { "system": "public-websites" }, + "tags": ["java"], "name": "artist-web", "uid": "2152f463-549d-4d8d-a94d-ce2b7676c6e2" }, @@ -66,6 +67,8 @@ metadata: annotations: example.com/service-discovery: artistweb circleci.com/project-slug: gh/example-org/artist-website + tags: + - java spec: type: website lifecycle: production @@ -232,6 +235,20 @@ The `backstage.io/` prefix is reserved for use by Backstage core components. Values can be of any length, but are limited to being strings. +### `tags` [optional] + +A list of single-valued strings, for example to classify catalog entities in +various ways. This is different to the labels in metadata, as labels are +key-value pairs. + +The values are user defined, for example the programming language used for the +component, like `java` or `go`. + +This field is optional, and currently has no special semantics. + +Each tag must be sequences of `[a-zA-Z0-9]` separated by `-`, at most 63 +characters in total. + ## Kind: Component Describes the following entity kind: diff --git a/packages/catalog-model/src/entity/Entity.ts b/packages/catalog-model/src/entity/Entity.ts index 4f245da8b7..7f323043b1 100644 --- a/packages/catalog-model/src/entity/Entity.ts +++ b/packages/catalog-model/src/entity/Entity.ts @@ -113,6 +113,12 @@ export type EntityMeta = JsonObject & { * entity. */ annotations?: Record; + + /** + * A list of single-valued strings, to for example classify catalog entities in + * various ways. + */ + tags?: string[]; }; /** diff --git a/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.test.ts b/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.test.ts index 80cf70fbab..edf04a64cc 100644 --- a/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.test.ts +++ b/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.test.ts @@ -35,6 +35,9 @@ describe('FieldFormatEntityPolicy', () => { backstage.io/custom: ValueStuff annotations: example.com/bindings: are-secret + tags: + - java + - data-service spec: custom: stuff `); @@ -102,4 +105,9 @@ describe('FieldFormatEntityPolicy', () => { data.metadata.annotations.a = 7; await expect(policy.enforce(data)).rejects.toThrow(/annotation.*7/i); }); + + it('rejects bad tag value', async () => { + data.metadata.tags.push('Hello World'); + await expect(policy.enforce(data)).rejects.toThrow(/tags.*"Hello World"/i); + }); }); diff --git a/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.ts b/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.ts index 4ccd8ec711..20a3724079 100644 --- a/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.ts +++ b/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.ts @@ -83,6 +83,12 @@ export class FieldFormatEntityPolicy implements EntityPolicy { require(`annotations.${k}`, v, this.validators.isValidAnnotationValue); } + const tags = entity.metadata.tags ?? []; + + for (let i = 0; i < tags.length; ++i) { + require(`tags.${i}`, tags[i], this.validators.isValidTag); + } + return entity; } } diff --git a/packages/catalog-model/src/entity/policies/ReservedFieldsEntityPolicy.test.ts b/packages/catalog-model/src/entity/policies/ReservedFieldsEntityPolicy.test.ts index 04acd58686..5d4e60a1a3 100644 --- a/packages/catalog-model/src/entity/policies/ReservedFieldsEntityPolicy.test.ts +++ b/packages/catalog-model/src/entity/policies/ReservedFieldsEntityPolicy.test.ts @@ -35,6 +35,9 @@ describe('ReservedFieldsEntityPolicy', () => { backstage.io/custom: ValueStuff annotations: example.com/bindings: are-secret + tags: + - java + - data spec: custom: stuff `); diff --git a/packages/catalog-model/src/entity/policies/ReservedFieldsEntityPolicy.ts b/packages/catalog-model/src/entity/policies/ReservedFieldsEntityPolicy.ts index bbe374e811..edb63cf05c 100644 --- a/packages/catalog-model/src/entity/policies/ReservedFieldsEntityPolicy.ts +++ b/packages/catalog-model/src/entity/policies/ReservedFieldsEntityPolicy.ts @@ -29,6 +29,7 @@ const DEFAULT_RESERVED_ENTITY_FIELDS: string[] = [ 'metadata.description', 'metadata.labels', 'metadata.annotations', + 'metadata.tags', // The below items are known to appear in core kinds, and therefore should // not be appearing in metadata (which would indicate that the user made a // mistake in where to place them). diff --git a/packages/catalog-model/src/entity/policies/SchemaValidEntityPolicy.test.ts b/packages/catalog-model/src/entity/policies/SchemaValidEntityPolicy.test.ts index 2113772af4..d63ba49dbe 100644 --- a/packages/catalog-model/src/entity/policies/SchemaValidEntityPolicy.test.ts +++ b/packages/catalog-model/src/entity/policies/SchemaValidEntityPolicy.test.ts @@ -36,6 +36,9 @@ describe('SchemaValidEntityPolicy', () => { backstage.io/custom: ValueStuff annotations: example.com/bindings: are-secret + tags: + - java + - data spec: custom: stuff `); @@ -190,6 +193,11 @@ describe('SchemaValidEntityPolicy', () => { await expect(policy.enforce(data)).rejects.toThrow(/annotations/); }); + it('rejects bad tags type', async () => { + data.metadata.tags = 7; + await expect(policy.enforce(data)).rejects.toThrow(/tags/); + }); + // // spec // diff --git a/packages/catalog-model/src/entity/policies/SchemaValidEntityPolicy.ts b/packages/catalog-model/src/entity/policies/SchemaValidEntityPolicy.ts index e901e82d8b..a6d376b4ac 100644 --- a/packages/catalog-model/src/entity/policies/SchemaValidEntityPolicy.ts +++ b/packages/catalog-model/src/entity/policies/SchemaValidEntityPolicy.ts @@ -31,6 +31,7 @@ const DEFAULT_ENTITY_SCHEMA = yup.object({ description: yup.string().notRequired(), labels: yup.object>().notRequired(), annotations: yup.object>().notRequired(), + tags: yup.array().notRequired(), }) .required(), spec: yup.object({}).notRequired(), diff --git a/packages/catalog-model/src/validation/makeValidator.ts b/packages/catalog-model/src/validation/makeValidator.ts index 7ca01365e0..3602c01a63 100644 --- a/packages/catalog-model/src/validation/makeValidator.ts +++ b/packages/catalog-model/src/validation/makeValidator.ts @@ -28,6 +28,7 @@ const defaultValidators: Validators = { isValidLabelValue: KubernetesValidatorFunctions.isValidLabelValue, isValidAnnotationKey: KubernetesValidatorFunctions.isValidAnnotationKey, isValidAnnotationValue: KubernetesValidatorFunctions.isValidAnnotationValue, + isValidTag: CommonValidatorFunctions.isValidDnsLabel, }; export function makeValidator(overrides: Partial = {}): Validators { diff --git a/packages/catalog-model/src/validation/types.ts b/packages/catalog-model/src/validation/types.ts index 81209bfb75..ff00036991 100644 --- a/packages/catalog-model/src/validation/types.ts +++ b/packages/catalog-model/src/validation/types.ts @@ -24,4 +24,5 @@ export type Validators = { isValidLabelValue(value: any): boolean; isValidAnnotationKey(value: any): boolean; isValidAnnotationValue(value: any): boolean; + isValidTag(value: any): boolean; }; From bd6195d79f43d0d299463bf3b8cb54f55108c449 Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Tue, 18 Aug 2020 18:36:05 +0200 Subject: [PATCH 070/656] test(catalog): add test-data for tags --- packages/catalog-model/examples/artist-lookup-component.yaml | 3 +++ packages/catalog-model/examples/podcast-api-component.yaml | 2 ++ packages/catalog-model/examples/queue-proxy-component.yaml | 3 +++ packages/catalog-model/examples/searcher-component.yaml | 2 ++ packages/catalog-model/examples/shuffle-api-component.yaml | 2 ++ packages/catalog-model/examples/streetlights-api.yaml | 2 ++ 6 files changed, 14 insertions(+) diff --git a/packages/catalog-model/examples/artist-lookup-component.yaml b/packages/catalog-model/examples/artist-lookup-component.yaml index 448dd13fa3..79dd3bccf6 100644 --- a/packages/catalog-model/examples/artist-lookup-component.yaml +++ b/packages/catalog-model/examples/artist-lookup-component.yaml @@ -3,6 +3,9 @@ kind: Component metadata: name: artist-lookup description: Artist Lookup + tags: + - java + - data spec: type: service lifecycle: experimental diff --git a/packages/catalog-model/examples/podcast-api-component.yaml b/packages/catalog-model/examples/podcast-api-component.yaml index 19f9a3d4de..c1b1c9281c 100644 --- a/packages/catalog-model/examples/podcast-api-component.yaml +++ b/packages/catalog-model/examples/podcast-api-component.yaml @@ -3,6 +3,8 @@ kind: Component metadata: name: podcast-api description: Podcast API + tags: + - java spec: type: service lifecycle: experimental diff --git a/packages/catalog-model/examples/queue-proxy-component.yaml b/packages/catalog-model/examples/queue-proxy-component.yaml index a9f41b8776..c9b130db52 100644 --- a/packages/catalog-model/examples/queue-proxy-component.yaml +++ b/packages/catalog-model/examples/queue-proxy-component.yaml @@ -3,6 +3,9 @@ kind: Component metadata: name: queue-proxy description: Queue Proxy + tags: + - go + - website spec: type: website lifecycle: production diff --git a/packages/catalog-model/examples/searcher-component.yaml b/packages/catalog-model/examples/searcher-component.yaml index 33d765117c..042fcb24a9 100644 --- a/packages/catalog-model/examples/searcher-component.yaml +++ b/packages/catalog-model/examples/searcher-component.yaml @@ -3,6 +3,8 @@ kind: Component metadata: name: searcher description: Searcher + tags: + - go spec: type: service lifecycle: production diff --git a/packages/catalog-model/examples/shuffle-api-component.yaml b/packages/catalog-model/examples/shuffle-api-component.yaml index 275c48d6ba..1f9de46d4e 100644 --- a/packages/catalog-model/examples/shuffle-api-component.yaml +++ b/packages/catalog-model/examples/shuffle-api-component.yaml @@ -3,6 +3,8 @@ kind: Component metadata: name: shuffle-api description: Shuffle API + tags: + - go spec: type: service lifecycle: production diff --git a/packages/catalog-model/examples/streetlights-api.yaml b/packages/catalog-model/examples/streetlights-api.yaml index 69a6d101cb..4aeef993bb 100644 --- a/packages/catalog-model/examples/streetlights-api.yaml +++ b/packages/catalog-model/examples/streetlights-api.yaml @@ -3,6 +3,8 @@ kind: API metadata: name: streetlights description: The Smartylighting Streetlights API allows you to remotely manage the city lights. + tags: + - unstable spec: type: asyncapi definition: | From f06588def71fd6abd5e1ad3a766460b501e5179c Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Tue, 18 Aug 2020 19:52:49 +0200 Subject: [PATCH 071/656] feat(catalog): show entity tags in the catalog table --- packages/core/src/components/Table/Table.tsx | 3 ++- .../components/CatalogTable/CatalogTable.tsx | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/packages/core/src/components/Table/Table.tsx b/packages/core/src/components/Table/Table.tsx index d200b07bc6..882272cb43 100644 --- a/packages/core/src/components/Table/Table.tsx +++ b/packages/core/src/components/Table/Table.tsx @@ -127,7 +127,8 @@ function convertColumns( ): TableColumn[] { return columns.map(column => { const headerStyle: React.CSSProperties = {}; - const cellStyle: React.CSSProperties = {}; + const cellStyle: React.CSSProperties = + typeof column.cellStyle === 'object' ? column.cellStyle : {}; if (column.highlight) { headerStyle.color = theme.palette.textContrast; diff --git a/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx b/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx index b5afbcaa0b..00dacdc0fe 100644 --- a/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx +++ b/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx @@ -15,7 +15,7 @@ */ import { Entity, LocationSpec } from '@backstage/catalog-model'; import { Table, TableColumn, TableProps } from '@backstage/core'; -import { Link } from '@material-ui/core'; +import { Link, Chip } from '@material-ui/core'; import Edit from '@material-ui/icons/Edit'; import GitHub from '@material-ui/icons/GitHub'; import { Alert } from '@material-ui/lab'; @@ -63,6 +63,21 @@ const columns: TableColumn[] = [ title: 'Description', field: 'metadata.description', }, + { + title: 'Tags', + field: 'metadata.tags', + cellStyle: { + padding: '0px 16px 0px 20px', + }, + render: (entity: Entity) => ( + <> + {entity.metadata.tags && + entity.metadata.tags.map(t => ( + + ))} + + ), + }, ]; type CatalogTableProps = { From 5e6f1c424839aee432b5cede42313619a0eecd33 Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Tue, 18 Aug 2020 21:57:37 +0200 Subject: [PATCH 072/656] feat(catalog): add filter by tags in the catalog --- .../components/CatalogPage/CatalogPage.tsx | 9 +- .../ResultsFilter/ResultsFilter.test.tsx | 102 +++++++++++++++ .../ResultsFilter/ResultsFilter.tsx | 120 ++++++++++++++++++ .../src/filter/EntityFilterGroupsProvider.tsx | 39 ++++++ plugins/catalog/src/filter/context.ts | 2 + .../catalog/src/filter/useFilteredEntities.ts | 1 + 6 files changed, 272 insertions(+), 1 deletion(-) create mode 100644 plugins/catalog/src/components/ResultsFilter/ResultsFilter.test.tsx create mode 100644 plugins/catalog/src/components/ResultsFilter/ResultsFilter.tsx diff --git a/plugins/catalog/src/components/CatalogPage/CatalogPage.tsx b/plugins/catalog/src/components/CatalogPage/CatalogPage.tsx index e58b2d407b..6a3d7362aa 100644 --- a/plugins/catalog/src/components/CatalogPage/CatalogPage.tsx +++ b/plugins/catalog/src/components/CatalogPage/CatalogPage.tsx @@ -35,6 +35,7 @@ import { CatalogTable } from '../CatalogTable/CatalogTable'; import CatalogLayout from './CatalogLayout'; import { CatalogTabs, LabeledComponentType } from './CatalogTabs'; import { WelcomeBanner } from './WelcomeBanner'; +import { ResultsFilter } from '../ResultsFilter/ResultsFilter'; const useStyles = makeStyles(theme => ({ contentWrapper: { @@ -47,7 +48,12 @@ const useStyles = makeStyles(theme => ({ const CatalogPageContents = () => { const styles = useStyles(); - const { loading, error, matchingEntities } = useFilteredEntities(); + const { + loading, + error, + matchingEntities, + availableTags, + } = useFilteredEntities(); const { isStarredEntity } = useStarredEntities(); const userId = useApi(identityApiRef).getUserId(); const [selectedTab, setSelectedTab] = useState(); @@ -140,6 +146,7 @@ const CatalogPageContents = () => { onChange={({ label }) => setSelectedSidebarItem(label)} initiallySelected="owned" /> +
{ + const catalogApi: Partial = { + getEntities: () => + Promise.resolve([ + { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + name: 'Entity1', + tags: ['java'], + }, + spec: { + owner: 'tools@example.com', + type: 'service', + }, + }, + { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + name: 'Entity2', + }, + spec: { + owner: 'not-tools@example.com', + type: 'service', + }, + }, + { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + name: 'Entity3', + tags: ['java', 'test'], + }, + spec: { + owner: 'tools@example.com', + type: 'service', + }, + }, + ] as Entity[]), + }; + + const indentityApi: Partial = { + getUserId: () => 'tools@example.com', + }; + + const renderWrapped = (children: React.ReactNode) => + render( + wrapInTestApp( + + {children}, + , + ), + ); + + it('should render all available tags', async () => { + const tags = ['test', 'java']; + const { findByText } = renderWrapped( + , + ); + for (const tag of tags) { + expect(await findByText(tag)).toBeInTheDocument(); + } + }); +}); diff --git a/plugins/catalog/src/components/ResultsFilter/ResultsFilter.tsx b/plugins/catalog/src/components/ResultsFilter/ResultsFilter.tsx new file mode 100644 index 0000000000..eb500da651 --- /dev/null +++ b/plugins/catalog/src/components/ResultsFilter/ResultsFilter.tsx @@ -0,0 +1,120 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { + Button, + Checkbox, + Divider, + List, + ListItem, + ListItemText, + makeStyles, + Theme, + Typography, +} from '@material-ui/core'; +import React, { useCallback, useContext, useState } from 'react'; +import { filterGroupsContext } from '../../filter/context'; + +const useStyles = makeStyles(theme => ({ + filterBox: { + display: 'flex', + margin: theme.spacing(2, 0, 0, 0), + }, + filterBoxTitle: { + margin: theme.spacing(1, 0, 0, 1), + fontWeight: 'bold', + flex: 1, + }, + title: { + margin: theme.spacing(1, 0, 0, 1), + textTransform: 'uppercase', + fontSize: 12, + fontWeight: 'bold', + }, + checkbox: { + padding: theme.spacing(0, 1, 0, 1), + }, +})); + +type Props = { + availableTags: string[]; +}; + +/** + * The additional results filter in the sidebar. + */ +export const ResultsFilter = ({ availableTags }: Props) => { + const classes = useStyles(); + + const [selectedTags, setSelectedTags] = useState([]); + const context = useContext(filterGroupsContext); + if (!context) { + throw new Error(`Must be used inside an EntityFilterGroupsProvider`); + } + const setSelectedTagsFilter = context?.setSelectedTags; + + const updateSelectedTags = useCallback( + (tags: string[]) => { + setSelectedTags(tags); + setSelectedTagsFilter(tags); + }, + [setSelectedTags, setSelectedTagsFilter], + ); + + return ( + <> +
+ + Refine Results + {' '} + +
+ + + Tags + + + {availableTags.map(t => { + const labelId = `checkbox-list-label-${t}`; + return ( + + updateSelectedTags( + selectedTags.includes(t) + ? selectedTags.filter(s => s !== t) + : [...selectedTags, t], + ) + } + > + + + + ); + })} + + + ); +}; diff --git a/plugins/catalog/src/filter/EntityFilterGroupsProvider.tsx b/plugins/catalog/src/filter/EntityFilterGroupsProvider.tsx index dd557a4322..db8e21e071 100644 --- a/plugins/catalog/src/filter/EntityFilterGroupsProvider.tsx +++ b/plugins/catalog/src/filter/EntityFilterGroupsProvider.tsx @@ -54,16 +54,19 @@ function useProvideEntityFilters(): FilterGroupsContext { const selectedFilterKeys = useRef<{ [filterGroupId: string]: Set; }>({}); + const selectedTags = useRef([]); const [filterGroupStates, setFilterGroupStates] = useState<{ [filterGroupId: string]: FilterGroupStates; }>({}); const [matchingEntities, setMatchingEntities] = useState([]); + const [availableTags, setAvailableTags] = useState([]); const rebuild = useCallback(() => { setFilterGroupStates( buildStates( filterGroups.current, selectedFilterKeys.current, + selectedTags.current, entities, error, ), @@ -72,9 +75,11 @@ function useProvideEntityFilters(): FilterGroupsContext { buildMatchingEntities( filterGroups.current, selectedFilterKeys.current, + selectedTags.current, entities, ), ); + setAvailableTags(collectTags(entities)); }, [entities, error]); const register = useCallback( @@ -109,14 +114,24 @@ function useProvideEntityFilters(): FilterGroupsContext { [rebuild], ); + const setSelectedTags = useCallback( + (tags: string[]) => { + selectedTags.current = tags; + rebuild(); + }, + [rebuild], + ); + return { register, unregister, setGroupSelectedFilters, + setSelectedTags, loading: !error && !entities, error, filterGroupStates, matchingEntities, + availableTags, }; } @@ -125,6 +140,7 @@ function useProvideEntityFilters(): FilterGroupsContext { function buildStates( filterGroups: { [filterGroupId: string]: FilterGroup }, selectedFilterKeys: { [filterGroupId: string]: Set }, + selectedTags: string[], entities?: Entity[], error?: Error, ): { [filterGroupId: string]: FilterGroupStates } { @@ -153,6 +169,7 @@ function buildStates( const otherMatchingEntities = buildMatchingEntities( filterGroups, selectedFilterKeys, + selectedTags, entities, filterGroupId, ); @@ -170,11 +187,23 @@ function buildStates( return result; } +// Given all entites, find all possible tags and provide them in a sorted list. +function collectTags(entities?: Entity[]): string[] { + const tags = new Set(); + (entities || []).forEach(e => { + if (e.metadata.tags) { + e.metadata.tags.forEach(t => tags.add(t)); + } + }); + return Array.from(tags).sort(); +} + // Given all filter groups and what filters are actually selected, extract all // entities that match all those filter groups. function buildMatchingEntities( filterGroups: { [filterGroupId: string]: FilterGroup }, selectedFilterKeys: { [filterGroupId: string]: Set }, + selectedTags: string[], entities?: Entity[], excludeFilterGroupId?: string, ): Entity[] { @@ -201,6 +230,16 @@ function buildMatchingEntities( } } + // Filter by tags, if at least one tag is selected. Include all entities + // that have at least one of the selected tags + if (selectedTags.length > 0) { + allFilters.push( + entity => + !!entity.metadata.tags && + entity.metadata.tags.some(t => selectedTags.includes(t)), + ); + } + // All filter groups that had any checked filters need to match. Note that // every() always returns true for an empty array. return entities?.filter(entity => allFilters.every(fn => fn(entity))) ?? []; diff --git a/plugins/catalog/src/filter/context.ts b/plugins/catalog/src/filter/context.ts index 31e9c91b97..7f16107f09 100644 --- a/plugins/catalog/src/filter/context.ts +++ b/plugins/catalog/src/filter/context.ts @@ -26,10 +26,12 @@ export type FilterGroupsContext = { ) => void; unregister: (filterGroupId: string) => void; setGroupSelectedFilters: (filterGroupId: string, filterIds: string[]) => void; + setSelectedTags: (tags: string[]) => void; loading: boolean; error?: Error; filterGroupStates: { [filterGroupId: string]: FilterGroupStates }; matchingEntities: Entity[]; + availableTags: string[]; }; /** diff --git a/plugins/catalog/src/filter/useFilteredEntities.ts b/plugins/catalog/src/filter/useFilteredEntities.ts index 256f5247c7..3f70c0bd85 100644 --- a/plugins/catalog/src/filter/useFilteredEntities.ts +++ b/plugins/catalog/src/filter/useFilteredEntities.ts @@ -30,5 +30,6 @@ export function useFilteredEntities() { loading: context.loading, error: context.error, matchingEntities: context.matchingEntities, + availableTags: context.availableTags, }; } From 2172a8a698ddcba5ace6f6e7c4c2c7a10ca5691b Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Tue, 18 Aug 2020 22:44:15 +0200 Subject: [PATCH 073/656] fix: layout issue on the entity page --- .../EntityPageOverview/EntityPageOverview.tsx | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx b/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx index f4faa8c574..45a62198c7 100644 --- a/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx +++ b/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx @@ -18,7 +18,10 @@ import { Entity } from '@backstage/catalog-model'; import { Content } from '@backstage/core'; import { SentryIssuesWidget } from '@backstage/plugin-sentry'; import { Widget as GithubActionsWidget } from '@backstage/plugin-github-actions'; -import { JenkinsBuildsWidget, JenkinsLastBuildWidget, } from '@backstage/plugin-jenkins'; +import { + JenkinsBuildsWidget, + JenkinsLastBuildWidget, +} from '@backstage/plugin-jenkins'; import { Grid } from '@material-ui/core'; import React, { FC } from 'react'; import { EntityMetadataCard } from '../EntityMetadataCard/EntityMetadataCard'; @@ -32,14 +35,14 @@ export const EntityPageOverview: FC<{ entity: Entity }> = ({ entity }) => { {entity.metadata?.annotations?.[ 'backstage.io/jenkins-github-folder' - ] && ( + ] && ( )} {entity.metadata?.annotations?.[ 'backstage.io/jenkins-github-folder' - ] && ( + ] && ( @@ -49,12 +52,12 @@ export const EntityPageOverview: FC<{ entity: Entity }> = ({ entity }) => { )} - - - + + + ); From 4618f0b76a9ef650a58322cf270d2f5a66db113a Mon Sep 17 00:00:00 2001 From: Niklas Ek Date: Wed, 19 Aug 2020 09:34:15 +0200 Subject: [PATCH 074/656] Update header background shapes and colors (#2015) * Update header background shapes and colors * Remove an unused type frmo PageThemeProvider * Remove Waves.test as there is no more Waves.jsx --- packages/core/src/layout/Header/Header.tsx | 136 ++++++++-------- .../core/src/layout/Header/Waves.test.tsx | 27 ---- packages/core/src/layout/Header/Waves.tsx | 148 ------------------ packages/core/src/layout/Page/Page.tsx | 6 +- .../core/src/layout/Page/PageThemeProvider.ts | 126 ++++++--------- packages/core/src/layout/Page/index.ts | 2 +- .../components/TemplateCard/TemplateCard.tsx | 2 +- 7 files changed, 122 insertions(+), 325 deletions(-) delete mode 100644 packages/core/src/layout/Header/Waves.test.tsx delete mode 100644 packages/core/src/layout/Header/Waves.tsx diff --git a/packages/core/src/layout/Header/Header.tsx b/packages/core/src/layout/Header/Header.tsx index cc2c8d1182..7aafc2730e 100644 --- a/packages/core/src/layout/Header/Header.tsx +++ b/packages/core/src/layout/Header/Header.tsx @@ -14,59 +14,63 @@ * limitations under the License. */ -import React, { Fragment, ReactNode, CSSProperties, FC } from 'react'; +import React, { ReactNode, CSSProperties, FC, useContext } from 'react'; import { Helmet } from 'react-helmet'; import { Typography, Tooltip, makeStyles } from '@material-ui/core'; import { BackstageTheme } from '@backstage/theme'; -import { Theme } from '../Page/Page'; -import { Waves } from './Waves'; +import { PageThemeContext } from '../Page/Page'; -const useStyles = makeStyles(theme => ({ - header: { - gridArea: 'pageHeader', - padding: theme.spacing(3), - minHeight: 118, - width: '100%', - boxShadow: '0 0 8px 3px rgba(20, 20, 20, 0.3)', - position: 'relative', - zIndex: 100, - display: 'flex', - flexDirection: 'row', - flexWrap: 'wrap', - justifyContent: 'flex-end', - alignItems: 'center', - }, - leftItemsBox: { - flex: '1 1 auto', - }, - rightItemsBox: { - flex: '0 1 auto', - display: 'flex', - flexDirection: 'row', - flexWrap: 'wrap', - alignItems: 'center', - marginRight: theme.spacing(1), - }, - title: { - color: theme.palette.bursts.fontColor, - lineHeight: '1.0em', - wordBreak: 'break-all', - fontSize: 'calc(24px + 6 * ((100vw - 320px) / 680))', - marginBottom: theme.spacing(1), - }, - subtitle: { - color: 'rgba(255, 255, 255, 0.8)', - lineHeight: '1.0em', - }, - type: { - textTransform: 'uppercase', - fontSize: 11, - opacity: 0.8, - marginBottom: theme.spacing(1), - color: theme.palette.bursts.fontColor, - }, -})); +const useStyles = makeStyles( + theme => ({ + header: { + gridArea: 'pageHeader', + padding: theme.spacing(3), + minHeight: 118, + width: '100%', + boxShadow: '0 0 8px 3px rgba(20, 20, 20, 0.3)', + position: 'relative', + zIndex: 100, + display: 'flex', + flexDirection: 'row', + flexWrap: 'wrap', + justifyContent: 'flex-end', + alignItems: 'center', + backgroundImage: props => props.backgroundImage, + backgroundPosition: 'center', + backgroundSize: '100% 400px', + }, + leftItemsBox: { + flex: '1 1 auto', + }, + rightItemsBox: { + flex: '0 1 auto', + display: 'flex', + flexDirection: 'row', + flexWrap: 'wrap', + alignItems: 'center', + marginRight: theme.spacing(1), + }, + title: { + color: theme.palette.bursts.fontColor, + lineHeight: '1.0em', + wordBreak: 'break-all', + fontSize: 'calc(24px + 6 * ((100vw - 320px) / 680))', + marginBottom: theme.spacing(1), + }, + subtitle: { + color: 'rgba(255, 255, 255, 0.8)', + lineHeight: '1.0em', + }, + type: { + textTransform: 'uppercase', + fontSize: 11, + opacity: 0.8, + marginBottom: theme.spacing(1), + color: theme.palette.bursts.fontColor, + }, + }), +); type HeaderStyles = ReturnType; @@ -159,32 +163,28 @@ export const Header: FC = ({ type, typeLink, }) => { - const classes = useStyles(); + const theme = useContext(PageThemeContext); + const classes = useStyles({ backgroundImage: theme.backgroundImage }); const documentTitle = pageTitleOverride || title; const pageTitle = title || pageTitleOverride; const titleTemplate = `${documentTitle} | %s | Backstage`; const defaultTitle = `${documentTitle} | Backstage`; return ( - + <> - - {theme => ( -
- -
- - - -
-
{children}
-
- )} -
-
+
+
+ + + +
+
{children}
+
+ ); }; diff --git a/packages/core/src/layout/Header/Waves.test.tsx b/packages/core/src/layout/Header/Waves.test.tsx deleted file mode 100644 index 76bf5e913e..0000000000 --- a/packages/core/src/layout/Header/Waves.test.tsx +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { render } from '@testing-library/react'; -import { pageTheme } from '../Page/PageThemeProvider'; -import { Waves } from './Waves'; - -describe('', () => { - it('should render svg', () => { - const rendered = render(); - rendered.getByTestId('wave-svg'); - }); -}); diff --git a/packages/core/src/layout/Header/Waves.tsx b/packages/core/src/layout/Header/Waves.tsx deleted file mode 100644 index e87fc78105..0000000000 --- a/packages/core/src/layout/Header/Waves.tsx +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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, { FC } from 'react'; -import { makeStyles } from '@material-ui/core'; -import { PageTheme } from '../Page'; - -const useStyles = makeStyles({ - wave: { - position: 'absolute', - height: '100%', - width: '100%', - top: 0, - bottom: 0, - left: 0, - right: 0, - zIndex: -1, - }, -}); - -type Props = { - theme: PageTheme; -}; - -export const Waves: FC = ({ theme }) => { - const classes = useStyles(); - const [backgroundColor1, backgroundColor2] = theme.gradient.colors; - const waveColor = theme.gradient.waveColor; - const [opacityStart, opacityStop] = theme.gradient.opacity; - - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ); -}; diff --git a/packages/core/src/layout/Page/Page.tsx b/packages/core/src/layout/Page/Page.tsx index bc4175fb6c..a5f5e4fd2b 100644 --- a/packages/core/src/layout/Page/Page.tsx +++ b/packages/core/src/layout/Page/Page.tsx @@ -18,7 +18,7 @@ import React, { FC } from 'react'; import { PageTheme, pageTheme } from './PageThemeProvider'; import { makeStyles } from '@material-ui/core'; -export const Theme = React.createContext(pageTheme.home); +export const PageThemeContext = React.createContext(pageTheme.home); const useStyles = makeStyles(() => ({ root: { @@ -38,8 +38,8 @@ type Props = { export const Page: FC = ({ theme = pageTheme.home, children }) => { const classes = useStyles(); return ( - +
{children}
-
+ ); }; diff --git a/packages/core/src/layout/Page/PageThemeProvider.ts b/packages/core/src/layout/Page/PageThemeProvider.ts index c99509513f..57411c8786 100644 --- a/packages/core/src/layout/Page/PageThemeProvider.ts +++ b/packages/core/src/layout/Page/PageThemeProvider.ts @@ -14,87 +14,59 @@ * limitations under the License. */ -export type Gradient = { - colors: string[]; - waveColor: string; - opacity: string[]; -}; - export type PageTheme = { - gradient: Gradient; + colors: string[]; + shape: string; + backgroundImage: string; }; -export const gradients: Record = { - darkGrey: { - colors: ['#171717', '#383838'], - waveColor: '#757575', - opacity: ['1.0', '0.0'], - }, - marineBlue: { - colors: ['#00759A', '#004EAC'], - waveColor: '#BDDBFF', - opacity: ['0.72', '0.0'], - }, - veryBlue: { - colors: ['#0B2B9C', '#311288'], - waveColor: '#8960FD', - opacity: ['0.72', '0.0'], - }, - rubyRed: { - colors: ['#A4284B', '#8D1134'], - waveColor: '#FFBFF5', - opacity: ['0.28', '0.10'], - }, - toastyOrange: { - colors: ['#CC3707', '#9A2500'], - waveColor: '#FF784E', - opacity: ['0.72', '0.0'], - }, - purpleSky: { - colors: ['#AF29F8', '#4100F4'], - waveColor: '#AF29F8', - opacity: ['0.72', '0.0'], - }, - eveningSea: { - colors: ['#00FFF2', '#035355'], - waveColor: '', - opacity: ['0.72', '0.0'], - }, - teal: { - colors: ['#005E4D', '#004E40'], - waveColor: '#9BF0E1', - opacity: ['0.72', '0.0'], - }, - pinkSea: { - colors: ['#C8077A', '#C2297D'], - waveColor: '#ea93c3', - opacity: ['0.8', '0.0'], - }, +/* + # How to add a shape + 1. Get the svg shape from figma, should be ~1400 wide, ~400 high + and only the white->transparent mask, no colors. + 2. Run it through https://jakearchibald.github.io/svgomg/ + 3. Run that through https://github.com/tigt/mini-svg-data-uri + with something like https://npm.runkit.com/mini-svg-data-uri + 4. Wrap the output in `url("")` + 5. Give it a name and paste it into the `shapes` object below. + +*/ +export const shapes: Record = { + wave: `url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='1368' height='400' fill='none'%3e%3cmask id='a' width='1368' height='401' x='0' y='0' maskUnits='userSpaceOnUse'%3e%3cpath fill='url(%23paint0_linear)' d='M437 116C223 116 112 0 112 0h1256v400c-82 0-225-21-282-109-112-175-436-175-649-175z'/%3e%3cpath fill='url(%23paint1_linear)' d='M1368 400V282C891-29 788 40 711 161 608 324 121 372 0 361v39h1368z'/%3e%3cpath fill='url(%23paint2_linear)' d='M1368 244v156H0V94c92-24 198-46 375 0l135 41c176 51 195 109 858 109z'/%3e%3cpath fill='url(%23paint3_linear)' d='M1252 400h116c-14-7-35-14-116-16-663-14-837-128-1013-258l-85-61C98 28 46 8 0 0v400h1252z'/%3e%3c/mask%3e%3cg mask='url(%23a)'%3e%3cpath fill='white' d='M-172-98h1671v601H-172z'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient id='paint0_linear' x1='602' x2='1093.5' y1='-960.5' y2='272' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint1_linear' x1='482' x2='480' y1='1058.5' y2='70.5' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint2_linear' x1='424' x2='446.1' y1='-587.5' y2='274.6' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint3_linear' x1='587' x2='349' y1='-1120.5' y2='341' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e")`, + wave2: `url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='1368' height='400' fill='none'%3e%3cmask id='a' width='1764' height='479' x='-229' y='-6' maskUnits='userSpaceOnUse'%3e%3cpath fill='url(%23paint0_linear)' d='M0 400h1350C1321 336 525 33 179-2c-345-34-395 236-408 402H0z'/%3e%3cpath fill='url(%23paint1_linear)' d='M1378 177v223H0V217s219 75 327 52C436 246 717-35 965 45s254 144 413 132z'/%3e%3cpath fill='url(%23paint2_linear)' d='M26 400l-78-16c-170 205-44-6-137-30l-4-1 4 1 137 30c37-45 89-110 159-201 399-514-45 238 1176-50 275-65 354-39 91 267H26z'/%3e%3c/mask%3e%3cg mask='url(%23a)'%3e%3cpath fill='white' d='M0 0h1368v400H0z'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient id='paint0_linear' x1='431' x2='397.3' y1='-599' y2='372.8' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint1_linear' x1='236.5' x2='446.6' y1='-586' y2='381.5' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint2_linear' x1='851.8' x2='640.4' y1='-867.2' y2='363.7' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e")`, + round: `url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='1368' height='400' fill='none'%3e%3cmask id='a' width='2269' height='1408' x='-610' y='-509' maskUnits='userSpaceOnUse'%3e%3ccircle cx='1212.8' cy='74.8' r='317.5' fill='url(%23paint0_linear)' transform='rotate(-52 1213 75)'/%3e%3ccircle cx='737.8' cy='445.8' r='317.5' fill='url(%23paint1_linear)' transform='rotate(-116 738 446)'/%3e%3ccircle cx='601.8' cy='52.8' r='418.6' fill='url(%23paint2_linear)' transform='rotate(-117 602 53)'/%3e%3ccircle cx='999.8' cy='364' r='389.1' fill='url(%23paint3_linear)' transform='rotate(31 1000 364)'/%3e%3cellipse cx='-109.2' cy='263.5' fill='url(%23paint4_linear)' rx='429.2' ry='465.8' transform='rotate(-85 -109 264)'/%3e%3c/mask%3e%3cg mask='url(%23a)'%3e%3cpath fill='white' d='M0 0h1368v400H0z'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient id='paint0_linear' x1='1301.2' x2='161.4' y1='-1879.7' y2='-969.6' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint1_linear' x1='826.2' x2='-313.6' y1='-1508.7' y2='-598.6' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint2_linear' x1='718.4' x2='-784.3' y1='-2524' y2='-1324.2' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint3_linear' x1='1108.2' x2='-288.6' y1='-2031.1' y2='-915.9' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint4_linear' x1='10.4' x2='-1626.5' y1='-2603.8' y2='-1399.5' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e")`, +}; + +export const colorVariants: Record = { + darkGrey: ['#171717', '#383838'], + marineBlue: ['#006D8F', '#0049A1'], + veryBlue: ['#0027AF', '#270094'], + rubyRed: ['#98002B', '#8D1134'], + toastyOrange: ['#BE2200', '#A41D00'], + purpleSky: ['#8912CA', '#3E00EA'], + eveningSea: ['#00FFF2', '#035355'], + teal: ['#005B4B'], + pinkSea: ['#C8077A', '#C2297D'], }; export const pageTheme: Record = { - home: { - gradient: gradients.teal, - }, - documentation: { - gradient: gradients.pinkSea, - }, - tool: { - gradient: gradients.purpleSky, - }, - service: { - gradient: gradients.marineBlue, - }, - website: { - gradient: gradients.veryBlue, - }, - library: { - gradient: gradients.rubyRed, - }, - other: { - gradient: gradients.darkGrey, - }, - app: { - gradient: gradients.toastyOrange, - }, + home: genTheme(colorVariants.teal, shapes.wave), + documentation: genTheme(colorVariants.pinkSea, shapes.wave2), + tool: genTheme(colorVariants.purpleSky, shapes.round), + service: genTheme(colorVariants.marineBlue, shapes.wave), + website: genTheme(colorVariants.veryBlue, shapes.wave), + library: genTheme(colorVariants.rubyRed, shapes.wave), + other: genTheme(colorVariants.darkGrey, shapes.wave), + app: genTheme(colorVariants.toastyOrange, shapes.wave), }; + +// As the background shapes and colors are decorative, we place them onto +// the page as a css background-image instead of an html element of its own. +// Utility to not have to write colors and shapes twice. +function genTheme(colors: string[], shape: string) { + const gradientColors = colors.length === 1 ? [colors[0], colors[0]] : colors; + const gradient = `linear-gradient(90deg, ${gradientColors.join(', ')})`; + const backgroundImage = `${shape}, ${gradient}`; + + return { colors, shape, backgroundImage }; +} diff --git a/packages/core/src/layout/Page/index.ts b/packages/core/src/layout/Page/index.ts index f8fa7dc668..000a565c83 100644 --- a/packages/core/src/layout/Page/index.ts +++ b/packages/core/src/layout/Page/index.ts @@ -15,5 +15,5 @@ */ export { Page } from './Page'; -export { gradients, pageTheme } from './PageThemeProvider'; +export { pageTheme } from './PageThemeProvider'; export type { PageTheme } from './PageThemeProvider'; diff --git a/plugins/scaffolder/src/components/TemplateCard/TemplateCard.tsx b/plugins/scaffolder/src/components/TemplateCard/TemplateCard.tsx index 7d38c6f223..d98b1a11e9 100644 --- a/plugins/scaffolder/src/components/TemplateCard/TemplateCard.tsx +++ b/plugins/scaffolder/src/components/TemplateCard/TemplateCard.tsx @@ -56,7 +56,7 @@ export const TemplateCard = ({ name, }: TemplateCardProps) => { const theme = pageTheme[type] ?? pageTheme.other; - const [gradientStart, gradientStop] = theme.gradient.colors; + const [gradientStart, gradientStop] = theme.colors; const classes = useStyles({ gradientStart, gradientStop }); const href = generatePath(templateRoute.path, { templateName: name }); From 645c7f444bd07368fdc644a92018c1e0f36482d5 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 19 Aug 2020 09:21:59 +0200 Subject: [PATCH 075/656] core-api: switch auth provider apiOrigin option to backendUrl --- packages/app/src/apis.ts | 19 ++++--- .../implementations/auth/auth0/Auth0Auth.ts | 12 ++--- .../implementations/auth/github/GithubAuth.ts | 6 +-- .../implementations/auth/gitlab/GitlabAuth.ts | 6 +-- .../implementations/auth/google/GoogleAuth.ts | 6 +-- .../implementations/auth/oauth2/OAuth2.ts | 6 +-- .../implementations/auth/okta/OktaAuth.ts | 52 +++++++++---------- .../DefaultAuthConnector.test.ts | 8 +-- .../lib/AuthConnector/DefaultAuthConnector.ts | 15 +++--- packages/dev-utils/src/devApp/apiFactories.ts | 8 +-- .../ProfileCatalog/ProfileCatalog.test.tsx | 2 +- 11 files changed, 70 insertions(+), 70 deletions(-) diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index 3bc0c82b31..9f54e244df 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -66,7 +66,10 @@ import { } from '@backstage/plugin-github-actions'; import { jenkinsApiRef, JenkinsApi } from '@backstage/plugin-jenkins'; -import { TravisCIApi, travisCIApiRef } from '@roadiehq/backstage-plugin-travis-ci'; +import { + TravisCIApi, + travisCIApiRef, +} from '@roadiehq/backstage-plugin-travis-ci'; export const apis = (config: ConfigApi) => { // eslint-disable-next-line no-console @@ -106,7 +109,7 @@ export const apis = (config: ConfigApi) => { builder.add( googleAuthApiRef, GoogleAuth.create({ - apiOrigin: backendUrl, + backendUrl, basePath: '/auth/', oauthRequestApi, }), @@ -115,7 +118,7 @@ export const apis = (config: ConfigApi) => { const githubAuthApi = builder.add( githubAuthApiRef, GithubAuth.create({ - apiOrigin: backendUrl, + backendUrl, basePath: '/auth/', oauthRequestApi, }), @@ -124,7 +127,7 @@ export const apis = (config: ConfigApi) => { builder.add( oktaAuthApiRef, OktaAuth.create({ - apiOrigin: backendUrl, + backendUrl, basePath: '/auth/', oauthRequestApi, }), @@ -133,16 +136,16 @@ export const apis = (config: ConfigApi) => { builder.add( gitlabAuthApiRef, GitlabAuth.create({ - apiOrigin: backendUrl, + backendUrl, basePath: '/auth/', oauthRequestApi, }), ); - + builder.add( auth0AuthApiRef, Auth0Auth.create({ - apiOrigin: backendUrl, + backendUrl, basePath: '/auth/', oauthRequestApi, }), @@ -151,7 +154,7 @@ export const apis = (config: ConfigApi) => { builder.add( oauth2ApiRef, OAuth2.create({ - apiOrigin: backendUrl, + backendUrl, basePath: '/auth/', oauthRequestApi, }), diff --git a/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts b/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts index 3d8a42a4cc..e69733741f 100644 --- a/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts +++ b/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts @@ -34,7 +34,7 @@ import { Observable } from '../../../../types'; type CreateOptions = { // TODO(Following the words of Rugvip): These two should be grabbed from global config when available, they're not unique to Auth0Auth - apiOrigin: string; + backendUrl: string; basePath: string; oauthRequestApi: OAuthRequestApi; @@ -67,14 +67,14 @@ class Auth0Auth BackstageIdentityApi, SessionStateApi { static create({ - apiOrigin, + backendUrl, basePath, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - apiOrigin, + backendUrl, basePath, environment, provider, @@ -96,11 +96,7 @@ class Auth0Auth const sessionManager = new RefreshingAuthSessionManager({ connector, - defaultScopes: new Set([ - 'openid', - `email`, - `profile`, - ]), + defaultScopes: new Set(['openid', `email`, `profile`]), sessionScopes: (session: Auth0Session) => session.providerInfo.scopes, sessionShouldRefresh: (session: Auth0Session) => { const expiresInSec = diff --git a/packages/core-api/src/apis/implementations/auth/github/GithubAuth.ts b/packages/core-api/src/apis/implementations/auth/github/GithubAuth.ts index aaea681cef..1ad3e08699 100644 --- a/packages/core-api/src/apis/implementations/auth/github/GithubAuth.ts +++ b/packages/core-api/src/apis/implementations/auth/github/GithubAuth.ts @@ -35,7 +35,7 @@ import { Observable } from '../../../../types'; type CreateOptions = { // TODO(Rugvip): These two should be grabbed from global config when available, they're not unique to GithubAuth - apiOrigin: string; + backendUrl: string; basePath: string; oauthRequestApi: OAuthRequestApi; @@ -62,14 +62,14 @@ const DEFAULT_PROVIDER = { class GithubAuth implements OAuthApi, SessionStateApi { static create({ - apiOrigin, + backendUrl, basePath, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - apiOrigin, + backendUrl, basePath, environment, provider, diff --git a/packages/core-api/src/apis/implementations/auth/gitlab/GitlabAuth.ts b/packages/core-api/src/apis/implementations/auth/gitlab/GitlabAuth.ts index 20e13f8a03..e612c4ca61 100644 --- a/packages/core-api/src/apis/implementations/auth/gitlab/GitlabAuth.ts +++ b/packages/core-api/src/apis/implementations/auth/gitlab/GitlabAuth.ts @@ -31,7 +31,7 @@ import { StaticAuthSessionManager } from '../../../../lib/AuthSessionManager'; import { Observable } from '../../../../types'; type CreateOptions = { - apiOrigin: string; + backendUrl: string; basePath: string; oauthRequestApi: OAuthRequestApi; @@ -58,14 +58,14 @@ const DEFAULT_PROVIDER = { class GitlabAuth implements OAuthApi, SessionStateApi { static create({ - apiOrigin, + backendUrl, basePath, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - apiOrigin, + backendUrl, basePath, environment, provider, diff --git a/packages/core-api/src/apis/implementations/auth/google/GoogleAuth.ts b/packages/core-api/src/apis/implementations/auth/google/GoogleAuth.ts index 594116fc1a..c6a21dbb20 100644 --- a/packages/core-api/src/apis/implementations/auth/google/GoogleAuth.ts +++ b/packages/core-api/src/apis/implementations/auth/google/GoogleAuth.ts @@ -35,7 +35,7 @@ import { Observable } from '../../../../types'; type CreateOptions = { // TODO(Rugvip): These two should be grabbed from global config when available, they're not unique to GoogleAuth - apiOrigin: string; + backendUrl: string; basePath: string; oauthRequestApi: OAuthRequestApi; @@ -71,14 +71,14 @@ class GoogleAuth BackstageIdentityApi, SessionStateApi { static create({ - apiOrigin, + backendUrl, basePath, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - apiOrigin, + backendUrl, basePath, environment, provider, diff --git a/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts b/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts index d2a3531d05..4b6177bed9 100644 --- a/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts +++ b/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts @@ -33,7 +33,7 @@ import { import { OAuth2Session } from './types'; type CreateOptions = { - apiOrigin: string; + backendUrl: string; basePath: string; oauthRequestApi: OAuthRequestApi; @@ -64,14 +64,14 @@ const SCOPE_PREFIX = ''; class OAuth2 implements OAuthApi, OpenIdConnectApi, ProfileInfoApi, SessionStateApi { static create({ - apiOrigin, + backendUrl, basePath, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - apiOrigin, + backendUrl, basePath, environment, provider, diff --git a/packages/core-api/src/apis/implementations/auth/okta/OktaAuth.ts b/packages/core-api/src/apis/implementations/auth/okta/OktaAuth.ts index f10ec4ebce..f60b182118 100644 --- a/packages/core-api/src/apis/implementations/auth/okta/OktaAuth.ts +++ b/packages/core-api/src/apis/implementations/auth/okta/OktaAuth.ts @@ -34,7 +34,7 @@ import { RefreshingAuthSessionManager } from '../../../../lib/AuthSessionManager import { Observable } from '../../../../types'; type CreateOptions = { - apiOrigin: string; + backendUrl: string; basePath: string; oauthRequestApi: OAuthRequestApi; @@ -60,28 +60,34 @@ const DEFAULT_PROVIDER = { icon: OktaIcon, }; -const OKTA_OIDC_SCOPES: Set = new Set( - ['openid', 'profile', 'email', 'phone', 'address', 'groups', 'offline_access'] -) +const OKTA_OIDC_SCOPES: Set = new Set([ + 'openid', + 'profile', + 'email', + 'phone', + 'address', + 'groups', + 'offline_access', +]); -const OKTA_SCOPE_PREFIX: string = 'okta.' +const OKTA_SCOPE_PREFIX: string = 'okta.'; -class OktaAuth implements - OAuthApi, - OpenIdConnectApi, - ProfileInfoApi, - BackstageIdentityApi, - SessionStateApi -{ +class OktaAuth + implements + OAuthApi, + OpenIdConnectApi, + ProfileInfoApi, + BackstageIdentityApi, + SessionStateApi { static create({ - apiOrigin, + backendUrl, basePath, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - apiOrigin, + backendUrl, basePath, environment, provider, @@ -103,12 +109,7 @@ class OktaAuth implements const sessionManager = new RefreshingAuthSessionManager({ connector, - defaultScopes: new Set([ - 'openid', - 'email', - 'profile', - 'offline_access', - ]), + defaultScopes: new Set(['openid', 'email', 'profile', 'offline_access']), sessionScopes: session => session.scopes, sessionShouldRefresh: session => { const expiresInSec = @@ -126,10 +127,7 @@ class OktaAuth implements constructor(private readonly sessionManager: SessionManager) {} - async getAccessToken( - scope?: string, - options?: AuthRequestOptions - ) { + async getAccessToken(scope?: string, options?: AuthRequestOptions) { const session = await this.sessionManager.getSession({ ...options, scopes: OktaAuth.normalizeScopes(scope), @@ -175,12 +173,12 @@ class OktaAuth implements if (scope.startsWith(OKTA_SCOPE_PREFIX)) { return scope; } - - return `${OKTA_SCOPE_PREFIX}${scope}` + + return `${OKTA_SCOPE_PREFIX}${scope}`; }); return new Set(normalizedScopes); } } -export default OktaAuth; \ No newline at end of file +export default OktaAuth; diff --git a/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.test.ts b/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.test.ts index bfbb2dbc0b..b6c31405ae 100644 --- a/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.test.ts +++ b/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.test.ts @@ -22,7 +22,7 @@ import * as loginPopup from '../loginPopup'; const anyFetch = fetch as any; const defaultOptions = { - apiOrigin: 'my-origin', + backendUrl: 'http://my-origin', environment: 'production', provider: { id: 'my-provider', @@ -114,7 +114,8 @@ describe('DefaultAuthConnector', () => { expect(popupSpy).toBeCalledTimes(1); expect(popupSpy.mock.calls[0][0]).toMatchObject({ - url: 'my-origin/api/auth/my-provider/start?scope=a%20b&env=production', + url: + 'http://my-origin/api/auth/my-provider/start?scope=a%20b&env=production', }); await expect(sessionPromise).resolves.toEqual({ @@ -162,7 +163,8 @@ describe('DefaultAuthConnector', () => { expect(popupSpy).toBeCalledTimes(1); expect(popupSpy.mock.calls[0][0]).toMatchObject({ - url: 'my-origin/api/auth/my-provider/start?scope=-ab-&env=production', + url: + 'http://my-origin/api/auth/my-provider/start?scope=-ab-&env=production', }); }); }); diff --git a/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.ts b/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.ts index f0f57c1c12..41af7f4670 100644 --- a/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.ts +++ b/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.ts @@ -23,9 +23,9 @@ const DEFAULT_BASE_PATH = '/api/auth/'; type Options = { /** - * Origin of auth requests, defaults to location.origin + * The base URL of the auth backend. */ - apiOrigin?: string; + backendUrl?: string; /** * Base path of the auth requests, defaults to /api/auth/ */ @@ -64,7 +64,7 @@ function defaultJoinScopes(scopes: Set) { */ export class DefaultAuthConnector implements AuthConnector { - private readonly apiOrigin: string; + private readonly backendUrl: string; private readonly basePath: string; private readonly environment: string; private readonly provider: AuthProvider & { id: string }; @@ -74,7 +74,7 @@ export class DefaultAuthConnector constructor(options: Options) { const { - apiOrigin = window.location.origin, + backendUrl = window.location.origin, basePath = DEFAULT_BASE_PATH, environment, provider, @@ -88,7 +88,7 @@ export class DefaultAuthConnector onAuthRequest: scopes => this.showPopup(scopes), }); - this.apiOrigin = apiOrigin; + this.backendUrl = backendUrl; this.basePath = basePath; this.environment = environment; this.provider = provider; @@ -154,11 +154,12 @@ export class DefaultAuthConnector private async showPopup(scopes: Set): Promise { const scope = this.joinScopesFunc(scopes); const popupUrl = this.buildUrl('/start', { scope }); + const { origin } = new URL(this.backendUrl); const payload = await showLoginPopup({ url: popupUrl, name: `${this.provider.title} Login`, - origin: this.apiOrigin, + origin, width: 450, height: 730, }); @@ -175,7 +176,7 @@ export class DefaultAuthConnector env: this.environment, }); - return `${this.apiOrigin}${this.basePath}${this.provider.id}${path}${queryString}`; + return `${this.backendUrl}${this.basePath}${this.provider.id}${path}${queryString}`; } private buildQueryString(query?: { diff --git a/packages/dev-utils/src/devApp/apiFactories.ts b/packages/dev-utils/src/devApp/apiFactories.ts index b88611f062..5acf64e0d0 100644 --- a/packages/dev-utils/src/devApp/apiFactories.ts +++ b/packages/dev-utils/src/devApp/apiFactories.ts @@ -63,7 +63,7 @@ export const googleAuthApiFactory = createApiFactory({ deps: { oauthRequestApi: oauthRequestApiRef }, factory: ({ oauthRequestApi }) => GoogleAuth.create({ - apiOrigin: 'http://localhost:7000', + backendUrl: 'http://localhost:7000', basePath: '/auth/', oauthRequestApi, }), @@ -74,7 +74,7 @@ export const githubAuthApiFactory = createApiFactory({ deps: { oauthRequestApi: oauthRequestApiRef }, factory: ({ oauthRequestApi }) => GithubAuth.create({ - apiOrigin: 'http://localhost:7000', + backendUrl: 'http://localhost:7000', basePath: '/auth/', oauthRequestApi, }), @@ -85,7 +85,7 @@ export const gitlabAuthApiFactory = createApiFactory({ deps: { oauthRequestApi: oauthRequestApiRef }, factory: ({ oauthRequestApi }) => GitlabAuth.create({ - apiOrigin: 'http://localhost:7000', + backendUrl: 'http://localhost:7000', basePath: '/auth/', oauthRequestApi, }), @@ -96,7 +96,7 @@ export const auth0AuthApiFactory = createApiFactory({ deps: { oauthRequestApi: oauthRequestApiRef }, factory: ({ oauthRequestApi }) => Auth0Auth.create({ - apiOrigin: 'http://localhost:7000', + backendUrl: 'http://localhost:7000', basePath: '/auth/', oauthRequestApi, }), diff --git a/plugins/gitops-profiles/src/components/ProfileCatalog/ProfileCatalog.test.tsx b/plugins/gitops-profiles/src/components/ProfileCatalog/ProfileCatalog.test.tsx index 50268e6a50..a502f6fb4e 100644 --- a/plugins/gitops-profiles/src/components/ProfileCatalog/ProfileCatalog.test.tsx +++ b/plugins/gitops-profiles/src/components/ProfileCatalog/ProfileCatalog.test.tsx @@ -37,7 +37,7 @@ describe('ProfileCatalog', () => { [ githubAuthApiRef, GithubAuth.create({ - apiOrigin: 'http://localhost:7000', + backendUrl: 'http://localhost:7000', basePath: '/auth/', oauthRequestApi, }), From e171eb7669ec102eed007dee6befa14bd15a6398 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 19 Aug 2020 09:23:10 +0200 Subject: [PATCH 076/656] core-api: fix usage of deprecated wait in tests --- .../OAuthRequestApi/OAuthPendingRequests.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core-api/src/apis/implementations/OAuthRequestApi/OAuthPendingRequests.test.ts b/packages/core-api/src/apis/implementations/OAuthRequestApi/OAuthPendingRequests.test.ts index 36378798d4..280321daa0 100644 --- a/packages/core-api/src/apis/implementations/OAuthRequestApi/OAuthPendingRequests.test.ts +++ b/packages/core-api/src/apis/implementations/OAuthRequestApi/OAuthPendingRequests.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { wait } from '@testing-library/react'; +import { waitFor } from '@testing-library/react'; import { OAuthPendingRequests } from './OAuthPendingRequests'; describe('OAuthPendingRequests', () => { @@ -27,7 +27,7 @@ describe('OAuthPendingRequests', () => { target.pending().subscribe({ next, error }); target.request(input); - await wait(() => expect(next).toBeCalledTimes(2)); + await waitFor(() => expect(next).toBeCalledTimes(2)); expect(next.mock.calls[0][0].scopes).toBeUndefined(); expect(next.mock.calls[1][0].scopes.toString()).toBe(input.toString()); expect(error.mock.calls.length).toBe(0); From 08464607fa4576964a7796488aacf852b7e13a2c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 19 Aug 2020 09:48:50 +0200 Subject: [PATCH 077/656] chore(deps): bump dockerode from 3.2.0 to 3.2.1 (#2019) Bumps [dockerode](https://github.com/apocas/dockerode) from 3.2.0 to 3.2.1. - [Release notes](https://github.com/apocas/dockerode/releases) - [Commits](https://github.com/apocas/dockerode/compare/v3.2.0...v3.2.1) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9d0232337f..73e363e3b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8131,7 +8131,7 @@ concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" -concat-stream@^2.0.0, concat-stream@~2.0.0: +concat-stream@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== @@ -9431,16 +9431,7 @@ docker-modem@^2.1.0: split-ca "^1.0.1" ssh2 "^0.8.7" -dockerode@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/dockerode/-/dockerode-3.2.0.tgz#80e5bd9c2a988bdde4c995ae4aa2584fa0166c23" - integrity sha512-C+y/W4Kks7YLBsfUOTMkk1IVilb4cdj+rE+UZ5hnE+rpcn2frSs7kX+6H8GteTqHcv8sln+GyxuP1qdno3IzIw== - dependencies: - concat-stream "~2.0.0" - docker-modem "^2.1.0" - tar-fs "~2.0.1" - -dockerode@^3.2.1: +dockerode@^3.2.0, dockerode@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/dockerode/-/dockerode-3.2.1.tgz#4a2222e3e1df536bf595e78e76d3cfbf6d4d93b9" integrity sha512-XsSVB5Wu5HWMg1aelV5hFSqFJaKS5x1aiV/+sT7YOzOq1IRl49I/UwV8Pe4x6t0iF9kiGkWu5jwfvbkcFVupBw== From d8b241f977ce4ff3b39a77edb703ad66d56966ff Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 19 Aug 2020 10:53:37 +0200 Subject: [PATCH 078/656] chore(deps): bump knex from 0.21.1 to 0.21.5 (#2020) Bumps [knex](https://github.com/knex/knex) from 0.21.1 to 0.21.5. - [Release notes](https://github.com/knex/knex/releases) - [Changelog](https://github.com/knex/knex/blob/master/CHANGELOG.md) - [Commits](https://github.com/knex/knex/compare/0.21.1...0.21.5) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 48 +++++++++++++++++++----------------------------- 1 file changed, 19 insertions(+), 29 deletions(-) diff --git a/yarn.lock b/yarn.lock index 73e363e3b1..b82e9caae3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7986,12 +7986,7 @@ color@^3.0.0, color@^3.1.2: color-convert "^1.9.1" color-string "^1.5.2" -colorette@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/colorette/-/colorette-1.1.0.tgz#1f943e5a357fac10b4e0f5aaef3b14cdc1af6ec7" - integrity sha512-6S062WDQUXi6hOfkO/sBPVwE5ASXY4G2+b4atvhJfSsuUUhIaUKlkjLe9692Ipyt5/a+IPF5aVTu3V5gvXq5cg== - -colorette@^1.2.1: +colorette@1.2.1, colorette@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== @@ -12936,10 +12931,10 @@ interpret@^1.0.0: resolved "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== -interpret@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-2.0.0.tgz#b783ffac0b8371503e9ab39561df223286aa5433" - integrity sha512-e0/LknJ8wpMMhTiWcjivB+ESwIuvHnBSlBbmP/pSb8CQJldoj1p2qv7xGZ/+BtbTziYRFSz8OsvdbiX45LtYQA== +interpret@^2.0.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== into-stream@^3.1.0: version "3.1.0" @@ -14562,25 +14557,25 @@ kleur@^3.0.3: integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== knex@^0.21.1: - version "0.21.1" - resolved "https://registry.npmjs.org/knex/-/knex-0.21.1.tgz#4fba7e6c58c9f459846c3090be157a732fc75e41" - integrity sha512-uWszXC2DPaLn/YznGT9wFTWUG9+kqbL4DMz+hCH789GLcLuYzq8werHPDKBJxtKvxrW/S1XIXgrTWdMypiVvsw== + version "0.21.5" + resolved "https://registry.npmjs.org/knex/-/knex-0.21.5.tgz#c4be1958488f348aed3510aa4b7115639ee1bd01" + integrity sha512-cQj7F2D/fu03eTr6ZzYCYKdB9w7fPYlvTiU/f2OeXay52Pq5PwD+NAkcf40WDnppt/4/4KukROwlMOaE7WArcA== dependencies: - colorette "1.1.0" + colorette "1.2.1" commander "^5.1.0" debug "4.1.1" esm "^3.2.25" getopts "2.2.5" inherits "~2.0.4" - interpret "^2.0.0" + interpret "^2.2.0" liftoff "3.1.0" - lodash "^4.17.15" + lodash "^4.17.20" mkdirp "^1.0.4" - pg-connection-string "2.2.0" + pg-connection-string "2.3.0" tarn "^3.0.0" tildify "2.0.0" uuid "^7.0.3" - v8flags "^3.1.3" + v8flags "^3.2.0" kuler@1.0.x: version "1.0.1" @@ -15075,7 +15070,7 @@ lodash.without@^4.4.0: resolved "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4, lodash@^4.2.1, lodash@~4.17.10: +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.2.1, lodash@~4.17.10: version "4.17.20" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== @@ -17423,12 +17418,7 @@ pg-connection-string@0.1.3, pg-connection-string@^0.1.3: resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7" integrity sha1-2hhHsglA5C7hSSvq9l1J2RskXfc= -pg-connection-string@2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.2.0.tgz#caab4d38a9de4fdc29c9317acceed752897de41c" - integrity sha512-xB/+wxcpFipUZOQcSzcgkjcNOosGhEoPSjz06jC89lv1dj7mc9bZv6wLVy8M2fVjP0a/xN0N988YDq1L0FhK3A== - -pg-connection-string@^2.3.0: +pg-connection-string@2.3.0, pg-connection-string@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.3.0.tgz#c13fcb84c298d0bfa9ba12b40dd6c23d946f55d6" integrity sha512-ukMTJXLI7/hZIwTW7hGMZJ0Lj0S2XQBCJ4Shv4y1zgQ/vqVea+FLhzywvPj0ujSuofu+yA4MYHGZPTsgjBgJ+w== @@ -22638,10 +22628,10 @@ v8-to-istanbul@^4.1.3: convert-source-map "^1.6.0" source-map "^0.7.3" -v8flags@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz#fc9dc23521ca20c5433f81cc4eb9b3033bb105d8" - integrity sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w== +v8flags@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" + integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== dependencies: homedir-polyfill "^1.0.1" From 0ed795bf0663eb9260b213775daa45bedd9b485c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 19 Aug 2020 10:53:58 +0200 Subject: [PATCH 079/656] chore(deps-dev): bump @types/codemirror from 0.0.96 to 0.0.97 (#2021) Bumps [@types/codemirror](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/codemirror) from 0.0.96 to 0.0.97. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/codemirror) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- plugins/graphiql/package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index a034c14a11..27437d0318 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -49,7 +49,7 @@ "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", - "@types/codemirror": "^0.0.96", + "@types/codemirror": "^0.0.97", "@types/jest": "^26.0.7", "@types/node": "^12.0.0", "jest-fetch-mock": "^3.0.3", diff --git a/yarn.lock b/yarn.lock index b82e9caae3..e119146c68 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4463,10 +4463,10 @@ dependencies: "@types/node" "*" -"@types/codemirror@^0.0.96": - version "0.0.96" - resolved "https://registry.npmjs.org/@types/codemirror/-/codemirror-0.0.96.tgz#73b52e784a246cebef31d544fef45ea764de5bad" - integrity sha512-GTswEV26Bl1byRxpD3sKd1rT2AISr0rK9ImlJgEzfvqhcVWeu4xQKFQI6UgSC95NT5swNG4st/oRMeGVZgPj9w== +"@types/codemirror@^0.0.97": + version "0.0.97" + resolved "https://registry.npmjs.org/@types/codemirror/-/codemirror-0.0.97.tgz#6f2d8266b7f1b34aacfe8c77221fafe324c3d081" + integrity sha512-n5d7o9nWhC49DjfhsxANP7naWSeTzrjXASkUDQh7626sM4zK9XP2EVcHp1IcCf/IPV6c7ORzDUDF3Bkt231VKg== dependencies: "@types/tern" "*" From 5e0341f01c33b32d4943deaa53f91a1575b6d1a4 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 19 Aug 2020 11:25:22 +0200 Subject: [PATCH 080/656] plugins/auth-backend: refactor OAuthProvider to derive options from app.baseUrl --- .../src/lib/OAuthProvider.test.ts | 3 +- plugins/auth-backend/src/lib/OAuthProvider.ts | 50 ++++++++++++------- .../src/providers/auth0/provider.ts | 11 ++-- .../src/providers/github/provider.ts | 11 ++-- .../src/providers/gitlab/provider.ts | 11 ++-- .../src/providers/google/provider.ts | 11 ++-- .../src/providers/oauth2/provider.ts | 20 ++++---- .../src/providers/okta/provider.ts | 11 ++-- plugins/auth-backend/src/providers/types.ts | 5 ++ plugins/auth-backend/src/service/router.ts | 3 +- 10 files changed, 67 insertions(+), 69 deletions(-) diff --git a/plugins/auth-backend/src/lib/OAuthProvider.test.ts b/plugins/auth-backend/src/lib/OAuthProvider.test.ts index 0778b875d0..06bbd15c51 100644 --- a/plugins/auth-backend/src/lib/OAuthProvider.test.ts +++ b/plugins/auth-backend/src/lib/OAuthProvider.test.ts @@ -205,8 +205,9 @@ describe('OAuthProvider', () => { providerId: 'test-provider', secure: false, disableRefresh: true, - baseUrl: 'http://localhost:7000/auth', appOrigin: 'http://localhost:3000', + cookieDomain: 'localhost', + cookiePath: '/auth/test-provider', tokenIssuer: { issueToken: async () => 'my-id-token', listPublicKeys: async () => ({ keys: [] }), diff --git a/plugins/auth-backend/src/lib/OAuthProvider.ts b/plugins/auth-backend/src/lib/OAuthProvider.ts index f2b8c8e09c..dccab34da1 100644 --- a/plugins/auth-backend/src/lib/OAuthProvider.ts +++ b/plugins/auth-backend/src/lib/OAuthProvider.ts @@ -23,6 +23,7 @@ import { WebMessageResponse, BackstageIdentity, OAuthState, + AuthProviderConfig, } from '../providers/types'; import { InputError } from '@backstage/backend-common'; import { TokenIssuer } from '../identity'; @@ -35,7 +36,8 @@ export type Options = { secure: boolean; disableRefresh?: boolean; persistScopes?: boolean; - baseUrl: string; + cookieDomain: string; + cookiePath: string; appOrigin: string; tokenIssuer: TokenIssuer; }; @@ -120,17 +122,31 @@ export const ensuresXRequestedWith = (req: express.Request) => { }; export class OAuthProvider implements AuthProviderRouteHandlers { - private readonly domain: string; - private readonly basePath: string; + static fromConfig( + config: AuthProviderConfig, + providerHandlers: OAuthProviderHandlers, + options: Pick< + Options, + 'providerId' | 'persistScopes' | 'disableRefresh' | 'tokenIssuer' + >, + ): OAuthProvider { + const { origin: appOrigin } = new URL(config.appUrl); + const secure = config.baseUrl.startsWith('https://'); + const url = new URL(config.baseUrl); + const cookiePath = `${url.pathname}/${options.providerId}`; + return new OAuthProvider(providerHandlers, { + ...options, + appOrigin, + cookieDomain: url.hostname, + cookiePath, + secure, + }); + } constructor( private readonly providerHandlers: OAuthProviderHandlers, private readonly options: Options, - ) { - const url = new URL(options.baseUrl); - this.domain = url.hostname; - this.basePath = url.pathname; - } + ) {} async start(req: express.Request, res: express.Response): Promise { // retrieve scopes from request @@ -298,8 +314,8 @@ export class OAuthProvider implements AuthProviderRouteHandlers { maxAge: TEN_MINUTES_MS, secure: this.options.secure, sameSite: 'lax', - domain: this.domain, - path: `${this.basePath}/${this.options.providerId}/handler`, + domain: this.options.cookieDomain, + path: `${this.options.cookiePath}/handler`, httpOnly: true, }); }; @@ -309,8 +325,8 @@ export class OAuthProvider implements AuthProviderRouteHandlers { maxAge: TEN_MINUTES_MS, secure: this.options.secure, sameSite: 'lax', - domain: this.domain, - path: `${this.basePath}/${this.options.providerId}/handler`, + domain: this.options.cookieDomain, + path: `${this.options.cookiePath}/handler`, httpOnly: true, }); }; @@ -327,8 +343,8 @@ export class OAuthProvider implements AuthProviderRouteHandlers { maxAge: THOUSAND_DAYS_MS, secure: this.options.secure, sameSite: 'lax', - domain: this.domain, - path: `${this.basePath}/${this.options.providerId}`, + domain: this.options.cookieDomain, + path: this.options.cookiePath, httpOnly: true, }); }; @@ -336,10 +352,10 @@ export class OAuthProvider implements AuthProviderRouteHandlers { private removeRefreshTokenCookie = (res: express.Response) => { res.cookie(`${this.options.providerId}-refresh-token`, '', { maxAge: 0, - secure: false, + secure: this.options.secure, sameSite: 'lax', - domain: `${this.domain}`, - path: `${this.basePath}/${this.options.providerId}`, + domain: this.options.cookieDomain, + path: this.options.cookiePath, httpOnly: true, }); }; diff --git a/plugins/auth-backend/src/providers/auth0/provider.ts b/plugins/auth-backend/src/providers/auth0/provider.ts index 6dfcf3830a..903f6dc63c 100644 --- a/plugins/auth-backend/src/providers/auth0/provider.ts +++ b/plugins/auth-backend/src/providers/auth0/provider.ts @@ -141,19 +141,17 @@ export class Auth0AuthProvider implements OAuthProviderHandlers { } export function createAuth0Provider( - { baseUrl }: AuthProviderConfig, + config: AuthProviderConfig, _: string, envConfig: Config, logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'auth0'; - const secure = envConfig.getBoolean('secure'); - const appOrigin = envConfig.getString('appOrigin'); const clientID = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); const domain = envConfig.getString('domain'); - const callbackURL = `${baseUrl}/${providerId}/handler/frame`; + const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; const opts = { clientID, @@ -175,12 +173,9 @@ export function createAuth0Provider( return undefined; } - return new OAuthProvider(new Auth0AuthProvider(opts), { + return OAuthProvider.fromConfig(config, new Auth0AuthProvider(opts), { disableRefresh: true, providerId, - secure, - baseUrl, - appOrigin, tokenIssuer, }); } diff --git a/plugins/auth-backend/src/providers/github/provider.ts b/plugins/auth-backend/src/providers/github/provider.ts index 863cfa9f5a..78db99c75c 100644 --- a/plugins/auth-backend/src/providers/github/provider.ts +++ b/plugins/auth-backend/src/providers/github/provider.ts @@ -125,15 +125,13 @@ export class GithubAuthProvider implements OAuthProviderHandlers { } export function createGithubProvider( - { baseUrl }: AuthProviderConfig, + config: AuthProviderConfig, _: string, envConfig: Config, logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'github'; - const secure = envConfig.getBoolean('secure'); - const appOrigin = envConfig.getString('appOrigin'); const clientID = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); const enterpriseInstanceUrl = envConfig.getOptionalString( @@ -148,7 +146,7 @@ export function createGithubProvider( const userProfileURL = enterpriseInstanceUrl ? `${enterpriseInstanceUrl}/api/v3/user` : undefined; - const callbackURL = `${baseUrl}/${providerId}/handler/frame`; + const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; const opts = { clientID, @@ -171,13 +169,10 @@ export function createGithubProvider( ); return undefined; } - return new OAuthProvider(new GithubAuthProvider(opts), { + return OAuthProvider.fromConfig(config, new GithubAuthProvider(opts), { disableRefresh: true, persistScopes: true, providerId, - secure, - baseUrl, - appOrigin, tokenIssuer, }); } diff --git a/plugins/auth-backend/src/providers/gitlab/provider.ts b/plugins/auth-backend/src/providers/gitlab/provider.ts index 22d0bd4f0a..e9246a30c0 100644 --- a/plugins/auth-backend/src/providers/gitlab/provider.ts +++ b/plugins/auth-backend/src/providers/gitlab/provider.ts @@ -132,20 +132,18 @@ export class GitlabAuthProvider implements OAuthProviderHandlers { } export function createGitlabProvider( - { baseUrl }: AuthProviderConfig, + config: AuthProviderConfig, _: string, envConfig: Config, logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'gitlab'; - const secure = envConfig.getBoolean('secure'); - const appOrigin = envConfig.getString('appOrigin'); const clientID = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); const audience = envConfig.getString('audience'); const baseURL = audience || 'https://gitlab.com'; - const callbackURL = `${baseUrl}/${providerId}/handler/frame`; + const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; const opts = { clientID, @@ -166,12 +164,9 @@ export function createGitlabProvider( ); return undefined; } - return new OAuthProvider(new GitlabAuthProvider(opts), { + return OAuthProvider.fromConfig(config, new GitlabAuthProvider(opts), { disableRefresh: true, providerId, - secure, - baseUrl, - appOrigin, tokenIssuer, }); } diff --git a/plugins/auth-backend/src/providers/google/provider.ts b/plugins/auth-backend/src/providers/google/provider.ts index b8070949f9..d956cb2f44 100644 --- a/plugins/auth-backend/src/providers/google/provider.ts +++ b/plugins/auth-backend/src/providers/google/provider.ts @@ -144,18 +144,16 @@ export class GoogleAuthProvider implements OAuthProviderHandlers { } export function createGoogleProvider( - { baseUrl }: AuthProviderConfig, + config: AuthProviderConfig, _: string, envConfig: Config, logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'google'; - const secure = envConfig.getBoolean('secure'); - const appOrigin = envConfig.getString('appOrigin'); const clientID = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); - const callbackURL = `${baseUrl}/${providerId}/handler/frame`; + const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; const opts = { clientID, @@ -175,12 +173,9 @@ export function createGoogleProvider( ); return undefined; } - return new OAuthProvider(new GoogleAuthProvider(opts), { + return OAuthProvider.fromConfig(config, new GoogleAuthProvider(opts), { disableRefresh: false, providerId, - secure, - baseUrl, - appOrigin, tokenIssuer, }); } diff --git a/plugins/auth-backend/src/providers/oauth2/provider.ts b/plugins/auth-backend/src/providers/oauth2/provider.ts index c03f7c4371..ed3bbba6ea 100644 --- a/plugins/auth-backend/src/providers/oauth2/provider.ts +++ b/plugins/auth-backend/src/providers/oauth2/provider.ts @@ -29,7 +29,7 @@ import { } from '../../lib/PassportStrategyHelper'; import { AuthProviderConfig, - GenericOAuth2ProviderOptions, + OAuthProviderOptions, OAuthProviderHandlers, OAuthResponse, PassportDoneCallback, @@ -41,10 +41,15 @@ type PrivateInfo = { refreshToken: string; }; +export type OAuth2AuthProviderOptions = OAuthProviderOptions & { + authorizationURL: string; + tokenURL: string; +}; + export class OAuth2AuthProvider implements OAuthProviderHandlers { private readonly _strategy: OAuth2Strategy; - constructor(options: GenericOAuth2ProviderOptions) { + constructor(options: OAuth2AuthProviderOptions) { this._strategy = new OAuth2Strategy( { ...options, passReqToCallback: false as true }, ( @@ -142,18 +147,16 @@ export class OAuth2AuthProvider implements OAuthProviderHandlers { } export function createOAuth2Provider( - { baseUrl }: AuthProviderConfig, + config: AuthProviderConfig, _: string, envConfig: Config, logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'oauth2'; - const secure = envConfig.getBoolean('secure'); - const appOrigin = envConfig.getString('appOrigin'); const clientID = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); - const callbackURL = `${baseUrl}/${providerId}/handler/frame`; + const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; const authorizationURL = envConfig.getString('authorizationURL'); const tokenURL = envConfig.getString('tokenURL'); @@ -182,12 +185,9 @@ export function createOAuth2Provider( ); return undefined; } - return new OAuthProvider(new OAuth2AuthProvider(opts), { + return OAuthProvider.fromConfig(config, new OAuth2AuthProvider(opts), { disableRefresh: false, providerId, - secure, - baseUrl, - appOrigin, tokenIssuer, }); } diff --git a/plugins/auth-backend/src/providers/okta/provider.ts b/plugins/auth-backend/src/providers/okta/provider.ts index 058300cef6..cfae366f7e 100644 --- a/plugins/auth-backend/src/providers/okta/provider.ts +++ b/plugins/auth-backend/src/providers/okta/provider.ts @@ -164,19 +164,17 @@ export class OktaAuthProvider implements OAuthProviderHandlers { } export function createOktaProvider( - { baseUrl }: AuthProviderConfig, + config: AuthProviderConfig, _: string, envConfig: Config, logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'okta'; - const secure = envConfig.getBoolean('secure'); - const appOrigin = envConfig.getString('appOrigin'); const clientID = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); const audience = envConfig.getString('audience'); - const callbackURL = `${baseUrl}/${providerId}/handler/frame`; + const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; const opts = { audience, @@ -197,12 +195,9 @@ export function createOktaProvider( ); return undefined; } - return new OAuthProvider(new OktaAuthProvider(opts), { + return OAuthProvider.fromConfig(config, new OktaAuthProvider(opts), { disableRefresh: false, providerId, - secure, - baseUrl, - appOrigin, tokenIssuer, }); } diff --git a/plugins/auth-backend/src/providers/types.ts b/plugins/auth-backend/src/providers/types.ts index d372fd1b94..78cd4e1fe3 100644 --- a/plugins/auth-backend/src/providers/types.ts +++ b/plugins/auth-backend/src/providers/types.ts @@ -93,6 +93,11 @@ export type AuthProviderConfig = { * callbackURL to redirect to once the user signs in to the auth provider. */ baseUrl: string; + + /** + * The base URL of the app as provided by app.baseUrl + */ + appUrl: string; }; /** diff --git a/plugins/auth-backend/src/service/router.ts b/plugins/auth-backend/src/service/router.ts index 69f058f6db..70cd6d8f99 100644 --- a/plugins/auth-backend/src/service/router.ts +++ b/plugins/auth-backend/src/service/router.ts @@ -36,6 +36,7 @@ export async function createRouter( const router = Router(); const logger = options.logger.child({ plugin: 'auth' }); + const appUrl = options.config.getString('app.baseUrl'); const backendUrl = options.config.getString('backend.baseUrl'); const authUrl = `${backendUrl}/auth`; @@ -64,7 +65,7 @@ export async function createRouter( const providerConfig = providersConfig.getConfig(providerId); const providerRouter = createAuthProviderRouter( providerId, - { baseUrl: authUrl }, + { baseUrl: authUrl, appUrl }, providerConfig, logger, tokenIssuer, From 1d9007184caa52b0899844e3d5b7dceb4dcd2dd2 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 19 Aug 2020 11:26:29 +0200 Subject: [PATCH 081/656] app-config: remove unnecessary auth config --- app-config.yaml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index 99415b5b41..4321ef138c 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -54,8 +54,6 @@ auth: providers: google: development: - appOrigin: 'http://localhost:3000/' - secure: false clientId: $secret: env: AUTH_GOOGLE_CLIENT_ID @@ -64,8 +62,6 @@ auth: env: AUTH_GOOGLE_CLIENT_SECRET github: development: - appOrigin: 'http://localhost:3000/' - secure: false clientId: $secret: env: AUTH_GITHUB_CLIENT_ID @@ -77,8 +73,6 @@ auth: env: AUTH_GITHUB_ENTERPRISE_INSTANCE_URL gitlab: development: - appOrigin: 'http://localhost:3000/' - secure: false clientId: $secret: env: AUTH_GITLAB_CLIENT_ID @@ -94,8 +88,6 @@ auth: # issuer: "passport-saml" okta: development: - appOrigin: 'http://localhost:3000/' - secure: false clientId: $secret: env: AUTH_OKTA_CLIENT_ID @@ -107,8 +99,6 @@ auth: env: AUTH_OKTA_AUDIENCE oauth2: development: - appOrigin: 'http://localhost:3000/' - secure: false clientId: $secret: env: AUTH_OAUTH2_CLIENT_ID @@ -123,8 +113,6 @@ auth: env: AUTH_OAUTH2_TOKEN_URL auth0: development: - appOrigin: 'http://localhost:3000/' - secure: false clientId: $secret: env: AUTH_AUTH0_CLIENT_ID From 24a12989831c5ed7522ceaf74450cac0abd06f29 Mon Sep 17 00:00:00 2001 From: Perry Manuk Date: Wed, 19 Aug 2020 12:10:32 +0200 Subject: [PATCH 082/656] Techdocs-cli Build Fix We're using cloud build in gcp to build/package our backstage deployment and when you upload your artifacts it will remove all of the .git folder to mimimize the upload causing the techdocs-cli to fail as it relies on using `git rev-parse` to discover the full path. I changed this to be statically linked so the reliance on git is no longer there and so that as long as the structure of your repo doesn't change it should build no matter where the root folder is placed. --- packages/techdocs-cli/bin/build.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/techdocs-cli/bin/build.sh b/packages/techdocs-cli/bin/build.sh index 225cc334aa..0a3dfeb96d 100755 --- a/packages/techdocs-cli/bin/build.sh +++ b/packages/techdocs-cli/bin/build.sh @@ -16,9 +16,8 @@ set -e -ROOT_DIR=$(git rev-parse --show-toplevel) -TECHDOCS_PREVIEW_SOURCE=$ROOT_DIR/plugins/techdocs/dist -TECHDOCS_PREVIEW_DEST=$ROOT_DIR/packages/techdocs-cli/dist/techdocs-preview-bundle +TECHDOCS_PREVIEW_SOURCE=../../plugins/techdocs/dist +TECHDOCS_PREVIEW_DEST=../../packages/techdocs-cli/dist/techdocs-preview-bundle # Build the CLI yarn run backstage-cli -- build --outputs cjs From 9568848b54524ec70a621e7ef4cf1446674231ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Wed, 19 Aug 2020 12:23:42 +0200 Subject: [PATCH 083/656] Link to marketplace issue from roadmap (#2010) * Link to marketplace issue from roadmap * Update roadmap.md * Update roadmap.md * Update roadmap.md --- docs/overview/roadmap.md | 95 ++++++++++++++++++++++++++++++++-------- 1 file changed, 77 insertions(+), 18 deletions(-) diff --git a/docs/overview/roadmap.md b/docs/overview/roadmap.md index 97020a3a22..cfe43e3e86 100644 --- a/docs/overview/roadmap.md +++ b/docs/overview/roadmap.md @@ -5,17 +5,17 @@ title: Project roadmap ## Current status -Backstage is currently in Alpha. This means that you can expect APIs and -features to change until we reach our -[Backstage Beta milestone](https://github.com/spotify/backstage/milestone/19). -Before we have API stability, plugins will need ongoing maintenance. It is also -recommended that teams who adopt Backstage today upgrades their installation as -new [releases](https://github.com/spotify/backstage/releases) are available. +> Backstage is currently in Alpha. This means that you can expect APIs and +> features to change until we reach our +> [Backstage Beta milestone](https://github.com/spotify/backstage/milestone/19). +> Before we have API stability, plugins will need ongoing maintenance. It is +> also recommended that teams who adopt Backstage today upgrades their +> installation as new [releases](https://github.com/spotify/backstage/releases) +> are available. ## Phases -We have divided the project into three high-level _phases_ and we have already -begun work on various aspects of these phases: +We have divided the project into three high-level _phases_: - 🣠**Phase 1:** Extensible frontend platform (Done ✅) - You will be able to easily create a single consistent UI layer for your internal infrastructure @@ -35,22 +35,81 @@ begun work on various aspects of these phases: ## Detailed roadmap +If you have questions about the roadmap or want to provide feedback, we would +love to hear from you! Please create an +[Issue](https://github.com/spotify/backstage/issues/new/choose), ping us on +[Discord](https://discord.gg/EBHEGzX) or reach out directly at +[alund@spotify.com](mailto:alund@spotify.com). + +Want to help out? Awesome â¤ï¸ Head over to +[CONTRIBUTING](https://github.com/spotify/backstage/blob/master/CONTRIBUTING.md) +guidelines to get started. + ### Ongoing work 🚧 -- [Plugins for managing micro services end-2-end](https://github.com/spotify/backstage/milestone/14) -- [TechDocs v1](https://github.com/spotify/backstage/milestone/16) -- [Initial GraphQL API](https://github.com/spotify/backstage/milestone/13) -- Backstage Design Language System (DLS) -- Cloud Cost Insights plugin (from Spotify) +- **[Plugins for managing micro services end-2-end](https://github.com/spotify/backstage/milestone/14)** - + Out of the box Backstage will ship with a set of plugins (Overview, CI, API + and Docs) that will demonstrate how a user can manage a micro service and + follow a change all the way out in production. Completing this work will make + it much easier to see how a plugin can be built that integrates with the + Backstage Service Catalog. + +- **Backstage Design System** - By providing design guidelines for common plugin + layouts together, rich set of reusable UI components + ([Storybook](https://backstage.io/storybook)) and Figma design resources. The + Design System will make it easy to design and build plugins that are + consistent across the platform -- supporting both developers and designers. + +- **[TechDocs v1](https://github.com/spotify/backstage/milestone/16)** - Our + docs-like-code feature TechDocs working end to end. + +- **[Initial GraphQL API](https://github.com/spotify/backstage/milestone/13)** - + A GraphQL API will open up the rich metadata provided by Backstage in a single + query. Plugins can easily query this API as well as extend the model where + needed. + +- **Production deployments** - Provide instructions and default configurations + (e.g. through Helm charts) for easy deployments of Backstage and its + subsystems on Kubernetes. + +- **Cloud Cost Insights plugin (from Spotify)** - Spotify teams are fully + responsible for their own software, including the cost of the cloud resources + they use. By making our internal cost insights plugin available as open source + you will also be able to treat cost as an engineering problem, and make it + easy for your engineers to see their spend and where there's opportunity to + reduce waste. + - Further improvements to platform documentation ### Future work 🔮 -- [Backstage Beta](https://github.com/spotify/backstage/milestone/19) -- [Global search](https://github.com/spotify/backstage/issues/1499) -- [[TechDocs V.2] Stabilization release](https://github.com/spotify/backstage/milestone/17) -- Deploy a product demo at `demo.backstage.io` -- Plugin marketplace +- **[Backstage Beta](https://github.com/spotify/backstage/milestone/19)** - The + platform APIs and features are stable and can be dependent on for production + use. After this plugins will require little to no maintenance. + +- **[Plugin marketplace](https://github.com/spotify/backstage/issues/2009)** - + As the ecosystem of Backstage plugins continues to grow it is becoming + increasingly hard to keep track of what plugins are available. To solve this + we imagine a "Plugin marketplace" that helps with discovery and installation + of plugins. + +- **Deploy a product demo at `demo.backstage.io`** - Deploy a typical Backstage + deployment available publicly so that people can click around and get a feel + for the product without having to install anything. + +- **[Global search](https://github.com/spotify/backstage/issues/1499)** - Extend + the basic search available in the Backstage Service Catalog with a global + search experience. Long term this search solution should be extensible, making + it possible for you add custom search results. + +- **[[TechDocs V.2] Stabilization release](https://github.com/spotify/backstage/milestone/17)** - + Platform stability and compatibility improvements. + +- **Additional auth providers** - Backstage should work for most (all!) auth + solutions. Since Backstage can be used by companies regardless of what cloud + (or on prem) you are using we are especially keen to get auth support for + [AWS](https://github.com/spotify/backstage/issues/290), + [Azure](https://github.com/spotify/backstage/issues/348) and others. ### Completed milestones ✅ From 19259185058603a67554cbad29969715f460cfe7 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Wed, 19 Aug 2020 13:56:15 +0200 Subject: [PATCH 084/656] fix: docs build short-term --- microsite/i18n/en.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/microsite/i18n/en.json b/microsite/i18n/en.json index 40ad25fe53..d2593a13ce 100644 --- a/microsite/i18n/en.json +++ b/microsite/i18n/en.json @@ -50,6 +50,9 @@ "auth/add-auth-provider": { "title": "Adding authentication providers" }, + "auth/auth-backend-classes": { + "title": "auth/auth-backend-classes" + }, "auth/auth-backend": { "title": "Auth backend" }, From d41e5bcc0bee526aa02dd964dbb44aaf0bd6ae65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Wed, 19 Aug 2020 15:54:36 +0200 Subject: [PATCH 085/656] Fix doc links in latest blog post (#2012) * Fix doc links in latest blog post * Update 2020-08-05-announcing-backstage-software-templates.md --- .../2020-08-05-announcing-backstage-software-templates.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/microsite/blog/2020-08-05-announcing-backstage-software-templates.md b/microsite/blog/2020-08-05-announcing-backstage-software-templates.md index 6143442782..51c1da2885 100644 --- a/microsite/blog/2020-08-05-announcing-backstage-software-templates.md +++ b/microsite/blog/2020-08-05-announcing-backstage-software-templates.md @@ -35,11 +35,11 @@ Since the templates can be customized to integrate with your existing infrastruc ### Golden Paths pave the way -You can customize Backstage Software Templates to fit your organization’s standards. Using Go instead of Java? CircleCI instead of Jenkins? Serverless instead of Kubernetes? GCP instead of AWS? [Make your own recipes for any software component](/docs/features/software-templates/adding-templates.md) and your best practices will be baked right in. +You can customize Backstage Software Templates to fit your organization’s standards. Using Go instead of Java? CircleCI instead of Jenkins? Serverless instead of Kubernetes? GCP instead of AWS? [Make your own recipes for any software component](https://backstage.io/docs/features/software-templates/adding-templates) and your best practices will be baked right in. ## Getting started -The sample Software Templates are available under `/create`. If you're setting up Backstage for the first time, follow [Getting Started with Backstage](/docs/getting-started/index.md) and go to `http://localhost:3000/create`. If you’ve already been running Backstage locally, run the command `yarn lerna run mock-data` to load the new sample templates into the Service Catalog first. +The sample Software Templates are available under `/create`. If you're setting up Backstage for the first time, follow [Getting Started with Backstage](https://backstage.io/docs/getting-started/) and go to `http://localhost:3000/create`. If you’ve already been running Backstage locally, run the command `yarn lerna run mock-data` to load the new sample templates into the Service Catalog first. ![available-templates](assets/2020-08-05/templates.png) @@ -69,7 +69,7 @@ New components, of course, get added automatically to the Backstage Service Cata ## Define your standards -Backstage ships with four example templates, but since these are likely not the (only) ones you want to promote inside your company, the next step is to add [your own templates](/docs/features/software-templates/adding-templates.md). Using Backstage’s Software Templates feature, it’s easy to help your engineers get started building software with your organization’s best practices built-in. +Backstage ships with four example templates, but since these are likely not the (only) ones you want to promote inside your company, the next step is to add [your own templates](https://backstage.io/docs/features/software-templates/software-templates-index). Using Backstage’s Software Templates feature, it’s easy to help your engineers get started building software with your organization’s best practices built-in. We have learned that one of the keys to getting these standards adopted is to keep an open process. Templates are code. By making it clear to your engineers that you are open to pull requests, and that teams with different needs can add their own templates, you are on the path of striking a good balance between autonomy and standardization. From a118951eaae1adabe2d9ebe66138405f50c8df21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 19 Aug 2020 17:03:35 +0200 Subject: [PATCH 086/656] build(microsite): deploy site when docs are changed --- .github/workflows/microsite-with-storybook-deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/microsite-with-storybook-deploy.yml b/.github/workflows/microsite-with-storybook-deploy.yml index a4828ba55f..84ac6f9490 100644 --- a/.github/workflows/microsite-with-storybook-deploy.yml +++ b/.github/workflows/microsite-with-storybook-deploy.yml @@ -9,6 +9,7 @@ on: - 'packages/storybook/**' - 'packages/core/src/**' - 'microsite/**' + - 'docs/**' jobs: deploy-microsite-and-storybook: From 07bc5db0269fab4d23bcf6173c8c0f19599c6e62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Thu, 20 Aug 2020 08:34:05 +0200 Subject: [PATCH 087/656] Tweak roadmap (#2035) * Tweak roadmap * Update roadmap.md * Review comments --- docs/overview/roadmap.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/docs/overview/roadmap.md b/docs/overview/roadmap.md index cfe43e3e86..a84bc525c9 100644 --- a/docs/overview/roadmap.md +++ b/docs/overview/roadmap.md @@ -5,13 +5,11 @@ title: Project roadmap ## Current status -> Backstage is currently in Alpha. This means that you can expect APIs and -> features to change until we reach our -> [Backstage Beta milestone](https://github.com/spotify/backstage/milestone/19). -> Before we have API stability, plugins will need ongoing maintenance. It is -> also recommended that teams who adopt Backstage today upgrades their -> installation as new [releases](https://github.com/spotify/backstage/releases) -> are available. +> Backstage is currently under rapid development. This means that you can expect +> APIs and features to evolve. It is also recommended that teams who adopt +> Backstage today upgrade their installation as new +> [releases](https://github.com/spotify/backstage/releases) become available, as +> Backwards compatibility is not yet guaranteed. ## Phases @@ -83,9 +81,9 @@ guidelines to get started. ### Future work 🔮 -- **[Backstage Beta](https://github.com/spotify/backstage/milestone/19)** - The - platform APIs and features are stable and can be dependent on for production - use. After this plugins will require little to no maintenance. +- **[Backstage platform is stable](https://github.com/spotify/backstage/milestone/19)** - + The platform APIs and features are stable and can be depended on for + production use. After this plugins will require little to no maintenance. - **[Plugin marketplace](https://github.com/spotify/backstage/issues/2009)** - As the ecosystem of Backstage plugins continues to grow it is becoming From bf55fa1ea1de5142986789cc0daac68eb0da0229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 20 Aug 2020 08:43:23 +0200 Subject: [PATCH 088/656] fix(package.json): make yarn dev work better with double quotes --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b24c0ed2fb..e4aa18f540 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "node": "12" }, "scripts": { - "dev": "concurrently 'yarn start' 'yarn start-backend'", + "dev": "concurrently \"yarn start\" \"yarn start-backend\"", "start": "yarn workspace example-app start", "start-backend": "yarn workspace example-backend start", "build": "lerna run build", From 709f831ee1aac9578970811e78c652ed4e3bd482 Mon Sep 17 00:00:00 2001 From: Nikita Dudnik Date: Thu, 20 Aug 2020 09:54:38 +0200 Subject: [PATCH 089/656] fix: make docs table font color white (#2036) --- microsite/static/css/custom.css | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/microsite/static/css/custom.css b/microsite/static/css/custom.css index 392d9a31c2..c5e76eabe5 100644 --- a/microsite/static/css/custom.css +++ b/microsite/static/css/custom.css @@ -7,6 +7,14 @@ /* your custom css */ +/* override font color for new dark tech docs styling */ +table { + color: white; +} +table tr:nth-child(2n) { + background-color: #2b2b2b; +} + @media only screen and (min-device-width: 360px) and (max-device-width: 736px) { } From 0ee6ba404905cce6ddcfcd052dbcb7b56704333d Mon Sep 17 00:00:00 2001 From: Tobias Andersen Date: Thu, 20 Aug 2020 11:11:53 +0200 Subject: [PATCH 090/656] =Fixed problem with the stoppable wrapper not triggering the listen method on the http server object --- .../backend-common/src/service/lib/ServiceBuilderImpl.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index 1182cc6388..806096915b 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -218,9 +218,12 @@ export class ServiceBuilderImpl implements ServiceBuilder { server = http.createServer(app); } - const stoppableServer = stoppable(server, 0); + const stoppableServer = stoppable( + server.listen(port, host, () => { + logger.info(`Listening on ${host}:${port}`); + }), 0); - stoppableServer.listen(port, host); + //stoppableServer.listen(port, host); useHotCleanup(this.module, () => stoppableServer.stop((e: any) => { From d263219c2b8aa55a82ead09c2adf2a79cc28678f Mon Sep 17 00:00:00 2001 From: Tobias Andersen Date: Thu, 20 Aug 2020 11:12:16 +0200 Subject: [PATCH 091/656] =Fixed problem with the stoppable wrapper not triggering the listen method on the http server object --- packages/backend-common/src/service/lib/ServiceBuilderImpl.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index 806096915b..0e0feb6a37 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -223,8 +223,6 @@ export class ServiceBuilderImpl implements ServiceBuilder { logger.info(`Listening on ${host}:${port}`); }), 0); - //stoppableServer.listen(port, host); - useHotCleanup(this.module, () => stoppableServer.stop((e: any) => { if (e) console.error(e); From b3fa6ffadd31b2e2c2e11822ecf32dd72152928d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 20 Aug 2020 11:15:18 +0200 Subject: [PATCH 092/656] plugins/auth-backend: refactor providers for exporting with consistent casing --- app-config.yaml | 4 +- .../src/providers/auth0/provider.ts | 46 +++++++-------- .../src/providers/github/provider.ts | 57 ++++++++++--------- .../src/providers/gitlab/provider.ts | 45 +++++++-------- .../src/providers/google/provider.ts | 39 ++++++------- .../src/providers/oauth2/provider.ts | 54 +++++++----------- .../src/providers/okta/provider.ts | 39 ++++++------- .../src/providers/saml/provider.ts | 8 +-- plugins/auth-backend/src/providers/types.ts | 55 +----------------- plugins/auth-backend/src/service/router.ts | 8 ++- 10 files changed, 139 insertions(+), 216 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index 4321ef138c..01e2ff33fe 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -105,10 +105,10 @@ auth: clientSecret: $secret: env: AUTH_OAUTH2_CLIENT_SECRET - authorizationURL: + authorizationUrl: $secret: env: AUTH_OAUTH2_AUTH_URL - tokenURL: + tokenUrl: $secret: env: AUTH_OAUTH2_TOKEN_URL auth0: diff --git a/plugins/auth-backend/src/providers/auth0/provider.ts b/plugins/auth-backend/src/providers/auth0/provider.ts index 903f6dc63c..7eeca59028 100644 --- a/plugins/auth-backend/src/providers/auth0/provider.ts +++ b/plugins/auth-backend/src/providers/auth0/provider.ts @@ -16,7 +16,7 @@ import express from 'express'; import passport from 'passport'; -import Auth0Strategy, { Auth0StrategyOptionsWithRequest } from './strategy'; +import Auth0Strategy from './strategy'; import { Logger } from 'winston'; import { TokenIssuer } from '../../identity'; import { OAuthProvider } from '../../lib/OAuthProvider'; @@ -33,6 +33,7 @@ import { OAuthResponse, PassportDoneCallback, RedirectInfo, + OAuthProviderOptions, } from '../types'; import { Config } from '@backstage/config'; @@ -40,12 +41,22 @@ type PrivateInfo = { refreshToken: string; }; +export type Auth0AuthProviderOptions = OAuthProviderOptions & { + domain: string; +}; + export class Auth0AuthProvider implements OAuthProviderHandlers { private readonly _strategy: Auth0Strategy; - constructor(options: Auth0StrategyOptionsWithRequest) { + constructor(options: Auth0AuthProviderOptions) { this._strategy = new Auth0Strategy( - options, + { + clientID: options.clientId, + clientSecret: options.clientSecret, + callbackURL: options.callbackUrl, + domain: options.domain, + passReqToCallback: false as true, + }, ( accessToken: any, refreshToken: any, @@ -144,36 +155,23 @@ export function createAuth0Provider( config: AuthProviderConfig, _: string, envConfig: Config, - logger: Logger, + _logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'auth0'; - const clientID = envConfig.getString('clientId'); + const clientId = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); const domain = envConfig.getString('domain'); - const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; + const callbackUrl = `${config.baseUrl}/${providerId}/handler/frame`; - const opts = { - clientID, + const provider = new Auth0AuthProvider({ + clientId, clientSecret, - callbackURL, + callbackUrl, domain, - } as Auth0StrategyOptionsWithRequest; + }); - if (!opts.clientID || !opts.clientSecret || !opts.domain) { - if (process.env.NODE_ENV !== 'development') { - throw new Error( - 'Failed to initialize Auth0 auth provider, set AUTH_AUTH0_CLIENT_ID, AUTH_AUTH0_CLIENT_SECRET, and AUTH_AUTH0_DOMAIN env vars', - ); - } - - logger.warn( - 'Auth0 auth provider disabled, set AUTH_AUTH0_CLIENT_ID, AUTH_AUTH0_CLIENT_SECRET, and AUTH_AUTH0_DOMAIN env vars to enable', - ); - return undefined; - } - - return OAuthProvider.fromConfig(config, new Auth0AuthProvider(opts), { + return OAuthProvider.fromConfig(config, provider, { disableRefresh: true, providerId, tokenIssuer, diff --git a/plugins/auth-backend/src/providers/github/provider.ts b/plugins/auth-backend/src/providers/github/provider.ts index 78db99c75c..e6ba56d2c3 100644 --- a/plugins/auth-backend/src/providers/github/provider.ts +++ b/plugins/auth-backend/src/providers/github/provider.ts @@ -35,6 +35,12 @@ import { TokenIssuer } from '../../identity'; import passport from 'passport'; import { Config } from '@backstage/config'; +export type GithubAuthProviderOptions = OAuthProviderOptions & { + tokenUrl?: string; + userProfileUrl?: string; + authorizationUrl?: string; +}; + export class GithubAuthProvider implements OAuthProviderHandlers { private readonly _strategy: GithubStrategy; @@ -87,9 +93,16 @@ export class GithubAuthProvider implements OAuthProviderHandlers { }; } - constructor(options: OAuthProviderOptions) { + constructor(options: GithubAuthProviderOptions) { this._strategy = new GithubStrategy( - { ...options }, + { + clientID: options.clientId, + clientSecret: options.clientSecret, + callbackURL: options.callbackUrl, + tokenURL: options.tokenUrl, + userProfileURL: options.userProfileUrl, + authorizationURL: options.authorizationUrl, + }, ( accessToken: any, _: any, @@ -128,48 +141,36 @@ export function createGithubProvider( config: AuthProviderConfig, _: string, envConfig: Config, - logger: Logger, + _logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'github'; - const clientID = envConfig.getString('clientId'); + const clientId = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); const enterpriseInstanceUrl = envConfig.getOptionalString( 'enterpriseInstanceUrl', ); - const authorizationURL = enterpriseInstanceUrl + const authorizationUrl = enterpriseInstanceUrl ? `${enterpriseInstanceUrl}/login/oauth/authorize` : undefined; - const tokenURL = enterpriseInstanceUrl + const tokenUrl = enterpriseInstanceUrl ? `${enterpriseInstanceUrl}/login/oauth/access_token` : undefined; - const userProfileURL = enterpriseInstanceUrl + const userProfileUrl = enterpriseInstanceUrl ? `${enterpriseInstanceUrl}/api/v3/user` : undefined; - const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; + const callbackUrl = `${config.baseUrl}/${providerId}/handler/frame`; - const opts = { - clientID, + const provider = new GithubAuthProvider({ + clientId, clientSecret, - authorizationURL, - tokenURL, - userProfileURL, - callbackURL, - }; + callbackUrl, + tokenUrl, + userProfileUrl, + authorizationUrl, + }); - if (!opts.clientID || !opts.clientSecret) { - if (process.env.NODE_ENV !== 'development') { - throw new Error( - 'Failed to initialize Github auth provider, set AUTH_GITHUB_CLIENT_ID and AUTH_GITHUB_CLIENT_SECRET env vars', - ); - } - - logger.warn( - 'Github auth provider disabled, set AUTH_GITHUB_CLIENT_ID and AUTH_GITHUB_CLIENT_SECRET env vars to enable', - ); - return undefined; - } - return OAuthProvider.fromConfig(config, new GithubAuthProvider(opts), { + return OAuthProvider.fromConfig(config, provider, { disableRefresh: true, persistScopes: true, providerId, diff --git a/plugins/auth-backend/src/providers/gitlab/provider.ts b/plugins/auth-backend/src/providers/gitlab/provider.ts index e9246a30c0..1c2a822d82 100644 --- a/plugins/auth-backend/src/providers/gitlab/provider.ts +++ b/plugins/auth-backend/src/providers/gitlab/provider.ts @@ -35,6 +35,10 @@ import { TokenIssuer } from '../../identity'; import passport from 'passport'; import { Config } from '@backstage/config'; +export type GitlabAuthProviderOptions = OAuthProviderOptions & { + baseUrl: string; +}; + export class GitlabAuthProvider implements OAuthProviderHandlers { private readonly _strategy: GitlabStrategy; @@ -96,9 +100,14 @@ export class GitlabAuthProvider implements OAuthProviderHandlers { }; } - constructor(options: OAuthProviderOptions) { + constructor(options: GitlabAuthProviderOptions) { this._strategy = new GitlabStrategy( - { ...options }, + { + clientID: options.clientId, + clientSecret: options.clientSecret, + callbackURL: options.callbackUrl, + baseURL: options.baseUrl, + }, ( accessToken: any, _: any, @@ -135,36 +144,24 @@ export function createGitlabProvider( config: AuthProviderConfig, _: string, envConfig: Config, - logger: Logger, + _logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'gitlab'; - const clientID = envConfig.getString('clientId'); + const clientId = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); const audience = envConfig.getString('audience'); - const baseURL = audience || 'https://gitlab.com'; - const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; + const baseUrl = audience || 'https://gitlab.com'; + const callbackUrl = `${config.baseUrl}/${providerId}/handler/frame`; - const opts = { - clientID, + const provider = new GitlabAuthProvider({ + clientId, clientSecret, - callbackURL, - baseURL, - }; + callbackUrl, + baseUrl, + }); - if (!opts.clientID || !opts.clientSecret) { - if (process.env.NODE_ENV !== 'development') { - throw new Error( - 'Failed to initialize Gitlab auth provider, set AUTH_GITLAB_CLIENT_ID and AUTH_GITLAB_CLIENT_SECRET env vars', - ); - } - - logger.warn( - 'Gitlab auth provider disabled, set AUTH_GITLAB_CLIENT_ID and AUTH_GITLAB_CLIENT_SECRET env vars to enable', - ); - return undefined; - } - return OAuthProvider.fromConfig(config, new GitlabAuthProvider(opts), { + return OAuthProvider.fromConfig(config, provider, { disableRefresh: true, providerId, tokenIssuer, diff --git a/plugins/auth-backend/src/providers/google/provider.ts b/plugins/auth-backend/src/providers/google/provider.ts index d956cb2f44..d4455ac4d3 100644 --- a/plugins/auth-backend/src/providers/google/provider.ts +++ b/plugins/auth-backend/src/providers/google/provider.ts @@ -47,9 +47,14 @@ export class GoogleAuthProvider implements OAuthProviderHandlers { constructor(options: OAuthProviderOptions) { // TODO: throw error if env variables not set? this._strategy = new GoogleStrategy( - // We need passReqToCallback set to false to get params, but there's - // no matching type signature for that, so instead behold this beauty - { ...options, passReqToCallback: false as true }, + { + clientID: options.clientId, + clientSecret: options.clientSecret, + callbackURL: options.callbackUrl, + // We need passReqToCallback set to false to get params, but there's + // no matching type signature for that, so instead behold this beauty + passReqToCallback: false as true, + }, ( accessToken: any, refreshToken: any, @@ -147,33 +152,21 @@ export function createGoogleProvider( config: AuthProviderConfig, _: string, envConfig: Config, - logger: Logger, + _logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'google'; - const clientID = envConfig.getString('clientId'); + const clientId = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); - const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; + const callbackUrl = `${config.baseUrl}/${providerId}/handler/frame`; - const opts = { - clientID, + const provider = new GoogleAuthProvider({ + clientId, clientSecret, - callbackURL, - }; + callbackUrl, + }); - if (!opts.clientID || !opts.clientSecret) { - if (process.env.NODE_ENV !== 'development') { - throw new Error( - 'Failed to initialize Google auth provider, set AUTH_GOOGLE_CLIENT_ID and AUTH_GOOGLE_CLIENT_SECRET env vars', - ); - } - - logger.warn( - 'Google auth provider disabled, set AUTH_GOOGLE_CLIENT_ID and AUTH_GOOGLE_CLIENT_SECRET env vars to enable', - ); - return undefined; - } - return OAuthProvider.fromConfig(config, new GoogleAuthProvider(opts), { + return OAuthProvider.fromConfig(config, provider, { disableRefresh: false, providerId, tokenIssuer, diff --git a/plugins/auth-backend/src/providers/oauth2/provider.ts b/plugins/auth-backend/src/providers/oauth2/provider.ts index ed3bbba6ea..72cd76c4cd 100644 --- a/plugins/auth-backend/src/providers/oauth2/provider.ts +++ b/plugins/auth-backend/src/providers/oauth2/provider.ts @@ -42,8 +42,8 @@ type PrivateInfo = { }; export type OAuth2AuthProviderOptions = OAuthProviderOptions & { - authorizationURL: string; - tokenURL: string; + authorizationUrl: string; + tokenUrl: string; }; export class OAuth2AuthProvider implements OAuthProviderHandlers { @@ -51,7 +51,14 @@ export class OAuth2AuthProvider implements OAuthProviderHandlers { constructor(options: OAuth2AuthProviderOptions) { this._strategy = new OAuth2Strategy( - { ...options, passReqToCallback: false as true }, + { + clientID: options.clientId, + clientSecret: options.clientSecret, + callbackURL: options.callbackUrl, + authorizationURL: options.authorizationUrl, + tokenURL: options.tokenUrl, + passReqToCallback: false as true, + }, ( accessToken: any, refreshToken: any, @@ -150,42 +157,25 @@ export function createOAuth2Provider( config: AuthProviderConfig, _: string, envConfig: Config, - logger: Logger, + _logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'oauth2'; - const clientID = envConfig.getString('clientId'); + const clientId = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); - const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; - const authorizationURL = envConfig.getString('authorizationURL'); - const tokenURL = envConfig.getString('tokenURL'); + const callbackUrl = `${config.baseUrl}/${providerId}/handler/frame`; + const authorizationUrl = envConfig.getString('authorizationUrl'); + const tokenUrl = envConfig.getString('tokenUrl'); - const opts = { - clientID, + const provider = new OAuth2AuthProvider({ + clientId, clientSecret, - callbackURL, - authorizationURL, - tokenURL, - }; + callbackUrl, + authorizationUrl, + tokenUrl, + }); - if ( - !opts.clientID || - !opts.clientSecret || - !opts.authorizationURL || - !opts.tokenURL - ) { - if (process.env.NODE_ENV !== 'development') { - throw new Error( - 'Failed to initialize OAuth2 auth provider, set AUTH_OAUTH2_CLIENT_ID, AUTH_OAUTH2_CLIENT_SECRET, AUTH_OAUTH2_AUTH_URL, and AUTH_OAUTH2_TOKEN_URL env vars', - ); - } - - logger.warn( - 'OAuth2 auth provider disabled, set AUTH_OAUTH2_CLIENT_ID, AUTH_OAUTH2_CLIENT_SECRET, AUTH_OAUTH2_AUTH_URL, and AUTH_OAUTH2_TOKEN_URL env vars to enable', - ); - return undefined; - } - return OAuthProvider.fromConfig(config, new OAuth2AuthProvider(opts), { + return OAuthProvider.fromConfig(config, provider, { disableRefresh: false, providerId, tokenIssuer, diff --git a/plugins/auth-backend/src/providers/okta/provider.ts b/plugins/auth-backend/src/providers/okta/provider.ts index cfae366f7e..db8e0cf313 100644 --- a/plugins/auth-backend/src/providers/okta/provider.ts +++ b/plugins/auth-backend/src/providers/okta/provider.ts @@ -41,6 +41,10 @@ type PrivateInfo = { refreshToken: string; }; +export type OktaAuthProviderOptions = OAuthProviderOptions & { + audience: string; +}; + export class OktaAuthProvider implements OAuthProviderHandlers { private readonly _strategy: any; @@ -61,11 +65,14 @@ export class OktaAuthProvider implements OAuthProviderHandlers { }, }; - constructor(options: OAuthProviderOptions) { + constructor(options: OktaAuthProviderOptions) { this._strategy = new OktaStrategy( { + clientID: options.clientId, + clientSecret: options.clientSecret, + callbackURL: options.callbackUrl, + audience: options.audience, passReqToCallback: false as true, - ...options, store: this._store, response_type: 'code', }, @@ -167,35 +174,23 @@ export function createOktaProvider( config: AuthProviderConfig, _: string, envConfig: Config, - logger: Logger, + _logger: Logger, tokenIssuer: TokenIssuer, ) { const providerId = 'okta'; - const clientID = envConfig.getString('clientId'); + const clientId = envConfig.getString('clientId'); const clientSecret = envConfig.getString('clientSecret'); const audience = envConfig.getString('audience'); - const callbackURL = `${config.baseUrl}/${providerId}/handler/frame`; + const callbackUrl = `${config.baseUrl}/${providerId}/handler/frame`; - const opts = { + const provider = new OktaAuthProvider({ audience, - clientID, + clientId, clientSecret, - callbackURL, - }; + callbackUrl, + }); - if (!opts.clientID || !opts.clientSecret || !opts.audience) { - if (process.env.NODE_ENV !== 'development') { - throw new Error( - 'Failed to initialize Okta auth provider, set AUTH_OKTA_CLIENT_ID, AUTH_OKTA_CLIENT_SECRET, and AUTH_OKTA_AUDIENCE env vars', - ); - } - - logger.warn( - 'Okta auth provider disabled, set AUTH_OKTA_CLIENT_ID, AUTH_OKTA_CLIENT_SECRET, and AUTH_OKTA_AUDIENCE env vars to enable', - ); - return undefined; - } - return OAuthProvider.fromConfig(config, new OktaAuthProvider(opts), { + return OAuthProvider.fromConfig(config, provider, { disableRefresh: false, providerId, tokenIssuer, diff --git a/plugins/auth-backend/src/providers/saml/provider.ts b/plugins/auth-backend/src/providers/saml/provider.ts index 1ccee1a9cb..56793d85f4 100644 --- a/plugins/auth-backend/src/providers/saml/provider.ts +++ b/plugins/auth-backend/src/providers/saml/provider.ts @@ -123,7 +123,7 @@ export function createSamlProvider( _authProviderConfig: AuthProviderConfig, _env: string, envConfig: Config, - logger: Logger, + _logger: Logger, tokenIssuer: TokenIssuer, ) { const entryPoint = envConfig.getString('entryPoint'); @@ -135,11 +135,5 @@ export function createSamlProvider( tokenIssuer, }; - if (!opts.entryPoint || !opts.issuer) { - logger.warn( - 'SAML auth provider disabled, set entryPoint and entryPoint in saml auth config to enable', - ); - return undefined; - } return new SamlAuthProvider(opts); } diff --git a/plugins/auth-backend/src/providers/types.ts b/plugins/auth-backend/src/providers/types.ts index 78cd4e1fe3..bdc12a382f 100644 --- a/plugins/auth-backend/src/providers/types.ts +++ b/plugins/auth-backend/src/providers/types.ts @@ -25,7 +25,7 @@ export type OAuthProviderOptions = { /** * Client ID of the auth provider. */ - clientID: string; + clientId: string; /** * Client Secret of the auth provider. */ @@ -33,58 +33,7 @@ export type OAuthProviderOptions = { /** * Callback URL to be passed to the auth provider to redirect to after the user signs in. */ - callbackURL: string; -}; - -export type GenericOAuth2ProviderOptions = OAuthProviderOptions & { - authorizationURL: string; - tokenURL: string; -}; - -export type OAuthProviderConfig = { - /** - * Cookies can be marked with a secure flag to send cookies only when the request - * is over an encrypted channel (HTTPS). - * - * For development environment we don't mark the cookie as secure since we serve - * localhost over HTTP. - */ - secure: boolean; - /** - * The protocol://domain[:port] where the app (frontend) is hosted. This is used to post messages back - * to the window that initiates an auth request. - */ - appOrigin: string; - /** - * Client ID of the auth provider. - */ - clientId: string; - /** - * Client Secret of the auth provider. - */ - clientSecret: string; - /** - * The location of the OAuth Authorization Server - */ - audience?: string; -}; - -export type GenericOAuth2ProviderConfig = OAuthProviderConfig & { - authorizationURL: string; - tokenURL: string; -}; - -export type EnvironmentProviderConfig = { - /** - * key, values are environment names and OAuthProviderConfigs - * - * For e.g - * { - * development: DevelopmentOAuthProviderConfig - * production: ProductionOAuthProviderConfig - * } - */ - [key: string]: OAuthProviderConfig; + callbackUrl: string; }; export type AuthProviderConfig = { diff --git a/plugins/auth-backend/src/service/router.ts b/plugins/auth-backend/src/service/router.ts index 70cd6d8f99..8ea1d412cb 100644 --- a/plugins/auth-backend/src/service/router.ts +++ b/plugins/auth-backend/src/service/router.ts @@ -72,7 +72,13 @@ export async function createRouter( ); router.use(`/${providerId}`, providerRouter); } catch (e) { - logger.error(e.message); + if (process.env.NODE_ENV !== 'development') { + throw new Error( + `Failed to initialize ${providerId} auth provider, ${e.message}`, + ); + } + + logger.warn(`Skipping ${providerId} auth provider, ${e.message}`); } } From 774a00072950db09dbd33e97a58e8089fc0e11ef Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Thu, 20 Aug 2020 13:57:59 +0200 Subject: [PATCH 093/656] Readme for api-docs Plugin (#2041) * docs(api-docs): add details to readme * docs: fix wrong markdown in readme files --- plugins/api-docs/README.md | 20 ++++++++++++++++++- plugins/api-docs/docs/api_list.png | Bin 0 -> 275828 bytes plugins/api-docs/docs/entity_tab_api.png | Bin 0 -> 426842 bytes plugins/api-docs/docs/openapi_definition.png | Bin 0 -> 298487 bytes plugins/auth-backend/README.md | 2 +- plugins/catalog-backend/README.md | 4 ++-- plugins/catalog/README.md | 4 ++-- plugins/identity-backend/README.md | 2 +- plugins/rollbar-backend/README.md | 4 ++-- plugins/rollbar/README.md | 4 ++-- plugins/scaffolder/README.md | 4 ++-- plugins/techdocs-backend/README.md | 4 ++-- 12 files changed, 33 insertions(+), 15 deletions(-) create mode 100644 plugins/api-docs/docs/api_list.png create mode 100644 plugins/api-docs/docs/entity_tab_api.png create mode 100644 plugins/api-docs/docs/openapi_definition.png diff --git a/plugins/api-docs/README.md b/plugins/api-docs/README.md index 7ea87004c3..db78b60373 100644 --- a/plugins/api-docs/README.md +++ b/plugins/api-docs/README.md @@ -3,7 +3,25 @@ WORK IN PROGRESS This is an extension for the catalog plugin that provides components to discover and display API entities. +APIs define the interface between components, see the [system model](https://backstage.io/docs/features/software-catalog/system-model) for details. +They are defined in machine readable formats and provide a human readable documentation. + +The plugin provides a standalone list of APIs, as well as an integration into the API tab of a catalog entity. + +![Standalone API list](./docs/api_list.png) +![OpenAPI Definition](./docs/openapi_definition.png) +![Integration into components](./docs/entity_tab_api.png) + +Right now, the following API formats are supported: + +- [OpenAPI](https://swagger.io/specification/) 2 & 3, +- [AsyncAPI](https://www.asyncapi.com/docs/specifications/latest/), + +Other formats are displayed as plain text, but this can easily be extented. + +To fill the catalog with APIs, [provide entities of kind API](https://backstage.io/docs/features/software-catalog/descriptor-format#kind-api). +To link that an component implements an API, see [`implementsApis` property on components](https://backstage.io/docs/features/software-catalog/descriptor-format#specimplementsapis-optional). ## Links -- (The Backstage homepage)[https://backstage.io] +- [The Backstage homepage](https://backstage.io) diff --git a/plugins/api-docs/docs/api_list.png b/plugins/api-docs/docs/api_list.png new file mode 100644 index 0000000000000000000000000000000000000000..abc948b3c624ef3cfaada1c2f201c6a5b55f2a55 GIT binary patch literal 275828 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%0DHZD*2izS^@u%>f;Y>&cmUm_E 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%0AY`!HCC6zS-T_IP+i8Rx`1@y-UnXb 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%0ACFpvP=iSPtl`+@Xv?)>l1h)yE%1AW}mth0p)?% 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 G5}E*dJz2g0 literal 0 HcmV?d00001 diff --git a/plugins/api-docs/docs/openapi_definition.png b/plugins/api-docs/docs/openapi_definition.png new file mode 100644 index 0000000000000000000000000000000000000000..af04946b1987e4970b645bc0c5fbfead8ebc8fc8 GIT binary patch literal 298487 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

uF2#8>@#3*16@6}Oms^%4WudQ1vAGUG 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

jo{P2I~1UTS$%FY8`O zPj9n;s8Q_t>EW(#FdytBm{Wr$nfUqZ;Hi;?mr%4P%$5D^w@~%S!@uOtYoz6*i}#zO zxfa{PmRZYpz{Pg0%i`QLXxoPwD+*3|@l6$M{;aFUkgHvrGrdieSw+lWP^B5s^4CKL zpC$Z1vd(^Z37kAs&(=UfU|~(m3QEMHH~sAXAdU;3rws zMJpYRng^YWmLqBndKJpdZ<=|L`XIOq1#N?PELJ_P>b7C=co`N4){L0i=Uxvqv;9pLC2-gr>?h-v^k%$ zVK+sG6ic-<8r~Auz6)J?QmdwYas+-N$Hnf&`cs1~1s(@11JsK~N|MUc67Hn6y@Pkru@+a%oG@6D9B5o++8Y+TNEzg!3$`Hnr9^QBIPvjT30Mdjox zxF)!%8QN#7hv`&ff6^VlB7(qk{;{KBV&Eh1zr=diu<7ap)1| z-6_mTYnzTW8l`^K_i{&rMFe9BlytNp9LMl~hCj~2Z)j%Ng~A^6fzOWc8nvPOWT5Xq zd>6Y?50i4woG~H8=G|;xkBz~;E?MqY?3Ucr8+`sZhC9^y$} zQya;E{-Id40OptkrCfIH`#rp{LC4oWFyvQtrx?PI5`-cgwm-?r%u;x)EWagB7SYF_ z6ljDqHLQQpP?(tG=C7=n(;}^%V@(snA@Zg&2+ooXp_;tN4?uI&G}=6_4@yGWa-f>V zr$I@Z2$jr)8M!D8?D?35eI#Iki3++SiOD%b&Xytl*`U^xg)8vud_*g^lX`Z99%H9% z2Sa3oinZdRtOPsN^mi4046lnMOhja|dfnASPc9gVsc!<;FU~h+SxO+gj3WE z(auZR3{nzn$O27uhKP^okX2>&AtxnLD9yH9M+6exQdF(R=37# zvYTY$_E9;q5`H-3%d^7#qo#6gdYU-Hw2-vy(M9UUmhsjd(P|$~DW3|*E?v=_Yth8o zb>Bw?W<6s;DawbnrASIHiD#K%QkV*L^60IsYbP%`wHYToa>Vt;c=@W+Btzo`h_8;1&2SNFvM7K|LhQ zwU^4VqR`%g7c4YE*%pBkud$`QB$^|m-{Q+D6qs%Z!807d<0A{;!SqH8Ha;Dn-W5i< zM<%kIyAR$-4Mr#2CC%T1t9jR(^UJBFzD*nJ~% z$WpuXi?)*Y$Ql6H5|1R1Thes6CwtCbt~!BP zf=tUoRt90q1EmGGyoAXiOj$}E;*&Eo0vTjw_}fzk`Vc#z zx~^^u0GsQg4lMf*l2r8YXI?IlBIqo|3%_nXH@eX57#mkMkM=(iS<|sAYne~@sKpPP14@#t+?A#}?zK6Q&rz1zl`wd^y8PJVQ|oV72-k{RdJ6d5OG5jgZ~8%@$78Q>md z_cM;av>*`Cpm%+v$u?aL{A8wLqO^95dd74K6E2FUQV zK9e-x1QTdB=zVBNcu4ba=`8%$)!$hvB|IKv5hhsF+C?$^-dGR_j|*w>nBgv1!X2}P z{Rs8I{F=cWHXUEe64BmJIr&sB>&tN~lXNvj#bd3D9W4A2^^`L@Snm@KtqUC;FHW4$ zzi~u}%Xjq)x%uwY#_M^UvSUonsRi*ZU6LcXjZUNFEAr+-y= zX?p*1M2*F|j7+>?)@0~M)&om7;jE8a13o^@LZOsg!ybV`0$hF4*;a@E6@#r7eR;}&q+>h)2z^M}F1@Mclj z^YzZzW9SO<3qrSuyL>XlQs8gNy`D8FnDR3OGjY_(W;TuyC-@~Vc%U<>@H-cO5_C2n zZ;$|HYJ%!^a4ffz!WBSA-z+m9GvbU73F|WI>Z1B4G8x&O{#_^QUX>x{OYccI9+qSN z0Q{bE%|?1RiV`@K5pYE#s2Tv)x+TR>qPuz-uaCheL~V(xOFS-JjHB#524!Xmm#6q6 z*+>K=Sp3Wqiu2D!+)D!asrUTEhFN-m%Tn^noAdfKMc89(I$#6K3sHedbUcbBvhloR zn-v4|)K3g-Un2BH-E@s1Fl`iqy-Fd0;t~_)odz0D&QxtGk@=a>*$pnHhsRkk?iooO z8zB#eMlI&%_$hM>^&NAg$t=Yr;T!Vvi1a^Fu3(^jtkHY3AIk|HEJDBe3FB=Q@>4Q@ zFlkAk_7tJ;c!;E{O_=0JQnR@uvK%6UB-o~p)t8Au;IHZ2CHt!C%5GJ-)tA2T3QSn= zj+(y1mlTAIJa8RXr<(Q_i_LD-5iJ$*Ca2K4#1yp(ox8o2@P-~E9oW|-WW|n`Np)Mj zBqZBiqVG?2WTtuwkZ2~kBI58yV;3d$wBF7FUh-19IIZo?-7K=L<#&Gx9qiNZ1%c$n zx1F-+D@HWf!G`1`{Ok233E(iL-tbX1jgnZV1=_IWn^R6rdfQhk#_y<7vTj{6K0Eg(6#`+??ZZK>CLaio)tObIZZqV_S{@^AD5*#d$QO>oSsj%mF5Rio>1uc z*)(s6$+tNCXabFSAyy5<)&z~Zdyxc&Ga91c?7seTN)}x4sAq1y&e@o7{99dX@}Lk& zW{>E#7VCEJU>;Xf*cQ>GH{6J%XkdujLkdhUME50e<*072(bSOEnpN^km-Rajrt`a&}(UX#n zptxsU`RsvaA?e<(azX2Ga<7US>I2zUJ&=0)F$FFS<51+wP(Qc@x}cAH!~5k;Zva@o zexxv0r>np{E$m)m8$Y~_YnoF1j?2z(UmwUOs zml?s9uCf4YRk{!a8*oj>W+OMiEyoFk<|e};yZNPG>xKU8jhQ-8J%eYWJ_$NCwS-UNEeeOI)R~$GSC>o-T{4WwM59uT_09Q;<7uH-&+bc* z@Yw5udo97wjig#egzswS1;Ve*Ob7h<+*}is>3D`>Wo#<@EH=_1;@qowernCD6GjHt zFKssu7dvZO8BSO0}?fn(26a1 z1_%_6|8tM|1r%I(YnR7|W2@wgU`B|KK<8R{s>XFyJed5oAfuU z9_&oFVhbq8)x7=q(s#2eN{{$!b-8flGl4aN&%uLhkY!0sc*D04Brz_5a>^F#a%XHQ zExoq@ap8IG=V#p@O%LO^_vzuII`qRJ#mLU_?W44ary!NC<*<)}Fl1|4m`Z=Oz%w>q zaUo2w*ueE2AKOxwbrE+U)YEcNUld}iwJ1ien$ntQ_FD19iJv=zHabc&PRkR%3R#&Sth@r8C}v*`zpIlojUL5Ntb!HUtmg zM2)`e&tjx!10*2kE9>ogV&M`Lb;iXS`+oF?IHhoSXyRUlRG4#mv(Re=<{uxD?(tI3 zTCV!NRG8;jXqa&hbw7l0m(z9600-nY{_2>X`5QeSP?=I;OWfD?nJ?uNalUWuMvT*% za3$jEjazCn4sEHO85SK(>os<13CZmknilqYlPKXUDNA$QyA_GJXO9HfQ?RZ6_dvstjH3}3slEyLAFW+RBrdl21s-8wjBEb#<PWg9K z8?$FeN8cR3aCECTK6v*FKG}wZlt|v@21=xPXs(UosF{+49c(=lzFgMMN6K3moa_6Xv zbL;c%c)zNxuXTlWvqHLrKz@{C(>4?u!iI435fpyMM|3K)gx8UVZ8InwV4Jg542e7DO zP}Oz(`nb)OVu21k)-A>?SPjH;HmzcrqmF_OK`+wIG0^4i;34cFVj^n zfh4mIBto8!n7U=X9vf1#NxhvY2oVbP+~y}2r<@aXH-i+^m0g#sy9 zLdzWY=R(&!sjxi0B%d(j8=jVo&wNiYFC73-wj1ZmrQs`jx;02f*UV>OaXxj%8xG~q zivgnYJSVUpXTfuq*Vz`W5eBM=d~7YgZ(JB(sTZ;GgUhBx9s-T=(HFSntl{gjS3U)q!tzpU1>4jua(oJ!qIWy zKXnX;sE-1=Ha(qsXQ&1r{$7`c<14YLcdt*aIF+m2fDy7Aow7&eU|K zzg%meD4^vTb(PULc>6By{U@zPZ5@yIHlEjG7|*pJ5SM&Qf`ilPys^76jR4{~HAAv3 z=zI(=M3Wj2i5Fj~`vTqq}{U=UVU3nFIf0pA(l1b*>fMl_=99` zh1eYz`z&ga zt5oG{64lQ2%e%JR5cV94`&gl8)MDnl#i3E^6fY?c`P{QxbxPDIo35v$jBW4qXOq>cjK!pt;>7Nr z!WT;fhhn|FL{g)0*x*Sxq@H61t{9*)-AYU(O4}o%<}qAERpa59kI?MI9m1njqpl$# z?$@jDH<~8!ivtT&ntkuUO}P!{D}^ajd1X)yL0q2_qyGhpd|yF2>q$h{3QI>OK5}Q>J*@? zfcR2|d!;H##uqBiW}0SwU*sLia0B>_OAMd5mZlFpTuCE=W9_hUm1Zz8aTvn@iAj?# z)9^)k?BP&Dv+)0qJO9mMl!?!98DwYbXP!A&mL4S0rwd;DGF`zU<{8(#swI1$_ zs{^k31Q~M-gf&2Z(wh%`-j-^5LU#{O`H0ojkd=C<0o_2fl9sF3&!SHG$8ex+R4c|h zl%AX+s$Z=**g-$6DgL>|lo1`2onlP!&k6_?+JcIvJP~^R>21?iC}K91qfg1TV2f#8 zRscT%nsaLX91E^6EWsF9pCn80sY@!R`KVt&)>%PkzS5s!3t-Toibo*^I76}o+p_4L zO{r&*EA0-UZ~7cKOdJI-^Ihop@upLABlyXTjCvMhhbMYF_>=q6i|;#4Vze2d;q)(4 zKm#wzJa&*O(wbW8Yzx*HaT6A`Ujc#l%Z_v)86$}ogC3>mnHpv20uFOQSv2#hoasOP zzBAe}!o42#$BmvpEQTgND?Z93jEtO}yKYX{f0+1?(BIml3|Y2+%TDbwd!{f4Moa=< zWY-glScK68Foq5ub}BgP-1diN&vTsw>YaChn^yN7<&_``H6E1y$nGUHk@Zc0m6x_m z_+Eb?lzN0_f;|}#aLU3~uKK4cRkd${$k*9G{fp1M+$wm}fL<|QwU?aq!fk40aZ`4s z^3`VtUoDVElPo0ZCRo#+NXUg(&{n=b8fIB=Cx4r3@({-85P3)h#)KnyVq27?pj1Po zmI~hged_#*6s97a92_1)Qi~GOErLabZ_V`_TDgaR2ktW;IuRfC?UaEr7}&H>LT5DI z=pL|QbXid(7JW~d`c~K^4$b#WHKp4GY|;X!Z9^s=-*IKERZX(z5>;?bt||%f@K07k zbPO}$tW2>*-U_P73S@Df9=3T6+db5&*tc{e%&~JxvCjdZP$)ZE=#qw)H_Bn&1-!*& zhn7qRrQ=q4iooROLI8FRXd{I`00Nmkzd%yHONXY)fPE)EKtjV4pKjp7bT7HmSlr@5 z{^CM*e+$ky9CrYI#yafyPl=7;i0-NxF7F36VWmZpV%763wr1g8Lx>;8wDQ_Wl@Iaw z&WXeLd{&u`WtS0$J4b91X?jk;jZ91IC@K&pWw}+u@4_P~B1QB;G-g~`+bV0U?{4C{ z+l(YA{t})d|CVY-Yxcj)=(_??lRMJ@POX{eh-a}x*`RL4J35<}kRGKP{n`CELe4pJ zt@Mr;xy+(0q0i)8Gq)2wqRF?;QxD7U#o6G-n8T{X()SHa7OUS0J*p${Wbx>DQSr2LZ9g6HPtLG=-v# zrAV6L*~sd~XZHn_gS@ZAMNG*HA<{su`j5x^DIN)P%l%D4WDd+`e!azc%PK)=V%yzI zls3zrp~(-#fs#)A|`HcN;E*oZxs-#Pf})D_p{8hpLL;P1ga5!oBnTem{4jYRTJzfH^ZUI~Xbkm0bMs-s z6JF61i#OZA4BR*CTw|DaeWQ{Wq(@0vdAmbDZGtD$qugqJ0ew=?7u-6J1!}qHPGhPa zz%csR!H+J>b4EH4flzx%`0hIft4Trn(HUdi_Duy()$13GsFHxO;k3#2Kuh|wXZo^OJD6-^0gY*(+9^bUcHZ069 z(FTNl?Ftg+^={LsOpO9up3Gaqxy#T0qb!d1WMuZ3u!k`p1o0~B&IzJz}n?srt zSE7UUr}f`aZYW`H6|g(5?j*pwhqTKWh0-=ui?&dS-btLH%f=R72=B_niKp@T3-v9v z?;~UgS4VWQU+~-*A$~|TVwOcn&(txG-7+^-0>?ZiDgTJ$L>$A~dBnoWVhHs&QsHh# z5_#p9oczAmWWG3~VqdP9+b67pHDnKQ@!mxHD~47aCAi}yxUC&L7VhP0Loc1AXZeqz zmotvAyFuo&Ir}EqQyEb8;0*jy+FM`J1r(}#q5!PAafJRc$^FMk`*a)k(0SgyUBE7% z5I+(pW`LO&A>q2J8H9vuQV%3q{Pw)fqKsM}FdWiRFEop9_if$C&qTcDGsjIgOw)A=ulqNrb+ zu#+X@HBD#s{HsU)`n40}4J8}K5{xhRZEnvFdbTW{FkfdZ-uee$JtUrFV~VFN}rANssruP2t#dD=z{ptsjYX<|){!PjMQqE?i9m%z1#>Ka?LOad- zL($o!80KDT*Ys0I(Nw&s|2C2Iq3V#N~=Htsbe9^A+}wWeOTZkW)1_&4#NTyv2c9|op* zE}|pOWw#lp@fv;Yp(6lkS8DeG0zy5dHLN+}#pn0eh001_FbzDvj;waklDMWI-vZK} zsknUw(36(Q+Pj?nw6wGOYMSET$M8RWFk@_jT|eNm zj*Lt)HwiS7+c1&vV8Njn7InsNEb`T>SGA_5Yr3KvJDxpz7WsoYJL{wG^UW;BSAA3G z=5`mh*S1CUIA4W^}N?p^#-M)TPA{GsITvSWjeb#^dqWTu*WcLPocEbSO$8ALsBAr?!4E@Vpl@XoF~<8Hs8F*)Re0X5$$8sjTJC z+w(T8g0Ic(LSP6R$#$fC6P6uCsvTz*y2s45=+=4Sr786_#PDE9{%ci;-@*H;#WbPT z4#1}Pq@whhSL;F{vTH!;30^m>HbXmbMjLhhQTw`}|E#YNR^ z=gyteZ5IY^3aI+O5QlDF0KyRM?XbUYD}c82G+~&v&;-cNY#nASwg7}Q17hd;!+C4r z(JzmIm~180cc*6`0C7Cm`s#sQ0NQogQ4V~O#+@|`S!)b7KqS=u-Fe5>m*b&=G@~`d zzka^7yz&+pqYWmc0(EM7C z0GQCmO|JnwfPC=Ri~g0h0^{2_Sn?bR=-XMAg40+7UR+&;Ef2qx0AekSW;U&rg8>4U z-u3$`X4t%zEH}M2W5Qn&F}z;)M>w;*4MIK#6+pk!>wPyrxLkv>x(U5GK{Gp3P3H2y z8vEa5e^VVW9opw>0ant0R`e`9&#(1P5cDNy;{+|Z0p#(LCTRJ9*0{Z$KhxU>T0@f$ zuyVW1IAy!(%vj)6L4VNO*76;Ts}gdRCAO7m0&uhNC3`K6Qk4P8<3WjSZ#DxT_O;*r zb*-5`TAgY8g8;`Ez!3DtJhaxDX~-_Xoa>GlHd+9dD8FTm`K{k@&1~KOk5+Jhr$6J@ zLSPO08LwESuVJoc34lTG_?ZD%R=Fxx1G0v!fC+)k4gm71+_#pp04oJDtN$$h|L>Rn zf0X`zpuhi*(*L9Me;*dN0gm#1PfH4r1_K2E%TS_@=#q2)sBAw3|$&YbLFnhZLfGXQUt$K$Hb{oZ|wfX_0#x!d?Z25T&px?d#yw=$CH#x&(k2H<- zi&o;p4in}Fj8Q--CPc}1{K^`z>wpuGnb8Vky*JSgomGvP0LIS)QjxVL>GBf*u7CE{ z2r>?u8SnwxOFjZ4d;IT}$?;0u>K^%YoR^Qn2zdcqee!$1^@~u2ZKAc(sS_e#@N`qD z05qU6*ZKIQ$a6Ah-po{_*$@9^H-5W;txBBFd)?Qhp<#~z7#|nszUP!FaOYw6@nF?6 z@duV=!v%HESJImRQGi1H)0F_{S!=Rl(4G zJ=?ADr&2uR3>G&0oh52ZcWW5$WiBd^6nO&~O9_ME|QYBH$tZPo<9j zlS=$2mH7A3_kZhDqMf+GZ@g9ZX;R_Nr@-OK9s9JmEsO#8HH}dLcD;CcA+iB&tb6Z( z@_tnrG=D~>Qf*K*(2Kb*@GkoBbbnEw-`6pZgkzlh@j}D7FB7#ebZZu zVeB1lH-V!7zdVzU+_+`z(eU8Yy7Yn_bu-cOkzV}P9Vr~V63<(0lH}Ln^iN^*t>%G^ zWbGGwVejv+TeeVj8Ncus3OqsI1XP6NWK6;=?L#Ie-`$>jj}HvRrPB&koazqAdhe8F zQVvctO$Tt}Cg_^m_L$`vpRY%qYU6GAiymr*z%k#H*zK|d?~U$O`JVksLBFF{mYM$3 zyOX7WD165(=*!S<09K?GwafkE-wqqhOP6+ER8f<0#VEhoRVz~B?BoynU8H$rYV?jZ z8i%0m7b2aObt*f0{@!?0Ip?k8*)RR10bwk!&#kw z@P;1S@=eCx`1~l+*qD3JhlBE#R^m9C7MyN04Y;T;&e0pw^GWYfQ`#Ej92)v@q_duG zpeZJ$gw`fT>nv4~dr{t1*Yb>$?C9NdX z*2+L{WFWn?$2Iix1E2ZL{83mg4^|YPGl(J!et*ZVc4+lR{ByY^8MZ1X)pgNCDDZ*B z4f6kooJuyynB2A0cVpvy2)jOF2EoI_TTY)UIzN?HXn+aQXD>0D4M-RDPw(_PdGxsf^-JMEwUIbp-Brb!wbGgAgv_4`kd?Dl!H*{Z!IlU@}H zzsVb+FkzcIoXU!S`L7E<3#go6a_dz{*?ar)0Jy1oS_erz?YFw<8A9tiHH8QlA*j`_w4b%OH8EWLp9HisT|F4@c@cmo7%Xdf?zTm0nppHW>6s3+*kdREE)r zd`HQ_sB6;jm>c$|#^2_$17%U$(R^laSM@%c;UVSnMV4Fd%AvaWki5FoR}rG-m)iccH-DgpLVo%&a8L+ff3oR?&`W#u|PLj+W=4=~_XNSG0vTPL1}Z9=`gcZ$|2J56Q^n#p#~{ zO4m^_eB=G62PIcOE-}iY(+t(TkP;-sz(l!x`CV;wl8&pQYN*GRj~sDy?I7QK`xNJ6 zWdWu!hE%aAbd!jOvv^>@+XjzS>Y((6VNEL zp_^th_jI`EV$}x(v&=+5o*i^@ZEp|xWxYUy6yh4ZGHDmx8?k`!2Aw{wh!wTV){XMT zn6L8_nRua!vb~}zWirjJJ6zvz9@Y_wjaSKN?XVfeQz!!>F03=aLPnV`uu zRgT9|&8HNC|6w|SW!=0CSXTBQ{WYPMfB+d6ehdHmzvqAU`TU|WDg&Zlkda;KKX-Om z1r-{Q49?RB^K2MH%GDTOzXyHIGAe;znrEYRB;QKq&?;Sh1_#dm1%3v>0;O zjXs_l4h`+_hd+H0;b!1H z?XQNr;m|#{+PCkPMhw3g9M)t|^o^<(8s&JEw}wN8YpqT9+EPu`N0Qx#6Sq{WVBd-3 z>L$LHnhQ(Bjd8L;F6D0zZq)pzmGP+y$cG_mC5N~#0X{-j=5k!%osQS%4~m^W`nU~C z>VRWo<85hC;f8_JM^<>}{<69DHGwbC$54@+SW!Da@L1H!}W`G zG7h_;{AT$_OAAQ2W@E%*g$c=gJ?fEGf8eS1mic4yCgTdj+v1#@f>N&NPz+WC@w|r< zm4SDq^`PA1ipE^$;U-e0-f@Qj$e@>u@kH;i4LnS9rwldy-OS9emYe^ynf)pLb48)T z4%f;#**daQwIhFjV?nS>@bDdCe)$mJTNGZaB@1-Az&QJSx2wH#aYY;%P|6v+5q!6) z$_Cswv%|H57X+N6b-Lme5z(^af#BRelPqr{X>c)f7T52p#|rJ&Q`uW6n0^t!_x$HF zbFw4gU~{;EA5>TUc+q;+ie3$z{gYkazTMOp{gA6$*}PEuYKx9+oFV(_j^*Rw4GOQuBXCGT9UN4 zaY9>=m#5VBD{Qla2Auo)kyYc<_2Ob=G0`V<|Ni|)KEyqXeMAv`f!AiBd8ex+j+#)v zUfH^8GFq{(vFevY!*@`Ws+o$2jZbUyh&~Sb9&WuyBa3`SjU~#!qI0clGq#iG75U7t zhP%$Ws9xrXacRwj!<2;R6}ijK4-kdA`$0y?T1 zAL$V>HaQsoyN6e%+hn8q^}G8bBEM;69Ye^T|Ey;2K`m2hlaH+@`5heWo_gu?Ii zGY!TL4NqqbIXhx+j#~~_Sh~ubi}0)KtAp;c)xtX4m{$96Igg?PEvdIi&aC*jbUB_k zsoHz0*6E*jCsZ5*+`kRfkP`rC5UTbnhs}KN*-{H!1wT+rNziOj`@OX9sS}C}4jVUQ zZcB2$Xa2Pe<(gMnwCalue)efTnjINL5e@=DGE`%Wj4}YC*vDF%i|){~d=^^uqWiro zwWgUAie}>n>kXThoxXjm>xq=>N$>432l#4@Dv2>F)nBbZs(qYF*gM2;Gu`etPCYsu z&L|ul&LE2KeFdq0w#s@UL7{>@lR??Z0cjquBy3Zx_OqB6u)h@q-7HrNqM`5I8I)B0 zXr3)@X*oN@#PnF#^}>xyyToZ~&U>%{gO<{4Lu6(@!$nRNd-L2mp?v@ViTk1$T`v68 z49P*G(TTEzo-2soC5;tjj|^3pELy$d9C@9y59uZ@HW4e!fOJi(MJ4z~f-%x2cnXI) zYAI`KG=F>l)`-l}jv~>poL%Z}-cAy!JZ{8Jd@Z;pM{)yEiKW}s#-Sv2gsJqBF^M$9 zu+XSrWzdPVmHBbFsR&(*9~SNz7?q=631;mYa!s_`gb6I(#lmZrrS z;&NAZEkI-s%tq&`a3WRq9C(g?0BX}ew8CbJ*?$-ue!x}o{&>*YzvKMye2Y$yZ0dE) zmP76R8yZvn9reQk+_`Uy+uo$CU!+@^oUHn>d35KJCN=;g5QmGaay4}@HJgXKaF8R$ zyd~1g#g7X!4I8>R!6SLK&3i{#Q<7yhlfAqdt?=Rb=Ls!4)-MbEIFE$2*%SfFOL}rO zdk88(9p6gfJ=Ah*b(oq|<#<6t-sWmAX~{bORL!4~hg1xLAcDL4?%jEprw%I&tBIF# zPZ(5Wjs<3`@(O1S<8)RL@(Rk#^I%rK30gbTxfzNt~B!eY}M z7gYjoz=NFKQF?>^)`Hn+Q{|cRY^+vOVNk>Rt-HRYeFADKnlIFXzde|Z(g{1bGI7zg zIgKo*Zg%tar#?`d^p(UCy%C6Rl(0!d*{Nh!KhU6837+ z=#i9Et&k}kJAt(IMQ}E5xlrqhnUM2xx!hl7vZu$T|Lds*I62ha-goiG=_hd-ou`1cyrcKJdr#wBJ2e`q#F3F-he0=(AMTig=~ ziVa5I;cf|p%FpyV%9LtIk1LCYXaC4(nOa$lrN}VuuH>1^7A?)V*V?!`58l?xzxY=$ z{xbu#Ud{YAf05~^T*Zfmr>#4R{bjrVk>8)T?Lcpxs!vsvA4D2uBAf&c0odPGQtg#9 z!7e>^>-qNZztQ#Pfl#k~|9BEY=oBeJoeo0iWGfn^(;{2QZb-5Y#=gwND4|kRLiR1Y znX&IZMvCxcHZh|gdrfgJV)6(|jQ^yV^!O&g%W)bn=`8To&@v&M`O^cEQc}QSuC%IJ(57pAfIS)8Y z@}cf#%M2lbu_NY&k>nc?t5RL65JMJ8zk-$Er(6}$N~vg zL0%hCi<-Miv3W787`8-c>FH<>m_~&WS=<(+jpmf-M|&eHQStm?;9jLANZC1$kwEBB z8MED+F}o7!*@*S{<~IDK;AxxKTC_t?+VxiBjxGfQm&}J#tm#;MSDJaV?;ID6z{}dk z6Wr&6&HrIKJ}v@eKU2iz)`Bsp_2Odh6@uiFF-%7ZhNUHdwn=gCaEzXw9v!J2rz8W- zFEdpE-H*ACzV|tZ6Vx{Hjz6+gi)T{yv9Hos^%b`1CUExDzb=^nt1D!7C1B=uI!_jU zCO{F4h79yBierI=ui`;!z!ekP#H-btXbFnvA&CjP8Jaz9Y2F^eGcl-I>guK%OMQ2= z7IpR0)Fu|;aCz~YSza5=>62Pa@V3!jZnl9!FiTPA{xPVP9>#3p9&O(F0c&;ON+_6SEz7U))M`@KS`cwIn=X@9 z(z{M>skZ_r#5L(9)hcmXu=(!Q-nLM!(>~p9e4FsTSkaa|{Pz8!I?9AJlr@xqI%?;? zSRh>*p9ZdX!%Mx4r4*x@${%~Lv4Xsqo2CC0RsQAM@%P8+ zkiJekfh_!n0hV7bQBgjG$9)jnlyk&L7~=+W3MocCA{>`t6?Uz7B;oxm{lQ`)G-a@NTV|7p=Xn>$wf$u2*pI+-Jpee*j)`fv4c~&ezo~Gwk7L1#6p>6Pk^gj*}B`glV1M z#@r=~?>t%3qGPzt7ptA31OZ3Kc$al95ZP968~smrFiQ?RN~lA1U)a7*mGoxORx5Ll zS|GfbQM+F0Lda;TYWzTaC}n;RSrJKntBxia8n^yHVW_tm{I{|?VdGHb1sdla`OV0YRat6oao zlGfZnwK4@XZG%`=a{dS&dUbTO+|{{hyo{LFR4lp00vl>_or&ym)8cN!Y@vG_lE${x zCX4w{cGVQP*v1=gnlW4f5;)qb#Vw3xq!$O+`Fu5V82HteDBkGa>e4D1)Li5xF-y22 zbGmYAx6Ju_Jecb#E^4lDx!GA8l03rnv(S=T8bLxkLlxd5?^sq&yMdD;qP3?ZOzw2! zuOc%ta~C5JEw{2Augh@cp*OVtlgsJX1G)KKyvBXSeOtH}Oz2PqZ55Lp_ItjUsomE_ zHHW}W2d%Zuo9NZP%spk0`p=yW+{c|pVe9d&N*QY}S3gT@mM=6c!XHhEwu%Lf^>}BN zf->>g{18GVJZvsKC~8{sva0I#y-(=0jeGET`T<`O0ac8x4bvhe&t28{k&e%rD(ESa z8MEKZnR{w#sE+B!8-*>y9Qv37W}9kmMuRb07WP4Yb@N;-GkO}o#zUuIGTGkF8qO38 zidGC|Y8N~{ty|<}Em&kIGB6sZfVIzs4DS`e?IliJDAJsu zh6&j3HtsX(66$JfsK8TH^RI7FJMzhacWCo zsp-nq3No!YfZxU!F%TBGjMI9w-ad8xFhg|lmaPnDzeMfg-*3*$lhL}lBA`ZMWk=D1 zx_VegGkmF|cgV})q+^<4A=`RKs{<>LjI)!yaT)#Hd+5LZ31iLy7^Bh^+nWpa0z~~H zba7CoAkCyOl=O`NdQP@}a%r6m+uO)g6Y9V6>)E-M%-!#q$|^T@)tc8{t$sHOt9avO z6%Dq4Jg+jiw0u7i6x6Kr=lgigt?ur-mi4|)mzT;~d01WG9*Z(}vwAytZaTPxYeE!* zqmA6OSQ*}27uW7$Y}1z_hjYbjkYDQ^zE>oOtw0M7&J!Acx=lWJc}I3at+B#1#%QU? z;vMARlp!Ah)zzmL2VIXTX*E*7>_Gpk!@VB%E(aW5yELO^VOE&Da!C46yXdk|f}$RnhW;h3eJ@RIZWFGtEGM}WArW|US`sMZ#_v( zs1WYjwqL=uBej*-sD#jEzezp&9h1H=-77IJ5VF;z3O2;xY!+#rKy0Q}uNE1F7WWJw z1944UuQ$T>AV>$AYg_DrYpIY-HFj4#u&_FT59oEGz;x z>Is^PR~NVolEfKZ0t(#thUNT*f=kL5kCIr;YSC8LuSW*ZSG11q?W|~?x+&}Y%d+f# z*j8Uqb8{6I8n?`k+IU0gAE!T*8^f=4c@uYbn0mDGf73a|bjdJ6ja(}ci_Q3Y6&F93 zzMj7N{(8I0PrCTfDNS0;v`TK8%3kSlO$qVZ;sz4d&k(K z#x??KZ(}mXe)qxnrj(5XsVQVKb8jKD<;^Ws)mJkbq_x<6nWHv9f4{Bt{-wu7hqKzI zBp$7PI$J-dU|m(1ea#9V78=}PL+b5rz%`kW*uRBnvFw^vk>zkMi5jW2GTM*WAawG9 zow0hqmeNn3OeCVB>CsHk$TUM$CI^j$7;Uu>o1p^}wR=4sEe_G*w!s&^A7wS7c5R2s z9W5NLZ0q#w*8ANdOMhC!A?XQ;eWssLi@XzuMO7hp-LZZS>;6+^fszBq^%h%d!5l%%QCAA>$6Xy z{du|UeA9NCM(dN|jyrLb5&HchEpuAQ)t_mfwjCzZeqH`U3rU9yNZ@~cFbUkcatn2N zUs*{Ukw8$1llIuK2PZ{GZ8mm$H-}OFqxMmv%Z&S%!@iJPcn#$UA^{!j6Z{j5%@qrZ zBM`-+)iR-7A0)&>lpjscMeD2Q?HUNDpHdwk+VrM!xRr2=LtF3SJ#DyvUVJgLNvpw^jsx_Y#!NYoc zW*juW>8$6}0DJdqQ12HNm;EuzrIx=XDnPC0M`Oh_bbJX51L_3k;KX!&lgDty6ZkqD zG^{yn%yt4TIB0q4*SA1tqV9wMgxbA2pBop&Co010T!ox2I+7(F8ak_#d1|kXwI#t9 zpb=tsm9KQc@KC-$*Ze#zHn)lZ|9t&Z<>X9+Fj$YqN4Kn$MgLy%(~$6w^%a z^WNl}DJ8RLZ2-BQw#8iAOMpL8978bRJkdrHbIVB8D8i$9TY=s8=PV+LxW&jk%<@pZ z+%Ba})56*g*}FFBq_~sbyZ+Tc;3*+&VS<-!_llo$bZyhJlf#$wb^l4-Q7GNnK!fz2 z1dOXymdlFaPi)GDRxIk6bwZw*Y=@f6lyr; z+ZmhR?)eJuizOwn&Oc5-L7?}CVq~@NM-CP)cAfO z7;;%)8wdHDykGW}->MDku^!N>8Y}NR(d>A9PSepZG0YW=1FpGQ9aNhx;xDhZVJrP( zYwa9z@wj}_-ssW>rB=N&)^p?M4w<>$A=?P|5Va{+-+a5CIxv5KZpo?{LoiS$=I_$a zu84Hj%zH^MS%;Y=BtW$mjxM9Q!yz*x6<*_twAEWskI4$- z{Lo(HiVCUNi;92z8@|-WlVH^FF<;^IG?Q*#&0iK_L%QFoHUSGA$3v+Z5T(glr#;ih z%>i^$&962V`lj}^18j$mYXAGoGf?UgS9cy;3+jd+z};TGQRi9hKCm>CWY3S=0KHwf zqte3m`Q(@#aK(L>dw=0?h>3e0!Z3+RO3kPO)mAKPn9Os-_C@o>38y5ejzGe-cTP(} zCt#T&N$Y@#zb}Qx(5y%f(PAJW8(2feG>*h-EYC+?-|59aFb>BEs4ZP-OZWA!6D+N{LfyudL1T>xV`-pJ#}`#)(TFs$cMlk;bW!x*bG z9w7SZ$C!*>M|#~XDv33)4y`V3^=hOzBbUmfDWE{wZKYufu`XR{ZY#|U430?~rBP}> zA?q53>S+cIE;c2`Y2Gc|B$zeU6Lm3eG4SgtynGMYBuPI`#y=c`;1^N;mZAnO%FA*=8kG3{t%)`gBuXDjiUxT47YW$%>?itt$9GUyjLT z+$*J(h$A?uFUb%c)DzOV_CcG>Q&VkmYPdkH-PP;x*Vk%pU{`3ARu^-ljH|=5ovF2- zDAet2c^9e``qNRKM&^2()?Sb3(cki1rKpA)lxbX0d;X1>6K9jBFrXqERy=}OzvVPqbWep3H zH)kt;4(7?$B^ISyr=A0|%?otSEsqPeK&G)aOSk{CvYb$=-XM$xl+nAXu53Ts7 z$ylY_{w#(xsBJK4Utwe{9;^npT;kMURxGCWzw&1e;7iMHX)Zp9NyJ+$H{}K*NP!+( zqe~1o-dm%U$5}^%DH&o?maQWiXsy|jZR`lD`La6`73BVBx4JS!az;g2?@?cIvZze) ze`f($qp;=&rx@c*+H#OEmX#SddzoSAE2 zwIM30U=u76H8&h?RE~o1?kt#bUpcLubq)DBiSKC3vhmuSUXns}5Gkb14#f;$EL9TH zmMI7U4lz)KYa;m7zbVIzR=a**1O`ZFz5!!GUsWh1Gl&G&dzs%jIACEf=H`8UnEVI2 zS!CB2NW~$OerW3={20Fy@yN<==WY%u5w6Cs!ECY<%nJ_7K@ilkdOwuS6AN}d!z(j_ zwsVY}c@yarJ7@6WC?m^I&QGe-gB$xN?3a+|BP z2EVgdLi#As`K_zU^=L%R#lvy{UX|e1+vUgteJ&ZAT-4+wFGj?9wuT+uhz3x`W;*W^ zKFllG;B#G(sfC|#9n2b%Gjg=XNi^wtdfa!Xa15Q|7`GciY0xYA$cSTjKY0}#>R%tO zaY38Nk*eYbh9GN=6en@_$dOzZdS_@TBTe|miHCdoizySKN?5J9z2`u27 zwBelc@UA6!Y%#OO>6K@CtbK(q2Di64ph}7UG!r{fg;GPP!G{{krQzZFFnHiLi=#+6{oy}r%HRI21&{uf=aT05v5k7cmzW(mC$a5iY zKF+CLZI+%V6CGY_heP-jSuc^#%5|;>%G6u8KPsncH)j zY8-z#I8A?h6WC{<7AZE%-0js8II!!=$wYOk#(qm#?nO%AjjhJR{f0g z^^+gej`_ya9`fyfs~e6HIz=tz@)R>3X7}%u)!LqpPp`w)&x*hUIEf}d=B|I57KJxW zTAR&Haq^#@$4NgG!YM8?t>k>CD_mEjNpZ?U=L-cJnPKBqi*0~a#`|1O!@L?fro+sd z5H&|z3ngEUKLCyRyj(ZM-{&rL?Td;wkrBt)QSC8&$(L!Go^^%^eBp|o+*@t8T#2c3ejd^HLLlib_1U?kRT4E)Q3_7#42<=!(cT(`2XqF<_yz zr+nPL@{S)=*>!TQO+qcX@kiC>iUfFHFnx#jiR}Wi2@q|IZ=u6ZNml}LIYnK=4J@Cx zZW#YKVAWAI5j^!uruO;aN(o?(h z1g?2pfddl_%3Bnvf(GK6m8?BFmrY}rye)r;9okx@)NLxNX5d8X=#$784_aDC&C;AJ z!L9-MBl*feGZXQ^QpjYlDPT^bba)w0;a%~4^GbE3x2CYZ#M3M{!PCl5W3;gSYmMvn zJ;n+l-m_<&;L$n4SF7M%@1+pe)4Y&sG0~-p9UN0FA$2FBtzES+@4aFy^sB#gv?Yzk zLztmz1h%GPBIHgl+2SFgB0E+qgn1LHM*n0@AqyAPi!6kBq}q6@T%b#xqC z)-8s=5>e6D>tCrR+F>4@5~F`UZZrh$Vu#Q9LHVkmHYQ#ftQJ*vJ&Itqi)S@@QO*<1U2^OFV})sD z(^QvO$ktHf-Q$5sI(8x}6R}uC@}+HG7!iiDJ1U=%5ze#T6d4T5Z1we#!MwS7e;0`z zX&2IRnKs2OTWhR7DetQ6R%+0d$*97-zy%oHvRQN7HsibV=85V*0fCR;8SOYn?8Cd# zp}Keg5RvwSa%W1n@|e5Z8#qPkW^E#7U_#K3G>7Gr*$S2C+CaoVm-RrOrF%5GaZ4N!$}Fj9U2L4eRNTNtm1?o?=&y2d%mPl}sM z8K${{SKu?!I#T5}6?r}KfR9JXV0T?S|U!u=m(p9B}X;5poaBi&zGJ z5wf@pC88AX)Cz9{{ahNZ%g_--FXlqV{LE7JFbSTOE{2XIscwv7D=)c~ zvyQ=hK0YnQeEL4ak>7+XF*pU~I`N-eL;Jwv_dG|l+NvCFi}SK}>39~db}W}%YRzic z`9(>EHQ!H4$5kOT`)2H_U214E10G8RO~!@Z3stsbkbKy=JSki~SAu#LZ=xcYS-9P4OY6z_-%71ai zFJlQ@d=*^UG83vT%M+jN2(=0Ub;u8pCVk}n*_=mv+jFY!{pW3fa;u<_R0unoC0*QDf$;!B#C7)Bveff` zy}ue#A^d?Hml()r9eZ^Np`b;4Ny&{>m!;n2dsa{F)nkwAds{LRfBDWfpdt?N=56Pn zGCa!4$g8DkA+yPjf>bR@pImKLTeqt~B%FHY0`Y zTmc8n&+-WOgeo6BRRk@$R5QuEM76WKl(xUII%cM!%$)82toP&-~nmA2V09JSe=y> zk*r&x`0iJx9P`$_sE^@nhNCy{l{Ss!X(iWvyT@){)nKM@htjE9TZ26PK1R>yl|6?h zJ4vK|l41)nZ<}60J&-&w$o_QW!Q*-uUf*7&q7jCg8*| zvc%T9_Oz%2C1}^F3brAb0h9Tfm28h8-s$x@G_Sje9_!zH%q3nX7C3ZPO;~9oG0@^n z>8Vm4IVxR1Yxi{}nXEG+Y{tlq65{xNOCr?&r|(7zq(G6D`_3gZbg*hSv?1r?juva% zXrA%bc|8-bTsLekE-+}!=T<@SLI)y}W5kGQ}^muq3TFO0B{)qwQLAA)oFyP%i!2dNdzk zTb_not{=?49^I`9V}xVzByU}($nl~uwVpGX@rLR$)CNRGl};oH-YbO8^7$^Aba|zo zNkXoKjGEuO5b1$mM(2H3u^FwNw?Z%|wFVtn*w56kwgK%^IHUPcOS#Kp{@vHiE1eC9 zdLv+=z^#2GJyzhv1LNCYo%s7@4Nqj;AO+rf!Pnxqpy(%+coN_i&Pq+&$9$glfS@2$re zoFk<1U%_ZUcj^%8@i#X22$=O+n=?3W$5G0CdNhowbt#x_R>Ex?{ zOO}dT24-(pfqG)z{pceb*V7ssh8x+hrFtIshsSI+>9|k@IV4a9V*{UW0JL+9v!kw{ z;a2kq_SA;8tZk-{!VUKJs+{k2K2rw;h(GoKt@yLQX6c4k!-ACP72k(H1N^|J!0F&` z%`Kg)5>?_3SpStu~5>~4L5$wQx_-pURs&iSNx>$J~PwYyn>TsS0AH7Ato&L%~8 z*Zvpp+$vVhPLP{qZ)P~>bY^6vCa}p~+VjHZ4KBVmx?`!fk&j~Tc+n`A>GGnN@W)+# z|F^F2H}-xg2VfZbK3f-2*pY`IWFnL^&wDX)KCkS91{>mRM&Z`@xy1`L9@bgIUO)t* zw`g`IqA$aKY>x08fjaxj9x^|fR{R%tc6$bveo+3by^nw`>m*aZ<43d*hg{0{_rLV=yHuIS8&d$d}+n;hDUn(xa@Q7VC z2A)DAP|ng_NDMkZFDQEU#BKv7X6A{?88J_WB$E*Cy3Dt++ zjus4X`KNWbb7_9CBa6Jxo>^*b|DYScloO+H2WctA){qei;LnZS zquIp43l!trn~~y4aWrzk?mm<^xA7E0pgM~+H~UR-o?MKrsQ9T=30m($|ZNJG7z)8F7(#vuP!D30|Pqi23#HH|) zgpG1=RRMPr3do;ajjebmZbMfO&S@L@t~gl)br$yim)^+C;Q=v(^7DqD_ zT=Bc>9hC0t0tQx&kuQ0~dMO+wdEM2!$l@GkYpZkWB6AwZBL*dT7j+^cTkgb(Lk`ku z=-_6W4!Ff0KIDWu)p@PM6(;i&_}X$*b#-l}VU=9Sou0*m3yHNx0qJE2AiA3Ylyj5- ztkYnw*YlqZ>pGSP1OYD%KMo<*^S{fvY9SQ&>R6VGUuNN)djLPAujr0Rh5&wf`|xX( zx>-;NeIJ;;FD@Idc9mEyqr;(k5!$xS{&TrZ#L56NMX%>fHHi6qn(5|?T^K~Cs%?GG zo8P#b8MAPw{{Xb)?mRH6B=TH&U+$M7yY>3`Su(N?ZKWZ7t;v55Ok$ehcJ^7RbL3g64$~r z^g18f>Dm8)&H4arz(YEKo5j@q;_0iHcDV5vuS1uw9lNx8x3jtLLfO5uQ`ZF`4|hzo z%z7&DJgg%lqmG9B~F|5GV)o{0!b^jZBhodQ;C6X{<#X!~r zOC?944|Rto9M~ET@+9HfTWK)@i&rE6^c=0>Lkc!!Msv*T7Grh9I#c-MusB)@lWfo8 z(eQ}KBv)^=@G5=~J8eRHnswm(op1~>)79g}SE`qPC!Ud~**}n{v0e_(Yc7G^;^c3Wda1z>Q&j&?ND;36_|V~Q-a}%W zs@4b1DsL-6c?LGac#z5)Ffa?#&eGneD7Z7N&$rJf<=WhcYSPrl{+iOajzL`_gW6}*VP?7_neu1B-TDVTnv{_?TjY%b#uMmS ze4-`BQr&<4r=Yv6>)oGs3wx{FOyS=*0UNkHe(Ah6yua{GZ50-*Vvf$ijt_rvt3@2# zXR##`Rqg|_@AN0@b*TC;oav2CH7b4m*+>&M0p(|M25W zL`{0PgKmiCuGGvq?ZIl5EMxY>96?XfoQVx;NS2m;*mm9mQ!`Uif`SLY)T2!-=m@%o z^N8zRYt=kJBJvXqZC^N-!kk{-le`nI8MJIWhcs_WBL95iL5im~UIW2QQNV9x2Stb6_SX#2FCyj3EG4mqRvFGJt0C9vShN^NFYd$}ICKM`^ zy4KUB8sGs1>cW5}l{eu(fj(eo-@uS(h*E7+W&$B^R49t9r_g!V#2aG*=vh^VCfTx6 z6a6w0jD4lK2YR~qet1p+Y>AYa9ylW7?;H>q#F!Y~IcR4;!oarq6PNmn;-R6N1KG9u zLchQu_K{H=6|)|@HZVZwF~EO)OYq1gA(tAME+xw6gl*2Y6W7`9iER5!=@^`y`={=9Jt)am~H@<;91bkUwendZGrJ4T1aZo zEhThA5J?=l}=t3BwSNcLzd;${g~q9ZVJ^Cg@e13ZHIx+MJk8T;Yy9 zpXyOjGyos_v8duT4eRFsnFNMe&7IZ3swKRy8KN zXEMGds%})K)F8H_BFvPkr?396gYFmi(JWztCM7+hWyzzsn_5gQu_*BazbwzP;DdMa zZQ{sMw`AJA8+s+M=K=BpTK@ChRY}d$Z}mKYdp8rdTv0^^(B1_IwD5doQiyvcrKgw485gc)cAP1g_>l;`Q#Ax5D?zdkKnr`Zv@$VH-NR*qEfT=OA;S)wq57p z)S}jPhqAr`>$!jSL_Uf7?AFEdS)9$ zKF>Dj+-F*Wc<;MDQ}I+X?G|@VCHHgYSC2+YjhjVw;n2@4=4@`iMk=mV#r2~TZ;DP6 zs{IxVrNgemW2G#I>zdsx4IJ-8JEI%SaR`Ia;64Mi`@qAME4V<4h)tz?0@|{CEK!ls zlekwmlz3qe?%|x;NGo^FgAY8)^K9PaDX~J;4-7p>_O$kU?%A}~KHX_zZ}DZYw8*(6 zkyxH7JWw&i>pt>pc))X#KJeaic}Ls(^grm;>ob5}oeWHLPF~bowiV)-NHHtG{VC&#=mhaf;l@@;X5`RhI8(z9HI5-(C|%lK3N65;XTlQ zMk~-_7L7SQNkkDfC*iow#Gs}`33zwbwRYJfCokTQ2n|;8GyD{Gx94qxwY6G&j@bdh zI}+X>*$k1EF1`Zk#|5)s3y36~W96{pAeIgd8h2`3s?c*)dh+-FlH;8ABaGes#=~_8 zo%mBEOVP6Iqv7Srr-ii&-`0E%ccXR|q~RZ96W{U6=^`|DYo^t;Y1k5Gy~_J?pQ*17 z9;cYLnb(d>8&WlSZ@xVFX3b=!-V4uJ=ElpJ^wynmENP=%+!WAW1_&ih`KNHEZLUmc z&6ES>5Z#?a&(MFtIj|5EUnhv8FF;;D`3GA5o6P*N?~q183ULG>cNZHfN1}5oEYSF_ z5BHK#3pr-A-TZL3oK4(`8i=)txl%T$+-k6iW?bzAO)Aynt&gN_qR)Wuf921&RedBS<_b)NR8peMtY_E#GBOj>0@b2m|peWsDx6{1Y`BOAQ z8^(P*G^nkaJbQpoy41~7Y;fZ_PO33qM(?7;hpow0ZnyKi@U%9Quq+#YwN14VhQhT45> zvc$Z8r8137gK-=Sm3k`FnYGfJr)QWbfSS*aZj#q&xzjzD3Ih=f*hfn#y;7Lj!O)tv zqIo5c#r`6n;$s2-lT%TY=GFf1EWp33>m?BTCOnfzNmD>`&0x7>+e@#bl9%c5qcdUF zgQjf8PO^vQ6N=QP22Sur8Fy#n+FEHB6m2&4Qyj_+MX0fBPV!=^XN}eU2xe$!z}@Z( zT`w4U(VbiOK4Q9|GrJoEBMloOb_}RKo~_XWL5rt5xB5IDCjD%gc>)H5*Y3-WRqZz| zxp}&wE|IVjUW!wyf$`lBAJ3N_`Wta_rcf!PYNhoYjQWh^eJyo{3D)Mm{U7qx3&L2Iw=4{0McC4Xuv^K_QUaFkHQJZ_(sOai z(1=H;7Z9##x(9mcEa}VRo}iX>z_euU4$A(e zAW5W500yE+L#(tFt=nJGAoyw9@&N z%sb+-@}d_lp&VUKdO(ChgEj`4IMlD_()x@d7&b^=Otgx=xG!=7!s5H=6q#t8gfkyi z?(^*Zpi2^_S*x1cSiDQ$EN0Uk=A7qoGSu9j?hbUdpPP!+P@vXj0dGl@^Y0Z*tCP5R zU%N0_M+zeJ%G__enZAaB8kn_VKeShi48ue0Lha5D;!hfdLKp^scubi8j*vH3Z2z~ zKbYlfNLF%*?Z`eI@qa7PXKPT2oX3x=Xs?&p`_Mv$^M>1E#mJQBcIB=sep(NMoSyaR zUn8n>iQNj%;QjK@wl&~pva^{M$k|-+y!Y;aw*6O&(??9pF9Dy67jkoMOX(9QpU6XS zrPD-~!N`>PS>zWuNfsIt8Hl=%AH#mQyYgelYXAOHI}Vnb%k8=Jd^!`z)`Pr#n|6hG z*kEaLkL0FCv|U7r1(yG+7Lh`9mmV?y3l%Mde*3}fYK4qQ_+kS`gl3HLZ51<_d*RC! z2`?7gdKZVU3Z=#TpJ$hMeqVI5BmAL_nn|!&+8}7zPaI1+0O`y71@}cwk%5uQK&^06N z%BiG0S5z>^?c{fr1kKS=!cg9Rg(<Jv{zSpxG7{qC$57CP{j6IzGkm| znMnw&G`}K{MKXhbe5>;-ls-;OQFc4Fu#UhE)||SwPnSWM18tD1njJ7;F7CkI*rMPI zY70`X@~IG0GoStxyi1vx>`0#OO{=3+t0jvrC*=Dw)eXOYQl)(hGV9&nYi`t--Jb%- zNd6(0m?b$@-BbX(ZMxQQX#Pv+{lnc#bUaX?4V3(#?ZAr zB?lDnj}+izRRV5&WqW$+3^>>dqwJMr2+S|F8uA<>Q74fr2rd+g<5mRPg#MHt@^voKvbP$fc}k z$u0j@x@vnC(Qo2Yv{g9QwiZm=Pc2Lr7+U*Yg}%03i%nT5O%B`(kMw}~0|YpHjY~`r zaf+fF2GWAboL`>`$-9)iw$VGyl>qF+?ok0Xv!0CJ5gT>0`k6$VQegSWplGyF_$V9K z>7&8+Nm*a;;pAggC?J?o0OaG&m7)7lK4Bo9t#>R>{!;HSqHhB<*sJh36C=Jq=HY{6 zd+R=@A*vkk9gnz@;8S9b*0GmUhYyxo<=ekB5jsdMvoH<|%h*??Low{rTDy}1G|(a{ zFK9ua0D)NoVf%$$`65uNuNeXsFDED_de3(}Y`h~tj$f=~|5ulq0eX}g+JDkS`Let# z`Hc?8JUGAwD95XBvFx=8w;E1uT=N{f!=Yfqxe&Anw4koYILH4LlL7yHJj4sgUug{W zM!DY56zWv|@SG6)dX|)v62mt8*Xm@eqf{a^031FWdcDISWl$!a`KY(PJ^4qVVSrC0 z5hxRW?T~MB;#hCXv*obAEpafL#Ny|q$f4KnEI*XuhJVB%Pgd3h+{CT=;;>Lth};ak1P zo3A)k(tW<3s_D5Y8Y#XaarDG~b-}Q`9ti^(zvLRJXC|~EM}ZZUd6TL~8=s#aHx<7V zzWn=phU44yM_ckie6OKghi-7k8C{+{)OWwF@XJi)U&Kd0A9F1wyJT=TJp$`DbpdA# z#x$c5CN(DeN|M`0gLgS-b0ET$SIJ@TH6_-Jb+3F`xRZU*e|#b!H6qCl@!bpLWX@k8 zxoqr9x9i+;^*cD3CC%N_|A-^}jn&UT1(}4i@6L_oF7=Wf3SNn63<7=hc;L`ZrrgyP z(2;Vpk`V9)XuWa;9o8BaSL3*jWzGGj7L^p3zOZBgRchioa`LF#>lY}@lO8Z9__K{T zQS#$J$ViDTGO_UlF*&&iQy{rmeGj6s45HV3yZR9HX0 z&LF|TM>cGO4W>Cu{EU81d&fR=@(G&6-b2Lli&)J!*KdwrIwL;ma&pXtT&*TcpnFn_y-AWEc z6E1|tKK10vp>cRJ-VkWy5iqq{8Eu|}hrX!!tLKEcgVJoZ*>jQ+)Y&r0a|*eF6SjP% z11w{xHX*)4R*I)b<^5guLr(870PwYTUER>{(}pBnLee}6Sgc>Z^8c@g{|gMh7LT?o zyvr5pUu) z6Rytu2GF2``*|roC(lRd>0*7)ky;?phuF`8`Z3DL{W#_%6;O0kJkMpZ0%ZW$ zDhGH$(OcK~puh0<-P7^F`i0lqrE-Y}-#`D<{A%})b>P&DB?4Q7FURCSF+qsg=+W~7 z*7-3|1|in8J)25e@wnDePqyQUQz`s06U2?)0fJ>Iu!i>_Dj$_SvP{41xZQZCh~MpH zEDdG?CvjNx^R&Q2_rCmBrmIW#7Q|i`+Xjl!?i3Gj`7?~UUUeobwTZr71@cfxgd-De zRdwu}LgUh}D~(r$!;qVeW=^BCGD}u-bN`3#-mTwfyF>VN^#C5Ig0cNe*?x?r;0afO zO>=yZ&Os4Cl@NA{eHz5KiXm9dI8xh;^FOi{rcz5cjp zZwZ*M`~5ICi?OIO=V;j1K+ES9nSn#q72EZC;TZD%yII%P8*wqIlI;M(iD!p=Ej3Xr z)|#5U({F0Tk#RFz+)Smmt&O?8YE$y~Btqavm21aiP^v1%7ObspS&f{>>Q3SbXiKwcF?Fx~}(xTMVXpF;m22u);}?=srii%;(ij`$NIzwxGJU z#VY#RZH&#=cac5%{(L&U8?V1_gD%C#ObQ&;QKTY#{U2`a-!=AyJUDok#BckcI!^+L z-2X;pLRGETa1M~p1>IHOkY6^QH!u<&x>bMkbe!bh&;@UZxn{Wsdtmnr4N0%&3X+nH z$F+k-IwuH{b_AEMb0+evar?J7=P3E9UN3xK)MD#s!a-JHs=bltPB(c^>cEFXlX7ry zp`E#g^Q$SUo+)ZdmrCn6=Nk;)E|w5M%cc0K!QHeyTgEB+LZ7sMcQl#t6^y2uq2N!q zkugbcy|Nn@I=6O>vH^~ohx8BD-xdx$Zfmh zQT7~tB8QT6yG70EWtrsWk=`$P`%f#KUvule;Vt*Ub8{pwdy_z*DPPb2i?1NIroQ*jI0fyg3^3Bm||SDwm`FB2(vJNf55XRAR{XLZj|ZF)2hOYdvG3uJ1vwbbJ^nKYlVkFc+=H4)+a0;9TNE#3%C&@4*GnpX|X+R~+z>p+L7`Xkq>u+6`75A&URo}g} ze^@fgyzdEp`gA}2bhnEBEw0rhKG|96gTN;1wkj66al|{QsrLDEhB{l`yF`0}ZSVjk z^O6Cu3%hjM(hfup^J}hQbZDT;K6!@}bJk~^F2Xn}&;&Be(&mhF+`;S?O&6Y9qSY{d zW4k*znZ0b!U&%&@cv(U*LSH$B=Lz?w1yoY;yGMfKM3Dwi~4syovZTi(^Av@5gHe2;K4Z7L@2dT~`> z0Ncaf`%PV2yj!qdXt(S<#wgRmI7b7WHLrZOAALPvWEbH$f=_=+jU5D| zWsQaVB`G@18&n^ZRkaP;uRK@=iC0pAkkHc^)4D4ovuS7p9V{Vl9|||4_{5uRqJFg| zTx#HXKnkcw$K>qkwawLU!Nlc?pSeYe))8q=$%yflYG*Lfu7m^|3;GS(vV7AQS~5Sg zXxm(VfBVj{QqrR=&IeilcCw4npD`}NKL^Ey`fS6vyo#A_caT~t20J^>n zq5ci{uO|8B(_7sF#__t<^r;3LqN#c1WiB z9z?u49z#N*lUxwO^{E}U7QMu+c!M?$fuZ}x7#~?uv|2`K30T`I62~>pff?4+OzXN6 zYtGD>%Gzr)?yWO*PTdy6EU_G1Y_JU|tfWES~Bab;w?`TUq7&EiR0)>MuLSPjJ*Hgnm@=GReq7Y3Rr8R4cG8B|EP1Rb zbHqs}D4dG$k(#Ie)G@g{z-@BhY!G+QEzdJ;Yd|t{lb*5Gwad&`@t0069(rL%&=Z~f zbifV;Fl+H{7l6Ehi4*GRcC#gAfQ!W7!doh7(IsJVa2kH!bPn}Uu^#0vW;^(_{TUWp z?Z6@7@Pcb-EqAD82zgk@|B`Oo4dd%~4GKrF$!582hFpo0VomESe5K~f*%QVf)u#Oc zGxuw?S;yD3pXQuz1a4`*=#e>n7C&ms_9B*An62|!ciw{ZT;~_iuzRQObg>BCl8IEF zt8N&5c+CUbbqY%Jn87KTqLV^Wf#WWQZ5t>_TSF|Q7?7XgMgTM+%x3`-AM4^fhP!-@ z&l+gGS*J&nF9)00+a8*>WNV6@kzZ1Pyi7%v^TYUR2gbz-?aA(~{{U2NY3jJER$II^ z$c(?EZ#8KhntE$NlEIsI8aX!|pCz1RsAEy_x)Y2dK>6$>zDx z!xDJcU~ph+&kqZcogoAJK!(24nIkll;SwjcRzu>^?pr{yb((j+7dX%u-(egdvCU4c z%MFt~*T3@)`!W{L@2^p!hZn52kC|>ULt@7G*u|Z(HyqE_2=9`1Ey`2UOWZ~?d1ctK z-3N8d1N;sgM7)SL4M+eTj+B*Hi}X3U0VF%ycxeJM|2k~(+AI!~=glIUxBZy!``r*8 z%fL$|K5ZLsKyV#659;8o7fW)G@#(rF(+t~q#-^Raft_0O^yr%o>8IB*=lvg)D#S0g zjMua?g~H7;%R*{S4xS>_zZp22Ub={-03c}tgCT)akReSOP>?5f+I5%-Uw?c5r5<36 z@t)Qj|H4lA%LPsg)s^|F1oG~u!;yEM_YB>$k<)`R)7?EcJxta*5d2t^rLlSf3U4Cq zfDDzBl-3oO(BTf<&;`KaL&o`JiyLo5|89tXGpRgi5Dv@Q(2loAJ|Kp2GIitqFck2E zhZ5s4nXsPXsuw%-*Y6Z->fk%ID;Ls}r)pExv*LuzJ6orLgCgGh_*8h1*^GslVfFUH z{!o*X5WJfz8 z$HTyeu|`T7E=N(=_8Q zzE?Rnvk(j56*p9vkN>ng{`XMpC79a$Pk8> zBmN*V=~y!{p&*nxlo0bM6A2FpcRBQgD;YE=DGQsn9&uXuTxK>q-X~fR=jI0o zE8d5A{huFxd@Z0cyDiW40fL=g^+cZtDX=80Nzy*HICUkS_Y>Rb&_17e? z`3cx9wUX{I7^cbC41`qZUiuwu4O>5T9y?GAKpT5PS`onaMV8G=;1d^)8`_M%dVD z&B~B}p41%xitn*oo<0D^PWsyjxyFAM{I8OA9|<6B@_xe&{j<=0g9;kUL^A&}IboPw z8_ClA6P%VU-FJ_D6Ze03j|Vh$k0N^eGaR@KTj*7MHe$IT!gpUT_l1GDY8Bi(3GtaN z4VRU+{NtJU`X3%Nu#GHKA)0Sh;RPiwr)s`?*#98L@BZyjHoV~3y8_)5BmmUBQ;BYc z7eph@U0`Gwizcw~TP0soR+zzkWCqT2zlCmv;)%s;Nu8Tlc)=eTh6yUyU_=Z()!N^U zcDWgx`wd>O8SN$3e-Wl^k*&3Tg%`YqJ>X2MO1Q-bn`WI@@na(HkMBE&*mIflzU@X_ zaQ+VLj$ei-@Vy9L@`8bLUp8uZLIUZiuQ|SIg#lF_2H-{ADacL~MkapL@+TM0*Y_Mi z5aP{*3;P=3_a{uh7s%zT0e60sdu`UG1{ll%0_7OT3Zt=t-;>yQ00Dy<2nszbZ0~Lq zkrnll1^!ZBZgc+fZ@TWRBngIJeexmbx>&pF@-GgXn#Kl0z1kW1i}s%t{qI{lM*Gy` zzXkbD%>P@EzsTw8jsGpk|9=)l=RC*#ZM+(-qi#!12;l@D%_?Zv3W3YwQmz5G0UX7? zI|)Bb`}dECdP`r8I|-GLQ-Slvr5U}^1>C5>sK8lcny=UM;eU1!zH03ANWSp(^uWX{ zLySG}GhZ+RKkwQ>G}|7U$vdS~2~sP3UlhKN+hcf?&lYStO>lWuSx8#u%dzCO@9fKr^Xy=2iEMFGbequE#wxuVVWrcfT67Gd{ZekEt zC!=U4hZc^rukeLRq@cxE7r;qrK#R+o=rLVEF&_?q@x69}$rNrtKq%j=6(*E$0mgK6 zs0LsUH3-(FoVZOF=f)Dvqn`N|{Co=lWCbXN;HRP!Cyx!E{<&?oTMMj*&V(o#rDT8U(+X zXV7m{7R*k~r{onZm#>(?((xJH?u zu`iK%x2kk;&O{v2rUj%TxBOh#qG6^oB2{G8)g;G0!iP`DZ24LU2r4rLKz7uN`8K0S z+a!4aW6jDR@5zN~_36?jfQ$9fOhTG+AVd&~Xl(8dglwZFK`B1-xOnRyQow$&-B5He zan`85iLF3v8Z>t>gB3utkj#GA1pud^ZhA+UD#}s-io6sfrH`(UvCeiXt;wB&X(P9#&3jg{hk<#$8yK`q0qNM0oZ$T85U=ZQ8)| zVu%Fpiye?#(f5E@_olx#f?b1Y!?IfTf5)@D6x6_?Pgcn(06Y=w{mi-sN+k{u9SCxn z%oPd%6REN(Y@p-Q8WNH^v7y101ju0)MBe!~Lf%1M9`!0Zhcb!JZ@1V1wa#(rAd26I z=&ACPvx^!)e1hk=WaVVTvR!V@mrvPT<~qGg(D1^^rq{{m-8syaSRWl?k1B;SXm$g! z!J%^{P&YIe@TcsHO&q$EWjdxmJ>+kP%8MgA<=k~xG4$=r9DqMnhAB9kn5g)Z zg7wT_mnfmtHh3%PwYmGhIgE{H~M_p&5E0FxrNQ$45L8Qxc2Eg%MDrs8AAl+GjGytbEJapgp$Mk=@_s8CP zoQCtlnKBQdy_>um*@w`n^HXHiNwMB&7)HS*?6f1|+8&0}z&#GCp&-Jt+#{E5LPv+rE76Sy$K7UeLtwGc8yC48(E6Q3lJz<2)aw z3@W#>OF2922@RWZ0-YLhe49wZ_Ne45z!grS%;MZ~|2Uh#6c9z zVCkTk7wP=rzh<@nDGy(N>Q#mLl$MAVqY>c;Armb&JP06SCm1dIRyT)g_n>^WgL`97 zCIY)Oud5v?`w;5m3gtG#=sdp|e0b@ROR(#3%xYT0$kt22LAj&gw2#q0JM^eOJpTc1 zgr~?aVFCQT%O*&z2X>JE%jCyZVOyezR|HG&vdmG*xsZQ;FUPE-1&wc6pQW>1a5^&wPC!vCC)B# zh+UAVwC1P6dK-k5<5E_^ermKZx*lghhqlSukJ+>}D$fL88)lZ)*TJcPF@-BH%V&pZ z1JvD!v$_b;@as55qo2+s6rOu5y=Yg&MfVbrXbXO$K!CJ0;C>KH;}@(GjH@DhRikj; zB8O1vS7IMX0;#bD7;{q)o+s^cTd*t$+Z1JFh*STmB>E#5REs7M-|1^*eAo;G4XY2~ zLlKl8tUCevhIMs%(^nTXz!s>UJ8%evXNJs4rFlT`hqSfQqN=D||aJt$l?ChMol zX+H>GSxR0sBv8y_fbedC>sN|}=n-N|$ZV+p%X@fG7M=MSl8{yq*G7W+R{0QlxN)2P z*QaxN)g&;pOpij?!f3|~E9-F@=v)n@pJj5B`wJZNHP5JI= z068rc(qrVy_`q^TN<7+_HZaWrrFTp7YMRN@wk&~Xe$?-O5yEqbV^J-}BU>l=yV~$p zWIzHCWat&qm~r_x$9RVKUx1&z-F}1e3g%waOE@yLbWDX2LF%JzS@DfLlg_J2V24iz z-33z8l|$gH)Kz6~`pf(OZcm5+5F`@+8%ONMVmRb2Q73M{bg6>cGTcWZk#fasLP`3s zt!)oeqfhKIGxz+#^7`Q;Dh08~36e^D-7vP+C&x@Pqfj@fDWCLl&?!odN6< zx-$sbB>G*(N-r=+UO*_#=7ZK05i$@Y{Mm8(19!XY4=6kTz)1Y(6`uYC1d-@*$Qa(? zKjO;f`@?el_>o!+M@3UY1%J`3;3lvALQ@Sui-txzXkbW1%CMWpM?CkAU~|Y4 zHM&H;NBEA01M#I=%g`PhtvCw886 z*HN<=S;>71{~Ayc2f%)KBZ8q@i>%Z57bz>%R zN{5c!R9bglUtVC^twhtQW4_aRgg_p#PInq{O(za~#AKB?ISkuUTyYa^CcNimWyLaB z-nRWbda<$mB)FC#L)W01;n1pUbm;eJYvC1^K>!iGgHB=)g_uV{`gcoM)(X<|I0Tkj zu&oggnASBX-7y(m;VT7@suAj41x8+Dl}%%D#Xek5@T*A)S6`>-xlK`#ha7AFp5*@* z2|@LP%EIa6?odhU?Sk;o|9#V%^u{tyqi}}?NW@u)L#6Uh;`YfrI(OwtgIDqH+DFSP z;%{?AZ9}T$=rch`6s89-+pq7zd0rIM>v`B)5kS17H3iMi^r0j&XK&|#?G>8IN&mk5 zZ}0er5$wl&-F?GES`tWdAU*Tp@W;tIdFBy38rh^f;o`;evhEn2%pEI*jo<#hK|DEB z#V8M&h9u?W^^td7KfI(4k#x!>@l2*PK}5Nsu~%mWMYt9zC|b=w(hLJapJc2zX-+!u z?g4YwA_jAD)dbL+D}f}KspXJnzM3>3iasv9f^zging~^3f+MLU1GKG9>VnEUDJ{jf z5<4m%Zm6g{9Ot1EqRl+8F@jX%Dy{Q$&nbK*4qk0?c5P z8Gj1S5ECNX#iHyh%qIl72?Hb}Ai?PzM#53PRT)yXr|(3}pALUYMLC^dEx*!nkN>*i zeBXBaMe<&h^tH(n`31;L)u4P6TmN)1u@%&SJ8BS=O(MI&4PP2s`g35?$hY!9Y-YVn z=X=h5D3OCPKSdMa%0z&+l0<>D7*7(AdHt`yd*HPwxsRP1efDNp&2DvPHIhj4;a*wn z3WmeitM&M8tNgccrWI0%@0x!SkVFpUV+^dqKw?#fU@;6S&h50;?iGf_3TFg!tttGF zAk5zAef(>o6?W>@bufbzyv2=b_9NFr?}=NiE6FkqBFkeN^Y3f{Op&8{vDKalz`Scx9HOlCYCloXyEPU?B!cF0TMNqXswZhkTZ#=ad!Z@|- zZD?#JuDxDwV=Z`C3s$}V&8rP{P`vo?{PeJ(G!^p-OYwH&aj5mZ-)VY?)0EZTFiP;) zDX{&`7r(5ltEox&-rW4Vtvv=?HiF|);Wvz0Gr`~@M2($=1O^e27@EKT?srdm2@SQe z(wsDtSLKz;kT2|FgJB!4FyAkr_-BY)lUW4oZqME=38f-9gZUd4cKN6A&)pvsU|l1( zP@|7*AbU|v{iki$!xtu=op3idKTG@5bK))yzv(8Qfj+uQ@~JK<8AJ-Y zOaAJDY>HZA9WCYwUzn}?WvPl+D}L$$_xfZrvLLYaE2{S27X);#=;fWr7o2bWvQ#Oi z=v2dsu*}_r1pyNEuP(@H(yQ=R%V+ zzhm~tHT>Ug_QP%e`-1$R-)0o)5bz<+Lo(c%B_70*j4uQ}mh$va+rBv>RP@rPoZqqs zu5sF5zQ(sEt0q9Bu}WYj@E|?Qm_x&kF*dp_e3pTpo<7Ve_i{Exg-JX9@=g7qnfnPf z8XULh003Xfxc=@cdPzB5yHF*FM}05!`@UcGdGo+-7@oqfxIf>F26}CGoo6R$3m|jx z^r=Y)VMZJ@X=GG~=3Wv^VFSKrz;3+%FD|t7OSB}m@c3h7tv41Fgry{D1|C*^ ze%6Pr!dd7vl8XBxK7b0bKbXA!#gHq<1?ysXJJJN-u<)pT;Hl^EzH~a+0lFq!&TJzg z#g+{7jQY;P3fue(%RHTDXB1h0EH>XsfKpipCx|$OiIfSo$5?4Jl!JYKqdpqLC&r*{ z6l2tkJX-%>J(@j=JU$4V%ZX}wd1kFMd? zB@o?X|3-YP=t%WJ=8;eVcGRE)S`$$Fwn37G%XzZZ2vkR&oP@wcY7wxaO9r>3ZUGx{ z3m^f%=6QgPn5plcCiu#Bx}XrKa9UD}U-Y^)j2Y{uRs$8U04eWf%?G`YbOgIyx|PIi z_M=2(4*a{P>m;l2CTbOATH~-bg#!YECuk;bRF$QxXPt!uxOvFf;5A}1-UD~>myKwH z3My@*NHPyRZ+rmjjXlq>Ig0FfSS95U*1L#cGhN{MMLiYK5>U?l7wvh_5>>RM`sv-E zXv)qQJqyc@qQ=&qM1VfxlY>q#!nDXloCQ>pR!g4&_o;|J^Uyo+H#!pf zH5?k*yY$TA*8JL7C6#m?GiTnA0>tAT_&3(JIv>h+eQIN-bK&)O`@Rwbn^M#pGZajo z?i$(@ZvhTy0sk-i7w-lGflCi;(+7M#=6SRX+sdIqr%&LgO;N#zm1QA4xi{Pi$db`j z`9`tG;W+lM4hKt=3|)7|^iJO)7VpdYL#-JV8#b9qPv4;YhM7Oz0t$!x>q;j@M_mf# z%dBPug_231pH^`EpG@`)IEuK$Y4#?;Rg&@_j3vB1@$KJ0xGQYFPo@QECbK&(|D0R) zI1`|w7n}V1R@nsIViHDONj9WI-#l4S%K2}Ohn9O+k}@}!Ms|XADb!ea3^hL3xZmjw zOkIhUJr7wn;no%%xfh}A>;JKoq(iR_rG!hb3c4X{;S}V9^j}Z^-m^s-r3flgH`} zqsVdm3nLr{w^sE{ADE`s!Rzi_8G16t9l2&nBJ)6|u7sK#2TGR~oswJzewwhbd!rkG ze^=ww1yJeA$w4{Q*pWgwwpw&(qAuo`1eYRi2J*{K! zh4AC`1@#C{&z)Yhch1Of@0ng`AQ52IS1Ae@;;J)aS>Lz-l$nMiM{DctD_}k}fRV4+ zSM3iPPzq1gK?s5y9;n6{7OA_b(Y;bb=qrq4w%gDuCWtX|te$3)LlS)sYLBF_OWKeg zH>GOg>2bqBf=2T7W}A~#QU{&wC{y^V>EVtV%N206wSX0K+*d#@rTtiEEMLrs`9Y`0 z@j@uy+%--r5iV)D@XAtmuWeDdP$4Po2c#0>@E1A(NgUa~MQSKsZ6fQyYYLs_^W2L7VDIaA0j8;71f z=b>?9A5^$|F*s#3L(c?FFH)hJv2j-8Wza>y^`?5SC(?WOL4 zC1~WDav=lVo7f zC?zZpX)0} z&yqOIoW2JQ*$sVAR=8xCbpHp>^)DZvB5>u61EXOE&?Q(oVoy@l#lkQ?$zrhD^6!z@ zh6W03=&*$Y1udzXEJIudpT1fY0XL}8z@m?ZWK0aZq{CPghyrJe8)A=vFkhZ5i580J zOLa=iHnobwmfktGplWs&cd(LIgn0`ZLt|_s+ha5Y5-J$ z(@B>I%e1UFIRmpfXTw^cZpM4jmPN{ZYV5%9EuGRjYiK~FF)3~~LZ$s?4k>&MUHx=c zO+vTU^Bk^Ut`YOAf_S$uwhQ%^LOruH!B~78_cc-#)laqHZb?KNB^nM;X&XoL_N8UL zMr`A@GSRg$p8deO9`_uqb(^BV;y>UEs zPXPgn?{FiXex~%m;Y(E?w`(*Y+Qt>SB9+I~uH|};Kqrd8CCaFq%JwwDc5to^fu)mK zY11-~bZ?>%c1CrSH67@g>hplkcxqM6aCEhR^MBQa0)?_Fp%X_>_!6AJ92!S6u*2?k z!nx~Tb?>JUsh0?j%Jh6IR(}@y(rFucLZSKcI5|F(^3-cO8lj%IvBz>oe0Q|jv<<)o zxR3YV#RN83p|Zdm)Yz_PbhX$aN6^<1?xO7xyCl&~8cCq4bn{ADx{Hy5Idg?{Wc2!B zJrP38f)^*|g{u+^V^oeVsHbbT!F<~OsXLx!RSMn5$9*jDB(>Xk7D$R~yRi(9p&?Px z3d&HcyBu@gC2abXDBKA>yI$ZwXs3$^pxmH{paIy{7$;V7yA-75bIa$&#d!uHg?$g?%f0nLh-J`*+bDk4Inefrec;xY&Q)De@k`FNAY1B7%a zk7;69Ag+egsS+Y&&sZCKGGds;h?eo0oy5}N2b+Bbw zBf)7GgKt2|=DaDR#4EAUbf2d!U%xOd?C^$rljVrts>$*~$>HqA6qfVQnt-o(ritRW{l|+D327Zes6Ybu1uw ze3}Ax$j5;sr#KPQ);jd%dq1TMy@jeal231tXl(i##`$X@o5%I$h#CaNwQ6`lmbg`_W87F}Nxy%^lGZCT5!i#+&5euslYhO`}CS zjL#{pDzb29E517bjEnhbD;%o3)U8y@wpsZo8Qhlr;Mr%E;6wV^9H13qUkgs}y>~{C zSzZT}59NX?m3~t(UH7_tBl|bh3H9a$``F_L4>Q||gAF6}K0APE5T?u+eU`=+$@BM?b0OJ;@T=3?;7 zX182;P6Z&rP^Qhm6=<>$kjmbCMAJx@T+%fX#~*WJx7odNv4@Bqqw+YlD$}I#lKRZ4 z?ibf?D<);-l=-k5Q5F*)a%jG>51=Z(_3?GfAQL*ZeeyWgxp3s2D_AR40CI#+5MbO5 zSX&daQSpXij$*z-vgH+qx+!Ngg9?}lKPt=B9R`?`G02A}IVVdzMVu`%OO>KZ&Tu$h4qcCMS)%D(Y7ym?mjrAM=9S!vP`(|kD zcU`zWv|*>1S{5!R1i%0@w9m*iB$8`7Mau|lZ*YZr2DK@3H$-AJ1>ojBwShz8hD${I zdYfUzBqc7B^A0YoW#;#ob_MMawNexOG(3$oA%#Tsprivk|CGbO|KyPk_EY?sVF$+V zhr7ORiqCdiLG4+5TR&*3%W2f(K%uz0gem5_VOl8tAs zxk;2@`4SYLRXS>Oa2iYq^O}~f9Ft(>Ldft`A~z)8<`dVAyTA%ezRX;MIx1yLdQ3m4@-N8BkZS}{5%hw{3F-EHTxEg_Tq>N>puF^aZ}N-0t1TULMZ6Fe;w+5 zH;AAU{{?L~qL$%Cs2@e)oudC>-k^?nn6_ooic>W&%j>uga`WQa%kPK;UOS?;JPDJw z_`}0mdl>bC1H7`oV-LF#^2jTU$oGP`zHaz~gv=u?fAVw1{YGgL(QfhI#xb`Rj^nuv zyTo?iTWsT;vo~8kFrZg+`R}|Pj}(MyH{`YXPmajB=Tw9ZwNtpFS@}Q-&OX7?Yv268 z-H%^-xGnlq+=hYG^4laTeCskSD0LmUR9p8Q{4@0a_z*Q#TtYe)<=%OoC_w||{B|M%0Tuk)>u;NR~kUuoeQ^X*1JY0++2$WonN z%BiBS54p>ss4#@KpMV4u>5ukPWtygX9`g zt<5%cvA70y(6{nYD*FL2BzSr-hRXEIN!{0{&wl^(6slrxBAu?TME8Q{|0D!OBSL6t zRV>vbr>`b?oaQ?FKbFD&7)zN*!M+znxj$9Z?oBi{0Lv^fi>9U!=>U0)6!}9ru4cZ! zzAkSmql><7Se>6(V$2YoGXT zEP`v`N^O7YVZNyK$EMwbtLCL*=m=NRuuu`%p}VXLIBbKGE^-A{;9(tT$*5Rxlhr-h+o9JPOAl(|%O9 z_MWJ9{}V-dQPIbi(c5sEFVs|A=R#~}gSF9K$4qR(h$^1m;k!HRhccy1x}IZ{lC3PG zyAI=hP={!9ExNhLZUj=NQ%3apD@jUTHaV>s*1_vJj=mBti*hCOHl3txoC@C|u?UOx zS)}j&GU`AD2$D?GHtMgxYPArLuWYztLv|6fphB_9TT&@j6?X;Dt+)GMtkbdlGIq_l zH9BBI;MLfx;@-@p!0^I3O9H=@0^YR+S76oWPbA9wJI~6WA1mx1-?TRPrKUwGKa;dr zbHM;QPlsPyELUFj4pGNHIA=-?Q;TJKK@v9GR6}}% zxOSd;UELcgntZpv3;9cEwN9w!&iw951Lrwiy@+PgD*)pkTNNa}W|z=&-*6WdQC!7h z>s)+iV@~>ndhA2~$J8z(f^PQ*E`46S$8A6=*ULKnaI2^?CSvNTJ`O_=ZG2mirT;nE zLR}hPg!P;pb+HiBy4$u#@bv^Cc2~s~#Yj88lrsTyR!#)=8ono8YxOsKY}pi*H{2xG zvV^VJOlmLi=|nf$S~j=lngLqxR=PvNpG*E_XgxW~rxq$dME>@HW!bpBb8b zzW1&{SBe*=ZJ4bRquTs7q^0;u0mDUS=)dj%7{SyFlVO^mE=at>g$laVA+?joXkVvVy0<`h<~Rb zooYa@Hs5^nzB?t>1IME&Yt>)Px_?YlS2pK^bwJx4}(Y4P3@ z@vQ7{n=6=vvLlv)1@~92*-+l!ombhC>L%+!GrONF@&0~hQDyKX4XvK$&oqZkCrQNURX)rW^`$o!7P-?dow(yJpl?;?nHau<@$6^$iuu2DUPq`!AGFk?cKN@&7Dg@9?nLp_; zUo1_yjWRMw`!Z>bvv1}vev9=j@9&CHo7vDpRcT&f7_YEX@9v||Sb0fbOwVU7g{mYW zU9qmY0x^h#s5eBPm*i5MTTcv~jHN5Z*wt4mM^EpBap9akF%V#C%4f)OuASyY}|zkPT?3u|+pRWLeoVgg!_ywI6cTdZK4oxtr>i89GkWMF<0 zir3tHujj$jmzgG1wJ>4FWj$NqIi7+_e>@8nE-mto@Zu6 zsd3z*TX^XFNP%KnQM5*;p2ShJM@37otcVlnJi_i8Hi98#{_%b4xfj>o^g z?$vL!7hRdpEV;=;VRQsA4&u}Pt>%M>nB{3B5N>qSGE)5!u}G$?f6yFzS4}?TlTbM3 z?c~<>AR%9j!M@cUW3}j5HZ3wLKK3zTPmH$Kd^>mSA}?Mpcz&1c=W8{Xqh0iiagwts zJPse3<412Z+4y@Y8dj9t-&i$rDF)3v(47nkSv?UUDS{~$7VTZuwZSaa=W>_EW~3MP zM-=WV6lOfdQXSD7LXdL%$SpugG)f(v!f-wk6&9D&!Ozw|P;TMqK^JF)dg7SClvZ70 z$#$8cD3nM}Jr#`9*^T3K5N*~C5>911pY?t!#TCcvtZXP@YpUX!9p~{OOF??XIabhJ z=267{WW008C&#AzDoOiFAKRPgIb#Q@iGkT#qf@)kC^*Oa#HzZ?N2nxu%@b)B@F#SI zw;$0@Az8I?<=hNb*<36ip`N~!cI;+-1^VOe_NhUmDYm>V5g`_Nn&wz}tgU&^LeZC; zJcCcqq?D~o)|}29Sfu9qtF`!1=-<8b0TtOxizbN{BD%ZWUaxL z^v2*5k~y9?O&a(w7LVqrq~33t+kjS+njJlWiDM*J66}S8{PYf16v|22VDSYbHwT)F z^)kobr;0(SS3JPyz|MeOscORmrTtmyz0FI-PR?2cHO=2(G~v*QN(#9BfN zJ^e_xSD}XRlm3f?n%evFj^6TRVbs&inW}9~zf_WPA>{aLQ5?xqv3J;B`j)G!zP_{( zU4DssG>$-+G}sp5=ltb`2uXS-oPPXE{+{GQH^*;W08GiMdp-faLFux7C{?3dySN2V zOz8F6<|TS~*J#0E0&lwmesmY9y=x-+ZpC&l+Zad>6zeDg3+i;9*ewyKd5`ko!}8FE zt2*SU4*fQs4+H6f%1B1W-ZwnR%a_3`vRJE&*|b1ufkToUJzAq2))lKJQFddIC%eROsQuBXDn)l)UE>s3~%s?EHs4^ zB?Wg(t+h6kIxJ?=ykU!sPZ-Z=iM_L7UyL5z`FBf(hV3U7M%nh}7Iqi79}eW-%y=cI z%}G{U`9M4~m0i{ICm{U#-)s>|28cO9{i zeXuFp)i;}0JNKlgPbf*W*faAXORY_iM``jYCUPvDnOLokvt4LT-%D&{i(J|KoLCNa z%?#<8%X6i~&CylQ(sd>RC)pS7PZZNNr1OMxfissaH9s57sIr^9VbRuWQYn-Xo)T-f9YJVkzH=d z>Ce4SdS(m+&R&-!HqlI$cbkyAUytkzXJM6^w*pdwbaPe%ilCVu>?EE$9o|rEb>`hf zZO}SBI`wXosIGhiBZcBcjwk%~&MH$yv=93#;v=me;iuCK8+spUUf)1Cy|!*@DH+;a zmf7Fu;FWMAr{;MFyD1FM5PF?xY_{;uEpq_^?!Jb76^P@XsZ+&ETjW@qq~rDll_tK?L^lXo|F+s1k|B3vZ>Lgo z&KlU&4|vY$uP*+&MslJJH$`i%65`}7)E@(*R@U( zuRCjThK5pE?2RQT&%E!NnaOa;u-3=%F?Hf=HQs9*rFPe+#B5PAK}lGTXRt8DNzbNK zFIkw-FqTZU-E3sJ$aj3ylziaP+{JeB998Yh7wM)YrwcRn2g=4XqL9>_U+=CrM5M8^B-aq^vmzdNS4{GA$>l6HcNaoAhl!BruL}KRi?zt z!(ViWY4y9^2j2q^3aHZA(oa=+L4u=nj zK2JLtrPpOX=l`aYlk(p3>Kyk@%b^5)o*poxePixHi}y1KIUl$zm|RQ%Oh^l(P( z^whg($1IMCq8(cu-MltNk%b_NFXPL>i_m*J8=&pda|i@tLWrDV5_krvr8yw-aP;pu zBK7LMU+F>Xe(;COskDQ)wz$09r`fx?!7nSPksIh#ESWkTr%shsTH$qGigc@KV%bOL z$zaw8e{AW?AKnJq%I~8~pT8{2apV$=!?TK-Xui2l7?sSl9hFonnVZuj_Pk;u@T)4N z-=qw2qU`TkY6JiqsorHISqY2c!+y{bolmin-@R)%k1Gd8U{pFgEgtb<=6S$)`D>%N z`-`k?hBYoH`laT7o3Ol%7O9XN)=-m{@r=PLQ6@RhI_li0bNzfvZa|k&+w5ZqQD@wy zo^>o(TSJ{sV#zd7?emTb`^t)=O!Woxr=q!8ZZwWr*Z;=aVmi*@a<7W0o5HN!P;xQ( zy@0`ctz;ZLS{7bWnFQC-E__3mAGARhf5w+rvWWM|{M3jus4ZfVaLO&5d1&D_dK+WV zxGxx&=R3T?WlGTAonvzQ(t0q?HGhp$FdS6r3zw`dAhjtC+V~Ysp{q zL4s9!uGMk!%!7_FyIVo7={A;USOq^hsO=iQ4*fLoCcf+IrvwRG2pfReVbQ(Vn#9;{ z(>7hb5kt;_u-;_YJNv&o?Nl^Khoo2USO0Je>btvk6&QKda`>A1dD!;yOij|)?K84y z$H!JZQV10;E4aXzC)7LLv3KSWM$#obN2!Pa%$1nCE`HS50o$`WrF6;D{v9Jub?)uO z*||=lM$*)C6a2*o6^$ge1e}>s!Ltrvm*xY79??#W1OYvy(WAtvQusjq_*Mj~GyPus*`xR-Bo7`-V66X!J*7F%u;6R+pEsJOoSz^QiZLw@SnkFc+8|*4ss7C#z z5x2vs0EK&&yb0iga_hN>Lc1!>QRm$zrIgFAbB@KPgj_-vPhnw}II48&k#MHll5{N| zH|X6Tea8Q&w?pqbM~eZOS|S+gq@y<7)`%aL)jiQ$5i!IDjE}=u4G%(tz}YM45-wU2 zKd-AI=ILCvB8Qo=-MpOk-KzkHiMkLY&X-nKSvpYg@mI^3=MM zgV0{ZxTGo=tLc9l0P3^X??QKNLq^smMjL+hr+$l;Ti0AXUl6HfQ#`$0CFqOp~i8J9egyzP#5L zpd6{WE9Zt)VQ1U;2Hec=JIvQJG=tSVX13ct_r_J*nJrOd2fRzXkiPY($IfAA@LXHl z1H{}Gd#cLgp&$8SDly@qZ6*t(87xmu?ftwkK7+-kCwf&wpfk)gg!~PC$Oj6m9r9xh zQ&q%Hb?y|CNv=1ewC|E8zmymjjl;T7%|B&lxc3SsQ zog~2sx1E3Fv&u7P^$-EeJH#hq6Rsb|K4bdc4R2t}CwsfiOtn*E%?&Q)UDhP3&H2Ay z(s31QtF{=9;(tzJpts9fHR-TppVjD>CX5HA*vT%p`>20Ih9Z3(r$Qt*f6)R~k;7#D z&3gs7VxFvio?CNWR*kj|sn+b|*<+^l6`|+TE*klgdB)4*oNA>dXBu?BSY-2a=NL1SBVthi^|Ap=s=rK->U37|<8!}O|5Q!k9P5GI9dE;BnnQ5h;C2fy zn`~9wl)*qIvw&&S>Ew9?KPs-D>V90lZMM*<5ga^D)~GO@cqcChNpo;OpBrT9306^r1E>ft)j<8P3gvI9 z1j83#D;Gagl`K9^Gu%l9UeuD)l54^6qr!+ccHcV2VeaZO>?&?I;*Tp)13+)q$2ogJu`P?JR%e!X!lh7@Ux;LM>a6@@ zCMhjr7ws2UsS_3FZ#pi%Q%#K|)`T9y9&i_TA8slMybvnfA=>r!=1jnCiNmd$F#I?p!A`c_*9Uth^dv79sftT zJqzte{pf1M#LCiaF2l_x&{tf%FERkx$%%_xC|v-~9B+(eFmK9EtRM4`jNwQdjkMMUP{x{Aw!E(1`w5U=*E=gxVB3hwk`GnWOoob;fsnO#iNlY)S0t2u4_ z-BK#B|3b@*%LwxG4Nt|62jEV>kttM8waUm6vAYRqz=lW(y);E9m07`9#rYtPEfHpJ zs%0F&y_t`|aY~9^sFg|%pR$JEoHll}7cmhoBA^M~_4Gc3i$;cI9&!yB56+#bRRpUl zpPbZ4if7E{TMyU29JYMsR5LRu-Jm`wWe+q?=S%#!R&nPq_dC0d?h86;r5C$|88#&R zKkU7EIMi+X2OOn^iXtkZUzZFa$nrsb_ht+u8 z)C81h=A-DQm+E>$3o!1Z`>M}ry*;<3ct$fiyB#tluN5S}3f_U`2mcy#!uLkT;>iG0 zFGH6y=n4y*p+si9K_1oLUsj727Z?fn6&0X53HV@0UtR=8ko3;I;+BCNNA-_QbBb30 z-Yu$6?Dmd-dQnOr=mDJ9<^Krah`Zt`<1NaW*g+@U=Y#8ew5^`8Z9{blAAjCT8d>U* zXi9u9tc|&>YU6M{F4Sg|I@Jf-PjA!*PHDVJN8dV+@WRib%*#ryJ-GR6$Lk9D`kkHT zDszzmqB1?i$c{0WV)KU4<~R9u^4J?QzVB0b3sgU1nsN+$8nGd>iv>N44a{ca*c#_= zpALxD#vELjjx#epXN{6^##{=}sK*l1CqXW=_YfF|{L;WTcAai%=#BFMoVB;-jDxo} zNKCeV?d(3d-aHOV$f97iXMbbKum_~}Q!(~eUJ;u_qc7`Qs`FWOr%9GEAmq9-i;JR$ zs8*vpmk&Py?0(COhr^_M-MrrMVa=s;7c^=9A1gnr)aXg0mFqbOb3@y2bzszTd}A|T zU((%3DeIvct)Jy|cUOa!hiET77|^0(gtf=Ox1-^PY42uqQ25_n#2 zfxQYg_@qA9&mQi0G1KC~UD_r3zooBuXB_n=N&rT;y9-_^SPap{;knq&8mnWZO=P5J zekIgQJKK6z_OE{sI8{68-bvka$P_u70h<5XIT)&C14ZpsCYKu`wEZ%BLiUNP5{#!` z;LEzAk}S^C7L`r!G|W};b$)wsz5g5J_g$&O5zI1PU0A0IWiAwd|2ZDCI%@0`jpA@Q zA%gO#^x2N~i&vV@f7>(MXmotk3Up`o^KIi*bZ788uE6Nua0OmUdgy2ER~@ixmb!--6XUx-?067Qo6zGWrQo|w&Isec(`{tQ&-Y$3*H1fGSgIk(!VakP+mvMiuzNwpmg>=Tv-^Mzy zDy0i^o2=$?k)~56xfUOupQ@L>lCg67d*ve*8hZpxGXptL;pc zh$t-sJsLPluYZ_IEe(1OQsXeGS=~$b65M*??ZHAtHFfU!0Yb#frd63!n?H)*)~^yq$#o2PNP6J+TCTYIA3uLpAcrG zCp7TR#7d$q#V35My%@(lU0}Z`-o86d?s{RYZtumR8UK$}H7b0*dtHxq@(osp*W|{Q zK}(0isgM`_2BxjhKO5=HLoIfPc>YG)1h!R;X~M0SY3S;Kx66w}tH2H08eBOsna^$y zH%!U*&n{su_(>WIyhFZF_HB*Sw$wnDQwfki!cFiDP)AGBj-CBTQoIqEu3vPdT`wev z$97rvYx0ix#Y@bDhwJ1E52*Z!p!q9m|3Ghb8oR~*@7{cckP>ZT(Y0w{h2b;r`SGiI z)pzBCad(in-`#9vlg(+*^*eNzNRM-pNTQmY(VeqHD4kPK%pR|;&Q}cC70*hKE>^D8 zO+39)=in|f@b&!}s1xrc5HB{}6gFv-9%_%gF(=MqPC)zE8(XjVFLoR@Y?7AHj1%kZ zC2We@LlIc69M*0NJF+!$XEJ)w1s};{@6ho+SFRAbM><#UW8bNdeBtV4%cwrlqz9qf zM!J9DnXn)9bbPOQazx=aTfsAc18wWd8`{6H@(}I4+jhQ8hqFCSN+9<7cLK1|KI+dU><)Lq63HGF#guBV{WC-}(_ z`jACUY;U`b550Ji0eLa0|L%iX>E7DJ2X4yYJ_S)3FF`Rj9@cRzV8j*Yp zwJSBAN7&Y?m`tkj4}?xo^7AaGi)qU>F_d3CkrOu>Njf%akr_{~CmcawZtc#3l%?H< zVPw*sS-`Cfs!06Pi(r$a*Bmr~cJ&Wj+xMD-2?GXGkD|ORnQR(uz35yFVVO)WHCrI} z+h|^om&h+y{1jf(mUC>{?4wqibD= z!SB6NAGh#2*6r%0WS7sIYU0|7GBtXXW5HcvT@(BE#3#?n%z9vKm-=xG9N%Mh-IB+_I*O87%rCLNGL^G|K`*@r*+;8=v4&u~x#Sb_I|a zQfwRe%CCVsOe!fjI^yZVGW@#^+9<6xNg7!I_P^B>^hqgi^YsHbX?PXBBH2_!8fPzQZ++S~eINq&JD9Iq9 z^F~u(QR~hjw*VtS6UC4!v6ZgUk5_N?VUzd{7wau!?VG<|xz$~ADkoBTDKOLn!XHxY z+$>Hvg53WoZUz z-JM!M0Rw9AKBj+`6gCIYac}%_8PLN=+bFxCT&4Whm(^&EU3^W#eg!FKY5TGr(0J2-6I~Y56);AG&1v`gV`| zQ*&r$lOeP@%-8MJ9H@@??RXOI&5Hb|qv|xCMbG7pFoHU4X_0hEI`^W0bgu2K#>i7Q zd+9L1wwXcuRiJC}^hDN%f2$$K#8})=PQNB|DC<40Xy<^;au7bj^pMcb!_PIIjn;m$swz63{O*qmfk-9{?K$oSWjD@c=%BYC&!KX(%80pa~4O?_JLd5WZukEtV%8FOnw@;yG zF2o|EpUEWLdnTZ(ZJ*_SH}>l5YZpTx#l!KX>qZ2i4RB5&&$v(j6S>+%$Jgxs8@3q$ zR)11M{CB`*kc4?$|6e0nAC@yW zs0EyN8#-cYa#F=Qk%lc~YH^480Gug`D!96IB1O(EV?GX-g&I}`Kj4;*>Z zFK^5S1os?Y+L1i>srPP<&7vj062F`#yO8oK{(8iBXs5^D49zdven_X455G~qG1jYJ zd42m;AfU(%h6h99eg}F7GP%rohA6DR(Ty>U?O66Dg_cn!0QB0L_)iUF+f1L={>DoE zZ-8Y0PkV79=JrV^X@&lVifLxU8uZI1P9Nslkr<5>}5nfBC`$z{Q10q zcmC@aZ{UIz<`U9x&H>btzwOfjdZtw#V2yt@?{EMW2~pZyM<};BBC4J?o-S32j7AJvkha{x=dag(_C;eRz$Z-)_v{PQjL z$I^v^lKs1Iw!`!=;oQc$Du&B zs{fG%|9R?u;+UMSk$zPfeF;JL-+OyQOE zT6EO7#buH3#}=wrpGIFUJ6Q8BsCI*%kt357o5iIaHx?9!I(RIL+y}j^2Dgh-N=tDc z*VoFAj>aB9(;=$s7#KHfhTGKd_dlMh1Iu__ioO7UL+7C0Y#!5ak^=+a1TC%q_MtyN z{rev`*ddm2-Wgv|r#gO+k&)a~@L(O*MO@c)Y2%EKECn9Oq?nXbf2{a#pZ+%)sQM8k`SSucZ*EZQ*$Zo`YyL}0|Md z7^uECs1y<(kgWs(3sxn};B@lMq}9eqiE>TxB__Y0+q6P=Pp=kl!TqQhC5(#C<9uC(uG)#9=)(=d<; z1Vf{I{^!NInUlojLE?oumsD>cDk|#1hiRlFV~EWN%!oXeAKMV7@j^3BMnbRPDldpl zNcd-WQ&-&&#W*QuUdd6CBY%Go8sGzA4=kI;fRZ9`pY-vjMLf5nfD0NrFk0>n1J%Fb zt5XMldSk2^$sDL;_HVOjj^~;&k{K`T~!um=BelpP|9^8YJNp`m;)! z@`SYkFEHgoEm;ZsF!MQ#zd$|n(s;IcmE@L2ya3r{FZMS+SbUn$Pm9;vPr<&ca3e`x zvn`)aKVzrhN!WcN?yMp)F>J5V5Q^|n;Z{>(eufr*7X3~AfBsFkHvp#s%1gy_IXOwE zm*_J{#86zEd|+C4QL4aZP5#gLyfFbk(K!y8aRs1;crNR1-+3j4{kuIo`O{jcylJ?K z*UNS*w`98gg!5qSW1!R7wM%yF%}28yABx=-7nr~e+7tNFLi-x}&f*e?jpL=>$RSt@ z{pkIK(M-`#d9tkmuR1-|UnTXNQvR4d0JY!2yT!{nz0SDK#JbGRuyodxZW8x`UHv(e zxQjbpsgdUF$Z3`=foshT-BIlZ{3V2lsub#{qg z|8Orq!-zkHu8RkLS{GB{PGD*kW+Dks<>wnSAk=aO7Ub@?5mn2wOt3PNJ>E0ZF3lIy z7|GlD+YYRG^Tu1li`p4lGay*_+YF)ND0=JhYaJh$_Gi z%iINmzX_GO=)+GsG`iUgi2iHdm4SQ2fGqLI_T@!N2pooj3yyu|kF#BfO-Ec+g7@t? zbT07qA|g8;sN~#oF3`9B>`!m~mvuhC(jtZ+4`Vz<_22Aol9;%UYK=YZAi}{XWp9*d z(=~$wMmRIbEZ7;QX#C3q`M(@DE*S%pv2u?O0t3dw6$Bqthd^FWzHkrqyH(rv)0#xL z1ouK>25n)NCSOgbMQnttwrlrvzjcV4Y--Sx z?G4ttMD z9}c2*H7YQYgE>XB%T6bMz~7p7*@=}$JN8#rz~SF}qP^)BWp2#ZC-1P5L!9^WJ0lN* z%$d9&xZ``7o6B;1e2jWf=ME{67>jcnitBV9p)&OxMpel!({je0gp+a(L}Q|{pD><{ zX*lZn6V9Eef;vsRHC^v@{tp;Og-+r^PWus*-M&G&J0U+m|NTw8>jeIly3JhNaGknn zoINn!x!kqs)LF1D#K@BlDv=KMtb3sPgPo6G50-_;uZ!0>F|1GEEFWxP*x+Do6g%DB z;dpK3+2mD^Pno;^@qvUuDezKtdEq({Ir23pWzOtjKv?NBng76#-`^k&PmeR_IUaQI z{xIDM2@4xus0Lo#N5BsU5qGj}_^Jhpai9&GneyV zuTvv?zHRwI_`kVfoPp7k0k{~~UJJaIlF7R*E?zHEA^z6IE*;TabKU!u;{8EL4}MBW zZ1J7zH%x=rz5IW$opj-_56_*}W!c=2hFDOC`G;%nr_y>@%C<{CBP7_LO`E^Lg63dy z+7I@}lYzfs{C+AYTfE-vbd1~&KI^{`mcsq=XM_a%!^-vv7BtTEqu&PMXvBB2=t6oW zYh*ym^GBcE28twk_Gg3y`@_5cDHlkeMsCtxAD^Lcst1P2(k9sk8XZy4V7mJ30d;DN+X z3QIk=rZ5u`rprIxC3NL-Lwcv=E(XZZHv?_pnpdWlD&4WVS_k3Bu5Gv({KW&*MAb0C zo2_;+Pu5}Wkk&tPa$f%ep3wbt%hV&fC4XQ6FgZTJJsM>xZr5?5t%#-q?G(3aeg&$f zH80M1LAu-S5w!?8X_#429Ve*iD>6Wju$BfyeLw3;Q->4i;m5NPdI;WC3{Eo|wdkA# zLDU6fgP9+?jTmr&TynRkgfh+mf4V@ESDoPu3_Qpdnb)uj;!`Y@sQX5UM9#M8>DdAi zwnIz4*5kEb)K5v7d2@p-F^AV{EL+U>%bP196FD^^HTQdnw;<;~0({X@uQcL1;5`SQ zFp}#_WGc`7Xx--EeDI9M6%~lrpG;^;#_8}wj2l4CoFON=C$RF!oN(?5VtFOhg?~JE z!F$7Scwy?`59R0zTiIF^j%|h1i1D1l1>&_2_qHT)kd8wF(AY9%>$4v%tsP#*g5Ta4 zdX(T9SJnJXQlC$^{4z4_gCihIJk8P|Yk3`3 z*PkAlDKJ^3xFSXcTH70wz#9E13m#(ZtbI;>P1)Q$r{qUaEqJ&NYtDJjk04f$AV$O5 zGK=ij{?c2x)d`5=oK}wb$nb(pM+QXI$LzbW2T1!OdHY9HdEfpryzGOgxC1;89#!wWHk&0a9;mc zj;>zpSiUY^72d-^#hA&IZ$=Svfv<1 zC2*FcwOo&nT8EuUSH2tiOjaq24>cr9aPRR6K%M1^cMlGNh<)E^L&qiZc&C)LwRK;R z6yc^FdtK{jTb8M9&gUc9?>BOv#TZ|2e5qVS`*d?$r+%GJLXhN>jQkEk%E$dg-$y2% z1L0k07%s4iNcL-C8Hr?f<_17~%8s!?xoMp3DKsF;pkR^$rWE?$OEuoRf4b+YeVM-9 zQYzBx$)|fg&2CO`VAf%sZ8;baL;4RP=TcRrFqeJj?!u@kZLg;M?B$7Em^x8$Nrh(@ z$rI=GGCyBZveP!Vs|}yQ8lt%3(dAgh;|S#W6@3)}hVt3VbDg4u*-ZBehE4mlCePg= zhj>#%f(#w75)+U~(uXNFjivbn#OOxa0VjgzkaDz5{}9an2!w27v(Eys`G)`tc0s%J z);-66(U6-e|AJf`cYg25+%T#rFsyk1;iUS08R%w&wH#(MwL(`tV#a#=eVOGH?+O=m z9e0D@$k7-MRpEUM-6Ex#A+wHDY&v_h2i*|=Rw$Esy9iF;y`fvJkRvi&97ODdopL?j zOM=bOzkQ6$#N)b1I>9Cj+n0-8whd6+6RDA)8GS+kNh$6L=h#hpi`Q@*NlC7R#i90C zK$>m}OY#v#dGtNL zZpgjhdb`T1MUv9ywl;L`MI}2zE!6-!9lk3*5|{rhB8H^_zlFrXTQIkn* ze&dOn@VRAG{Gf>uSkEJWl>wm=U^SMNw9bc~>h_+W zq~}s|h4WQBP%?l9Fe*IG#U3BI=cM^e9n)}7jDEhYfyg{PS!IizZM~$UgSQnW`t;Ey z5mUk{-?CUCiVU?$Xb77-C-Z&<_{gj7FtM1`2p801ANtUiDWV;wRMvYOE<pV*6lj z+c&57xip*trg$rQ`iccKw;jtW-@j2eaMd;MI?{lmE5rv$l|8SZ`m^5J>qNVepMqV- z+vm`NM4srDtqkTdJaN_`Yf`RG#gD+7)-fjunJX#V5Y8L`<1do<6&F;y+&b;H-Rbk8 zbW2fIrjg6kT|5`4$i*2nt?TQ|jzj0lrAnuQ?zn27M=KOBP87#@BY_gWlB;aKVz{%w z;XTH5WjeColt$Hik6W3qQsmrcMP)$IuR!H0->?3g1_?tZ!wX-k6gUOWijougwik}1 zrZFQW!3jJ`Tbk)KUwFF)+QC>W-tiG?rHqQD5M*aEGKd@7y(WtIn`p@>UpE*t^u;Vd z7!&{CK%@@jpftKA-x?oP!aW>XcolGeczh2kxfGVFU+b1GsN|qhD|w;?>@m#4IXRl1 z+gHJ5dh|<8y)0>8&qBTX!91N|x;N%cPT;ef1gb4#j>WND&G*y9T(ZNN?4d8_A$38? z4bE-G?iDa5$#62a6=<)H*i8Dsb9ZcBah zDK!SFd)Z?5M!i@r>l63iTcJEH->+z&_a-;0wB4^D%J&M?ijeJRlTipkAlC2sR!yO9 zOCIgPf1Y@8=Ak6f0VdLfGR~cT?_#r_?9#XV=}^eglLcS}q>->}W#)1g`7;l;KCYAM zDfwy@qCmZw=$`Dg>aC{~k6^m6t?~X4*tDy%&I|~ffoh|yBB8DrmPY)WBbumvLRZpn z9{WHpB{wFh6d-_V=n6j1MwtOo?39nm9%LlDV5s-lHEv2aXz(NpbwTYzn`}J`4*CEg z4uyiNMxINC3(-Vb+@)vK*k{y~H&wB+?fj{gGpzE>i9sNHzJ*UJ2aQ`y##CtvN$${U z(L)Oc)f7d+3)mZ3=SoO`dBp40oQg5++>=yTW9oAU7GmHK{&1%_f@;?Xr_rVi1Lgrnve+1T^xlt>QPWH2b1dJ%RD&d{nN~B^5>?w!Xe5=$RI@zc zUM92~DJ2q1cwsVj+2e(KW->KnTLY`~x2LrmQ_$oyn*`oz(lWa}hvGstTGo)OpOQ19 z@crQr&Wp);bWgWByvRh20Wngl^@!l1Zzu1Ga?tcM8DzqJDOo3f=yFtm1XsLf>`5`? zVrP%#-cvFbNEqP6b=2$g;mC5JVRA+%;k$^J-HT9Y+R~6Cj5(6LRSK{ZM8;W}U8aVH zov8;DLC+n*j(y8~k3)ZO&^;r#sy7C40SgCgZXyZPpKdI>m)w6pfPx(#zjZ*?o}dss zPPh=UPTsY{=n=uB*K-66&V*W5>PDvF3^N&4N)KM1K2DL&eEk-0swkdhzPmjwzi9n> zmJ6ka-+r^Kh`FH?mt$-wD50bom(1n^umE})*NsQb8p_lYi5b>fegwgMx2$F(KO{`| zD-ZEq>c8lNoDM?=0&s=%XpF|ahugS0!4Y;J0|zb}kSJ%N4?a3hCEGnO(qeiqOsrVN zlKYDYJXJi_3L%k*H1e(q4NmQB*+wQ62&A6hH^{l6TIJHLf!*BDxg{s4?gUr7=+(Es z(p_x*JZs%tER31^HM3|i`lVhpeXoOIMvGWmrG4=@C((NTG!E2icccm87Pr;qLWB(? z`9|*NBQYGd$Cg<&vMJA#@xz<=yl+puU4DAt40EgKz(e+G#+R2?7atTY`XKy`b9u}( z%#(Wz9B;?WwV3ZsC%zlD8R}sKfwS_-ct13dnGMSPJWA}=;SYU!Jm*%Iky%(k} zqwr}w8(Ddc-qezOX^Z+$LJPxPWsm1W48NFa$wKB`Qv_6}a{a3!tF(;#C*Zzeu7yHT zvNBm=HswO62E9paRljYs%Rzehcr}m;W2)S1KR|F@S=5BMC7`4!#pK<~V)_U=V7Owb zy$|_NizQ#e2Lz5fc=s)J_N=(=yZw%Vsk0a^+rB$2B9E4~F$J+C+4SLEr|zR*rl5qv zq(3W1y5UhJT3gx5F1nk-k{@}R3Xw(rS1Xw0;_E%(jJ9!;ZEkMv z^KdByZuj%%)2l_V|I+B{!+>m!wB_yuD1^EBmp9k#Y?FLallMD}G^dQ?_4#d-{Rp2q z69cyLL&n5cP~aj70@hc2Pl{&hW&2BJ>V$EE{ zP84bkkQcDkY%439t`=enxEOW(Fg=#NgHGa0kAj&(6PuV!Ab8q%U@5YcoaBM?BIvyB zxvUTutyz|QOrbpy*|cTRXRbYYn3XHhhJ=PFPb5ceYuFmf#5Vi{j-Up{n)ntjn7C&G zw}pl{V3Jm-7oXz`%Av^Io?vT3KfxCAZ1(QGx-6KK}xbz5l%&dozuQpp$DHbdJtO8zd< zv}DEQTQ;ewYpOciCx8#(F1AcD(a{U0yeDpIHI7EsNThN+PY!zl(MQ&oNxAkd4K;ap z1&h1EFX@46Df{Dg*&EELQK2NhD+|?nr90`?E!U&dzSz#2T0J70N=~%r;_bg z18}O3M=}3i0Us+Y0`sMbl9NWx#PodActX$K;p5>_V-YFbPtP-499Wzik73EzJlT8i zxAi0R{18QCmL6qRl)`ZDFxgoMtqi3M^R@g?g8RHD-+vF{ISp+a%}gtpAq0{worxoH z$cOigJkW*K|21BWgI)^b{Jj+BF#8RHZ~W{4F^)joK!KEl!HI7sU|W}FvwVYK+G~!k zlso`6D+YEfcK?P<3L^;|GcECOJZe;UtVv*k zJWBT{Tur+%t^x4Z$&FigKV6i^nwinjN0}(i9+g`Pb@KG^7$!oBQ%uOzvfnJId@sq> zkKn!#pe*WW%D0$#WuP8CS=|o?>H1qjPC8%Z_iC!4`~rZxueiTFxQ05=E94KMnkyS? z^e|2p+`XtP38R5v8eChe&#zs6Pl9BrTBCM;AN<&^f<&I<2N)0!kB#12TcW)nQNZq9 zx7rC3ebq87V-D9sT;6f*wJtV4B?0(~_Sj`{?L)bz{1CE8GTE_u)$XadA)mSym_^!M>FfE#N+lj~R z2)vfn)u2pqP6kAqfzYAVJqfzppB)5KtgP1l1UeS-D%N}MfAvdWVZhf8E$4DNz>X2(k$K#C&AAo;m zC1lsK74a@$a%U_7w@i7qcNhID@f9a_t@UZTr(p;8cfk&=*-XG8kvc}L$ZOu4U?n>s z-$+13cZ@iJ1|;-jn;)ia1|DR5ZrTU&5y#R9J~W=y}(=(nH0Eg z!bAeEubz(i*U#y*!lP$_Lbm=8ytSN7`0Fp4rtB!aK}5{1wdC0V>0^Bqt(Xlv5O+|?q5b@0W;&>2 zuy640H1&li)wxIbp$e@xAwhGT(CCvO{PL9wrFz3Lp|xZeZ_U)2d6g&aB2jSZ4=g|= zmd&BQj6b42in9id)^QhwN5)QhYe(h_N5CuEuUC#DUgjLJlU(y;_#b4%N_8qoa?iF8 zxBA|mczRvt@dO8ArW3qG<NcbhGVwJv(&OKx=R*Uu=F*=xlS||kvUm{jn7*%zH-^)&+(E~ZmzRvN`cmi zcP5=B0s4M|G~4r-U~%N~pg(g%&DJj7I@W&`r{hvmI1+Ks#SQ@`?asZTIQh-@=br0dCvV(ax@@(wLqZ-?25w!qAzNf+Jb{9~0RcHpUp}`v z;UfDXn%Tvo;2_@*o;e+{@LB)F^24dtoJg7R-P_hMzk+ALE4SmJqt~lV ztbgxQYSR=rfM{Lkv$C`x25^rYT#}G0TtFAnT9))Xg_QWF38c+9AuB_d$5DxF%N2^= zDQbZ&`&Yjh;zt3$lA94n?=Nmwi-X!{Be3CaT)wfTQLX5Mym1dI(~*)+kB92*A$crs z+*#Voz?ZU*L!5Y=F{^vlrme_5s^z%Ws={(n|1K-`f62-$`4beV)VAPe*qOS1v%#%r~oCH8bL$$qxyfeDEx6H7rD1x+KQ#pZ*SI z*vUwK0CcRPi>(uHws#y->KRG2NqD6avYk6O7*NJ=Z|uSu`y6Cj^)=b{YkhA7hpM$? za!#b6%YCn94M-{T=33$EeNysz>7_N1gmu_4!{U!JbScmj_wh*H{}_$S++z)U z;{Uyky^*f<;n?QiTU^?a+Urn+Fv7es(O{F5@5<71IZvn7KHW<(p#ed zhweI1w|ajA4|p56K`6BjUY^rFq!JtmHR5M^=sn_=<>>~w)g3B&Hb#DgmMiJ=FlR74 zH=;#`odJ=TS>m~BeI(u-+>iFy-!%+cO2wdwHD^xTqWal$NDmq;4qFGYG!%C{+0r0n zRZ*Lm4cKnfs)5fsen)B>1V$buDg608U_cBCbR#a-byC1 z`S;E{i*dC_gr|CbCavSGFW{wQpBY+NKsqXtK{sr5%cJ#OUG~ryD3cDU+ypZ?qyjd+ zr^&7`Su)2yZ@V3c>P44~&|NU;TVF@7p7-*Xq3dxSUF^*-k~Cz9iF7!F!6L`YvO4Gw z9+ezzs02%0osoMSoXi@(RMpk>>@}PttIn--?d7?e3O8^l;i1S`QAMafFIDoi+=aHV z#918?__3lJ^ns+Sc~+47LD}(voTW1&wG&iAf&tqZnMbl#d@KTQGB@&nev{FR@A8FW z5WNR7U+l6o;1oqW^G7Bhz?w8NKe~a}Rv`X*aP>=#-i#sN`G8LGaFvv_aob)Ffs1_5 z(U&Mhm}x5(g@hV~m$Wc5G=$VlZp9BJDYWc;2{4szfw+Pa0FGq_g<8<1vSz={Rr(eV z9-)ig;zClq5A@%iCIP>ntm{1=TGjVnh4*vUr%;l@QOSuOMP9^w zzAhDo}7w=Fk?~FaoQ~()v$sSw0e#s5hTAvZ3WL|iZ6SS2=yCj#ha#pFO z6Z~&V7rLO+GUlXb*Fz`Y(#cM)ijkJI+!JlR76{7No?_M>i8j*55CzUGQBy*%dBZ9# z(f;2Rij{7oFfMShPYtlgyAw0IuT3(N2iu&KvZCj|DC{U^tuGz)MRPlj$9`a#<=P(n z1=^Iyf?9+OxZ=x%%wiZoCK6KP*?D3Ey;ruq(7AFI&EHVaT}bu*Qzpk5+u5BRpp^B(iTTMDKokDde@l zQw!SQ%A+#*mJ??chvId!Yrdi~I+W1VkI^1BcIvUd!y_J5uj=;QcX%;N^SWtaMDrM} zY)JKwENY@|ZNSMdii?fJJ^W@lU&&o#-o>vmo|9Zqwm8dTMv`}{se>^L7E}I?$!DpQ z7dug~@^NWj2E?ssNL!RV`zNCPS2Uf3C4=rLDL=Eed8BYldmy&2MigKy2lL(R!2{{D z@vJtHaGaFfrdT%AF4f;*pw?fcr&kf3x5LM)rCj5#S4EY|)<>tfU9*H@6&71FZ2CW+ zYb%o4-r#^pYpid1*R zPI2aHhzB(Y8ATmqzTc|nS6cD)lw-?4~TrMHsOU~ zN>IjgcXPPN2X{??rJ59dBlZvAW$JflGmh>G2)?>(c$y4#Dzq5j#GYiIhmpv7^-jzU zELj6?>krm@>8Up>8X^0!HGS^65y}X|+nBx5825m@Gy>9n@&VSS&!%c?pswU7^1bG|k0I>eTzaKYeEP-gu6Xo9ie|YO&GmBda7F>)NmwPCH^9UvPw45cec+u< zHU-IDqkVz0VBceYbTB{4ex5L`F1d$|v`_kA{%*OGl7vFvqXw805N_^fRUn_2n=5B` z-L~DUDnEO)UbZT~(;hp)Gwh6hA{9}#!x!ynGbo??xstnTWpRSXkToNSf!iUr)18>_ z$B*(BwCtfNmCRlJ=-yT^v}=Os%GBvlV0ZK?`9dv*wDJX!mSL96^RVL0I3aYAGFdca z`p6eon%r*F>g7h_U7Wz`HQVP|0O0qeiSP2P2Q|u5jPjV@oG^ovx;^i!g5{^q5!t=Q z6yzwg4|$O%+-p9{Q@VTN$7J&fGTUXY^?b3-tuwoe^ywc^&MH@9;jA=v$30;Z6|J^S z+rP^38>IVqbHMZsx*Kk-_6P}8NoYA260AJqXCkIX+<*v8k|Q-le?j71`4kFn=*BuP z-+4`JkwwfA`MMFMJkN%Z>#h$}>t}nbmW=XX`|+fGT6)BRwzf*H6~ddll?>GKsH`fx znH=M=?gZS%qRJ~}3zq4174zHBqS!ROF_|02e#m|whw^P9>9@2qUm0c%6KZx%*e!@? zoEl6N^4*C=V8@puW9)Dse4As!Hpxd=O4lK4n}Wa>hIYFEXrfv& z`5|CxtYl$oG9jeuV~Bi2N*thOz2?UDJS>}O_;M?m$L#B1OhqNP-Lv8jh5K0{a&sQ` zw*1Ji^TXZ6?%vKHLYz!Rhwu^X!^ytW&vwh*ymql{VD34xbKLb~m)%fY|2+y%n3t9J z3#-96_X<-76lzhb@9Ev`frmnNwyeFP4o5V{rAfzV^_$OZ`I+Qhc9y@p&Ah3?%e8djy`mO}jIm#3%Bc znp{@C?93}T)Y=3T;s4<=fA6cv6@E+Ck&19@yGIJYM*tNb(CTan)c8yhIeG<;(7gCb z@Ut30U_s57*fT+4%&qInar4_l&?O(YKn#4_*N>#C;IqkM^{L%&MDsdEyZ%~^f*s^GT-KtGtE;)eDQ^p(oJTq z@{|e|7S8f>+;+RY#xOSf+&+DJO(X~-X%A@uUK76in^=v03AwAXZ}-Q1UzOSzn$ePZ zr5)WZ@vvN3;^fac)l)iEB(7OE8>taPTjnb$f2n8km|?wS{c^)uYbmB?7E=?BNE3zZ zOsvy};aj!x2=XT;B831}XRMHy zN-!twQAjm8T9caCwS<-Ik8j4!zMb0it(xFU8JowyjdAiN*vHtJC2W&=#7>~hQR>kv zOKtk(>a^_1fk<PT4%u`ob9$;I^^!MBDL*}J*Uav#&7ClA+l9? zplG5}v2vH5vGJP=;}M4CN$jQU+~iR`if42ci)bkaPz;IePNji&)mPBgqhHN-L8Ozw zfWSz9z1JW7c%UY-iXyt8Iw3eq#r@$#eKKBLNwe`aq+D7V4N;i$FcKf2*3Nvn^<{3V zmle6+UFbapd0REzC@=L?w@c7Mm4=L%b?Z5AuMZ*6J=0U`V-mbhK5wxvK(qpviIHh~ zJOe~bQ+S1`sV-LMTHlFOfHchNVQ_s(z^=y<&Gx;uDCeh`0`|_!*)>+o z)xw2@Pp$|zoI$(49Aa@BZJb05RWcv~wyh+;Tad~M8hXMS8 zDW+tGisKZdc;jRXZYIF|DwWu|&mmO}9U0NjRQ-F?y+}BwU_*yIi?Lh^s;EJnmiUg` zjElv8TW&zhkLygCs_#cDd8LCf_ zl~=gg@NRy#9Q`bCs=&8vCzr9e!F$B4=3p`-kvf)z9QAVbAHH(tLAfd)FZV+p#O-c5 z-?xw|id}E)u+AF8buEZ!EXcpt($pDpEh=Ml_5fg_O$rhRU8Sh@QYY zUZ)tl1+&K9HnQJG4Btq6LUp;S7>Cldxjp`Ev@f(O2AP$Js|TmINNCxCx=1cuuJ;}2 zxGAEfNIYY1_GPYfpwu0?Qlna=x4+ppf8X(w8_7K2!lH)hxC(;y;&>x05d*Vj)k}!VxcJTx0I8&t5fw5t&CK8VwzL?Yg-)#H6%> zkEnog{}?tBWLQi_?+`6368Un=&Tpm6*OVPsM({ReBv1RAzQT8eWzIX==C{8ps-GyL zy`S$};IbTJogXv?Rek*pxIZjtXfJ8h=SG-J^V zfu7T=Uq)j9-!_sq^%$?forP^YR<7PlMhi>Xq)>G*;~1Z54)`DZZ0@ z7cVh{UYalLl9(GZnG8Cjxc}*vxA*85gM*GCcXI4fXxHW@R?(%!39s)FG*e}rJOI!G z@`~PXTsE6gmkhc@lKCYcoXsLL3)Y6V^dOe9#pR93xS9SmzHg>Jb>E&ZHtS^f&vjO* zD3JZTi1QBKw1=T9F|Qk(`!)rK#JP8f@%q@>gSo&Mg#tFsok#BYcD~tqqav5XE8V#h zkE;e1c0ibE@}XX96&%gKxGwqWG58bF@WW@((0x^FH|S!fcNUN|6}m!lmJA4;NY=5p zg24pO?&5Mj!#BrEXK=4b0zIxX(evoLF+D6p%RY7`lT^%cSQ)PPmTt+LlHOZ$mGUeN zH8dY->ZE(s5Dw-eCpec)&pvnUS&ovi-xqH>6_D1CN%6JSb|0Insu18?zTFL-bbClV zvY8XnlUd$G-@d0iHnsY!%#toX>Rj=(dM}o^f5lzTG|J1}4PkQi&9TZL#f)q1LLyOY zo%Xq|-Bt-bQj+dTZUUOjWBB6c8O^aZ^TjKy_#}UmqkALj7=3~r-qsu!a>v`72pWj{cpydNs6TQTw)$_KDwP(egd}M>sYsHLo%YDS8%vUX z%f1fUI1wr#WZ#W3S;jDosf4nPeQaZt7z`t3#$b&3U32dHbALLYQ|JEP|NZ_ta~_Y( zyx-UL+Lz}uAc-i;%s3eI4y>DgY6KIEU+uMG%I*?Xq25edEy?lIj5d@lq*(KBrd976N8e(=B=wXLf4;#Vs$l&4 z;H9@;m@j(Iz-D?2Tfpw9c&7%a6l;MQY;@9gUh92@hpQ;)-dw~c z(2=?jzpRq}{4%?_934W10#qpjw-M5r!}UuQq66v2 zb&nC8Gud~iu7gbNRM=d?;*tbHu2?N_d`fzz)vxfQ;e%dP=95w9G1~3am4t)J)AMZ1 ztxs`0>E2LKSBUYm z@pO-9=)Nv|y`-+uf23)cy>3Vwc17GkLyxlbKKS6UzqN=miM3&^B3WvyeZ7lqt^*i6 zX3-!|H0S223D5OLcGDbF^pEZv^-9-|_^MO*#hY|8@t!AG&s%Va1~EoHxUhiJR@CRElgz<9Y|GMcr4{La{4FOM_FJdEyG=gQ0_+V*P_An^*&R8_$5{11sLgb2=N3Gs%%&3*cq7I2PiwrX1 zmr9r6+th|jl+ z`l?&rrzrSAq0|tyXAsKkl-h;0&1)sbu&-F16}|W9GezvSJ=hM6j3V1|1s?M?E}XzG zyi67Z99Z+cweTQ=@s0QKaq%bHTKTdHrPHBP&R%`{axd(W!X!gKG^xdf90@#cxH=#p z4yy0r%A9=44cj62BJ7TBlLLK6$p3b0^D?O67AQHdt=a^*at9AML_p z+LWO+!JM4eSKq4E_x)PF=;6a@9&afn^dv5t1SM3)q0>h2mB5HOp=XBb0dN366@m@# z7^yXrxr&Lswa4-dv7$=!(wAkIJVUuKgSWnOY7q(HL+7&&hp&;m@%o?vpt5m3$bisK zIHQ*iC2o=2c=Sq*6|%tMZDzCRp4-~wRUd@W7DdmlWRL}vV*UWZibQk$0;U{n&dDk8 zkJfDT*tdN(bj%Qmv33tWq^4zK-dYt9kumllqwGw$*O!NZEP8?3rUc&D-obO&rINr6 zwS@#v00UbltHyqVBVC?ZM^49*>U-bLPc(|It5e!0Rl%Rq*;4_h4%92$`Skp~*YGLT zB;gj+srA!IQsFWIE@7ijJ=xFOt_j)*v?XCo?tcbL2?vCi=LNN_Ap&5bXc-G@;-Xor z1b^%r9<~H~GtlbK#;Y@A(O~vsEh{-JYcWlbb-qnbKk{#JWrVu^pM4fk_@2r$dIFkB z5{>}4OB;V-+XPXeB;--TH=I;V&G;0u9Bmzmap<2lV@;tM3JX|2+$C~XmG} zbHx|?`T;I|V`h{WvK}^@IqUKJX@RW51PYt^q%yZ41eGJU zIH8>|jOdjPmTT^p{CQ8oA(zHKe2C_JtV8x+IPo9C_v22Qr}cg7IV{e)_H#Wt z@YXZoaF&~--ljR6)bGk_o>7{<)WDg4qaI|kzL^Vbgts*n0oX*Hyc52psCFw-ODy>X4R z!z!eDL^G%&IG@jMfHIqvZX7uP*)6m`d}D-Y_x|CNJ*sLBv=?4e#S?a5ZF8}SiWP`g zRz>anl%=s{qRvJIONpL0y3^xX@G+0LQRbGG9~KdY15ZS#TyU>O&=$U~3tE3lRA40( zej8IzVSiur8P;CyY+;d^DA5KgOSGxg z80JlnQw%jato-#|;ADT3*JoYCC*MaJYsVfRXfAxa(%mxEENfWidVZNUwi+O!SV3`3 z-k?RB)l4Uj65G6{APYT0XR7Q+~@dhSU z$!jB!GB!f1^R#*4pvunicbq56-dP#fP@K=ZHJ~HpGX}MR4U|!zIj?uyUEFvrJpe^u zWp6;LJsF__M~;+L>Z&yjuZ@-JgwM^S4EQfhU3jpT=~?$VwIxI}v~*I!G>B67^=nKY zQp?eOu;%k{4q@wLBEqNhQiq~2v~9pWcq0*?Hc!a0`#b-}rp;{7h)0<^0thahD(@n| zdgsHV6+yuyJy8%syN8xW`t3pV997X>3&d2NEVK++-gf$o=Ak#gix9PV#;`thqzp6{ zZBJcWRb3WEa#TA?A|T1tx#_YALQtYBjl`%hji&_9c5hcnS7R@^22;}+v#hsUw)pmH zglRlbwW_&!rdX*D=~JQe`jW=JFHE8WACEP3!aak(ed2k^DJ5?#u(y14{9xD3H-C?yqerh@v2*a1NsZs$>-(EDTWX`t_=IaWE zW!r=ivcU3>vpTj>cKmz81xR$7>pa@Vmzo|9>q$1}SN5mr58x^)eJ)O@={nCW@%Lvi zzGK<>8?3$5^>sES+{^}Q3bpsfyl}0__Kxr<#I=(ALUwhX`0&BEQP$K#_B`Zqnoo6r zqr(|RMNJj7pK;X3tFH9bQ<>-bUW$g%lq(p=RQ$SE`A1TOMSTuLq*H5kRc&*wAC_)M zOG!wKC~i?vJ=e+e{KWAObQW*h#kcG)7i{hiRt3eFz|9?>bad>?B9Tat8#^9zN154N zxJgXOj=Oa$L+a{l##eZ)akyIhELB1(y*-naf4^e(+x8F`^5UJ z-?;~C5+NmfrQc`hkO4LaRjk8Cs$-*e%KeX>UF2M6?0hC=7Jl5ODi z4`)f%`2JkfCQN6DbuirGpfg1X+V^6OnT|58Ba}wtIzN}2ysdjgX^j;KXQgkjo-?Rf zx}fG*RyVtZj{LSdx)o_kH1gY>XgXUboO%?$6q-XxtEnJ z9W(qZ{0>LdPIWT%)Zo^3ER0R2s^a3~i35CmR`Wp)QBmBcGb{6BszAU_XPO$v+>sLjB89}2y4ve{4Dvg+I4G&P8ifrAC9{Q>* zAyL>WHWaRW`AqK=T z1n-wmx!DVq*~qn#HzDM(GO&c=6Op`dvOkVAg;isy(uxGasp<0}q3~?;orG%l`mcBG zN+nx6mgmkmE0y|;yQ14?r$7C%!?npb%r<-e%*o%YOuY?Ww&R_u3-V5%a@0)>N!ULu zA$~zqsLub4yc*FT>wie+pwjh;=D2cyt@AK+NB=oh9Rk|l*h|0MKd(?i;#6U0S$oQ~ zh|=%H&^mwdQ53KVGqMc{Ok#&#Q%j3EtIDo@4U-~#_+W0RY1W3Kv<^$rcXshPN}KPNs$JuDy+-MJzooy{@RTdWtrAHu(1ujq z?@q4H;1d>sI|CpUyLg3R3j%c9zPd@yQ9pc@9*~OtzN^-<%p%II`Tmzzm43}MSO*H)ds=PDdji9`)mjJTbk%wLe`C8koXV;w8-ElJfKQsa{9 zo*RWrTYqXrLcv%p!CC~Ij6!#7HlTv)JOg+$=8+eV1?y|XwMNIlBX3D-%nrz1wVJq6 zg~+>Iw`65emwPkl+9c18y#|3sO8irlBujn?(Z&hB0|%?ZwHVM485L+hLz3s|9|kw? z(c#eq*5Sc`n^&tYAD@Tolr5Nr7DHR9{EnLPEq?v>g5=U(-Ewr8<5*Pi@@n#-_19ar z(29Ez?)PoRJT6MyuM;~3kqGgjF1<=f$gO&|+x42ql`{XuMdRv2#PpP6E-8qQDP^Se z+!0mZKjb`zT+;1D`U_%%{TIq=Y7V;ESDAa&yD~gnEjw!ML#|AzP}pO5aijaXI!1V0 zo{7P!nZ9`8PW#S>`{afh>wbFM3w`F}Hlx-!=2x5<$_7ab$Ux}=R8q?DC!6Y6}sZP9}yU-xHHvLtILhcz9C3>eC*mR|3W|d0|PB6aV_zA0DL&puGBqTsy9g zB3+e;0)%8rg>Qir6z5|*KPGRXdD&f`iI*p4jgPZNRz%HC`Bbm?NHyGb--mk=f#C6_ z4C(_N6j#HlyN0bcnMQrC`8PG#51*U>`nPXL>0eckpn#;|Q&zkqHd@j=y1XV@2Fz29 zUGX#3YHUoW|IbY-$ILnfalUNo7hmR4jcJ%KAoCwSU}P86&O>82tdvZ(GvC>0eX9Qn zC*+?>kqIaYQKm=0xBeJ`y|Gv$-wst!mzUkSYnLJZ+r4dD0}*n@mqYu;k&5+MLPM{KjXNNH(60$I-3} zKy{bj?EH%wqkUXv5HiQq8TeKi&!1}lZ|Yh09IL4CA3{&+>#=dX96>=OI*$DyEC1G& zqY>(DJ2;_-*iYo<@g{j?Brmg4SXVk#rz$Ds?OHw3DBA1zPpl2+8sQL*%VGWKa@-8J zO&{yNHa&Lez@u%Wjlh+k!_glj{@Tk zLR5td?LQ;r{U1Gk4&Dg^Dh&S)Fa`jX+=cL@#6(zNRW#_LhoO69$ zn>KrH4pvu>=ucqcxP8erkR4qjrUqh0qJTAV&1uyi!sSaW0&y?aOt)}^iwcY;ZeRJL|c*kR;($$@XL|D(<0e9$^939-Wk%9`a6(zV^@bqe|z_T%hdALQ5a5}EaGWh_(8-KE;-s^93&hNf>FTo zZ$?vH+jqMHOBgUf)*lh4RbZ47Yp3;r^qYK6+4B$5(RcjL2de*sr@@`uFOhaqFdR9| zYDX7YF6YT3P7Y{13i5%Jl#pw|q{<@(W~eU%_d3`L2RznvnubPx>`G;X((m%z6k`$vNTfJw(Gj+Vq!ZCOGLGkj#ggIL zwhG74KCYeZ|9-8%eabq1o+0oOPxEOn0ihK2`U(;}1+`804rTq2%#~mGV2&CWnMaJ* zhj{{yT2{T&{CVI#qWG&KXN&*_RH_$rc%WY}^H*;1Pl4+=qnGJENbapxXqh8J`LdY7 zPY&8tf@hGIKwnt%J$wVUhl6#WKBPq9J)m%#W0L8IxO_}~87UrqW& z1F(PaB4Tt54MYzTz&fb%59iA<7}{sRve>IsTK_C?Mi8sd2haa6f6xIYTF2a~d`AI) zR2Sq*;=vRD%O7xJgs}^q%1t-GBSEXq@80zfLc}p9kAT4l`>hM|^~KYtPiIGKE9phg zp6$-h%d7fm2O)s=*#F@%w--*leS2Oz_2MmnvQcs&0(AXd0UVaNxVYk_E!6J9{aH*W z+k*oC%PVXLz=o`&S@NV4E%BlVuyz&<{Roh7Wx>|XRA?xSoVE$mpZIL^KZ*lzB5pux zJFbr`iKO+D0Cos8mRAmj;~?QAiN5Ald$EZS71P-DHv#^uOL4LV9!G%Nv$Mr-rsoS zgBb-v_)Y`VNY!>scPxI&PziAXJ29G?nk7gkm;|2%cyN6HL^;jwAiPW$pplqf;C}Yc z-}c}6kb9f&XqlB#>|q51Fc4LK#EHwca=*&aqglh7ZU=g(%9y&ilmOOC8DRC1?dnk4 zng7$HYA=4u$~x-Wv(yOb9`S_xZv^hkV%qhm$owxNGse-sFKN@&R$^C$x-oq)^l)&+?!o3K@TSHHE_(smc`kE@dxo;-Q7HkIaC z6-;-LFk%$OY$9ZqbXfi}1pF_tDY61)qGjwkka<_FWdO5iG_@cs@6iXKh8&*|t?K-d zs$`&0va{|Z)#iZGb+E%;Rpvc<6?9e`%mdO%WrZ4^--i798JWQUM zHblq7AYJk2bi3Ry+weU^Kv12%XXWHf0Q%Sy`T~G%8{xrA*ogfGXe6VN#&zaTJh*}w z{U}eHSP>e8{rk-}> z9^nFjR@twZ(<<>vLf&`#fd-q+c~m!SdyV62D%0DRbT*ynbv-FXRoW(Y+=)WCIAZ%3CfsfF;r9P}kX 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

-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 Date: Thu, 20 Aug 2020 14:03:40 +0200 Subject: [PATCH 094/656] fix(core): check id_tokens according to base64url instead of base64 --- packages/core/src/layout/SignInPage/customProvider.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/core/src/layout/SignInPage/customProvider.tsx b/packages/core/src/layout/SignInPage/customProvider.tsx index d3a292ce87..6c47b4e623 100644 --- a/packages/core/src/layout/SignInPage/customProvider.tsx +++ b/packages/core/src/layout/SignInPage/customProvider.tsx @@ -29,7 +29,8 @@ import { InfoCard } from '../InfoCard/InfoCard'; import { ProviderComponent, ProviderLoader, SignInProvider } from './types'; import { GridItem } from './styles'; -const ID_TOKEN_REGEX = /^[a-z0-9+/]+\.[a-z0-9+/]+\.[a-z0-9+/]+$/i; +// accept base64url format according to RFC7515 (https://tools.ietf.org/html/rfc7515#section-3) +const ID_TOKEN_REGEX = /^[a-z0-9_\-]+\.[a-z0-9_\-]+\.[a-z0-9_\-]+$/i; const useFormStyles = makeStyles(theme => ({ form: { From 13908d69c2ddc24b852319c3ff8e09d06cb5ff8f Mon Sep 17 00:00:00 2001 From: Sebastian Qvarfordt Date: Thu, 20 Aug 2020 14:06:09 +0200 Subject: [PATCH 095/656] TechDocs: Access entity techdocs from service catalog (#1835) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feature(techdocs): JIT generation of techdocs * Fix linting issues * Add Techdocs tab to entity page * Added missing dep * Added missing dep * Removed duplicate dep * Better tab navigation * Update label on entity page to say docs * Fix lint issue * Move building of docs from entity to a function * feature(techdocs): JIT generation of techdocs * Fix linting issues * Add Techdocs tab to entity page * Added missing dep * Added missing dep * Removed duplicate dep * Better tab navigation * Update label on entity page to say docs * Fix lint issue * Move building of docs from entity to a function * attempt to add back react as a dep * Fixed failing test * fix(techdocs): Hopefully fixed tests * Fixed another failing test * Initial apiRef for techdocs storage * Cleaned up some code in reader * test(headertabs): add tests to HeaderTabs component * fix(headertabs): change tab mock id * fix(techdocs-generator): fix problem with macOS symlink to tmp folder * fix(lint): remove unused configApiRef * wip * Ongoing cleanups * Cleanups and fix tests * WIP cleanups * Clean up some things * Clean up some things * Added missing notice header * ts issue fixed * Add show contition to api tab Co-authored-by: Fredrik Adelöw Co-authored-by: Emma Indal --- packages/app/src/App.test.tsx | 3 + packages/app/src/apis.ts | 19 ++- .../core-api/src/apis/definitions/auth.ts | 4 +- .../implementations/auth/auth0/Auth0Auth.ts | 6 +- .../src/layout/HeaderTabs/HeaderTabs.test.tsx | 50 ++++++ packages/core/src/layout/HeaderTabs/index.tsx | 17 +- .../core/src/layout/ItemCard/ItemCard.tsx | 2 +- .../src/layout/SignInPage/auth0Provider.tsx | 3 +- .../src/providers/auth0/strategy.ts | 33 ++-- .../auth-backend/src/providers/factories.ts | 2 +- plugins/catalog/package.json | 1 + .../components/CatalogTable/CatalogTable.tsx | 1 + .../src/components/EntityPage/EntityPage.tsx | 42 +++-- .../EntityPageDocs/EntityDocsPage.tsx | 34 ++++ plugins/catalog/src/plugin.ts | 3 +- plugins/catalog/src/routes.ts | 7 +- .../RegisterComponentResultDialog.tsx | 1 + plugins/techdocs-backend/.eslintrc.js | 1 + .../documented-component/docs/sub-page.md | 1 + .../examples/documented-component/mkdocs.yml | 1 + .../techdocs-backend/src/service/router.ts | 45 ++++-- .../src/techdocs/stages/generate/helpers.ts | 10 ++ .../src/techdocs/stages/generate/techdocs.ts | 10 +- .../src/techdocs/stages/publish/local.test.ts | 9 +- .../src/techdocs/stages/publish/local.ts | 7 +- plugins/techdocs/package.json | 5 + plugins/techdocs/src/api.test.ts | 42 +++++ plugins/techdocs/src/api.ts | 70 +++++++++ plugins/techdocs/src/index.ts | 2 + plugins/techdocs/src/plugin.ts | 6 +- .../techdocs/src/reader/components/Reader.tsx | 103 +++++------- .../reader/components/TechDocsHome.test.tsx | 26 +++- .../src/reader/components/TechDocsHome.tsx | 96 +++++++----- .../src/reader/components/TechDocsPage.tsx | 39 +++++ .../components/TechDocsPageWrapper.test.tsx | 3 +- .../techdocs/src/reader/components/index.ts | 17 ++ plugins/techdocs/src/reader/index.tsx | 1 + .../reader/transformers/addBaseUrl.test.ts | 147 ++++++------------ .../src/reader/transformers/addBaseUrl.ts | 21 ++- .../reader/transformers/onCssReady.test.ts | 27 ++-- .../transformers/rewriteDocLinks.test.ts | 6 +- .../reader/transformers/rewriteDocLinks.ts | 17 +- .../techdocs/src/reader/urlFormatter.test.ts | 84 ---------- plugins/techdocs/src/reader/urlFormatter.ts | 39 ----- plugins/techdocs/src/types.ts | 21 +++ yarn.lock | 35 +++++ 46 files changed, 672 insertions(+), 447 deletions(-) create mode 100644 packages/core/src/layout/HeaderTabs/HeaderTabs.test.tsx create mode 100644 plugins/catalog/src/components/EntityPageDocs/EntityDocsPage.tsx create mode 100644 plugins/techdocs-backend/examples/documented-component/docs/sub-page.md create mode 100644 plugins/techdocs/src/api.test.ts create mode 100644 plugins/techdocs/src/api.ts create mode 100644 plugins/techdocs/src/reader/components/TechDocsPage.tsx create mode 100644 plugins/techdocs/src/reader/components/index.ts delete mode 100644 plugins/techdocs/src/reader/urlFormatter.test.ts delete mode 100644 plugins/techdocs/src/reader/urlFormatter.ts create mode 100644 plugins/techdocs/src/types.ts diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx index 26c3466ba1..ec291a752b 100644 --- a/packages/app/src/App.test.tsx +++ b/packages/app/src/App.test.tsx @@ -27,6 +27,9 @@ describe('App', () => { data: { app: { title: 'Test' }, backend: { baseUrl: 'http://localhost:7000' }, + techdocs: { + storageUrl: 'http://localhost:7000/techdocs/static/docs', + }, }, context: 'test', }, diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index 3bc0c82b31..a8e5485727 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -58,6 +58,10 @@ import { GraphQLEndpoints, } from '@backstage/plugin-graphiql'; import { scaffolderApiRef, ScaffolderApi } from '@backstage/plugin-scaffolder'; +import { + techdocsStorageApiRef, + TechDocsStorageApi, +} from '@backstage/plugin-techdocs'; import { rollbarApiRef, RollbarClient } from '@backstage/plugin-rollbar'; import { @@ -66,13 +70,17 @@ import { } from '@backstage/plugin-github-actions'; import { jenkinsApiRef, JenkinsApi } from '@backstage/plugin-jenkins'; -import { TravisCIApi, travisCIApiRef } from '@roadiehq/backstage-plugin-travis-ci'; +import { + TravisCIApi, + travisCIApiRef, +} from '@roadiehq/backstage-plugin-travis-ci'; export const apis = (config: ConfigApi) => { // eslint-disable-next-line no-console console.log(`Creating APIs for ${config.getString('app.title')}`); const backendUrl = config.getString('backend.baseUrl'); + const techdocsUrl = config.getString('techdocs.storageUrl'); const builder = ApiRegistry.builder(); @@ -138,7 +146,7 @@ export const apis = (config: ConfigApi) => { oauthRequestApi, }), ); - + builder.add( auth0AuthApiRef, Auth0Auth.create({ @@ -208,5 +216,12 @@ export const apis = (config: ConfigApi) => { }), ); + builder.add( + techdocsStorageApiRef, + new TechDocsStorageApi({ + apiOrigin: techdocsUrl, + }), + ); + return builder.build(); }; diff --git a/packages/core-api/src/apis/definitions/auth.ts b/packages/core-api/src/apis/definitions/auth.ts index 05c4ed48af..a1a408fece 100644 --- a/packages/core-api/src/apis/definitions/auth.ts +++ b/packages/core-api/src/apis/definitions/auth.ts @@ -270,7 +270,9 @@ export const gitlabAuthApiRef = createApiRef< * See https://auth0.com/docs/scopes/current/oidc-scopes * for a full list of supported scopes. */ -export const auth0AuthApiRef = createApiRef({ +export const auth0AuthApiRef = createApiRef< + OpenIdConnectApi & ProfileInfoApi & BackstageIdentityApi & SessionStateApi +>({ id: 'core.auth.auth0', description: 'Provides authentication towards Auth0 APIs', }); diff --git a/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts b/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts index 3d8a42a4cc..99529b8d2a 100644 --- a/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts +++ b/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts @@ -96,11 +96,7 @@ class Auth0Auth const sessionManager = new RefreshingAuthSessionManager({ connector, - defaultScopes: new Set([ - 'openid', - `email`, - `profile`, - ]), + defaultScopes: new Set(['openid', `email`, `profile`]), sessionScopes: (session: Auth0Session) => session.providerInfo.scopes, sessionShouldRefresh: (session: Auth0Session) => { const expiresInSec = diff --git a/packages/core/src/layout/HeaderTabs/HeaderTabs.test.tsx b/packages/core/src/layout/HeaderTabs/HeaderTabs.test.tsx new file mode 100644 index 0000000000..a007bf9113 --- /dev/null +++ b/packages/core/src/layout/HeaderTabs/HeaderTabs.test.tsx @@ -0,0 +1,50 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { render } from '@testing-library/react'; +import { wrapInTestApp } from '@backstage/test-utils'; +import { HeaderTabs } from './'; + +const mockTabs = [ + { id: 'overview', label: 'Overview' }, + { id: 'docs', label: 'Docs' }, +]; + +describe('', () => { + it('should render tabs', () => { + const rendered = render(wrapInTestApp()); + + expect(rendered.getByText('Overview')).toBeInTheDocument(); + expect(rendered.getByText('Docs')).toBeInTheDocument(); + }); + + it('should render correct selected tab', () => { + const rendered = render(wrapInTestApp()); + + expect(rendered.getByText('Docs').parentElement).toHaveAttribute( + 'aria-selected', + 'false', + ); + + rendered.getByText('Docs').click(); + + expect(rendered.getByText('Docs').parentElement).toHaveAttribute( + 'aria-selected', + 'true', + ); + }); +}); diff --git a/packages/core/src/layout/HeaderTabs/index.tsx b/packages/core/src/layout/HeaderTabs/index.tsx index 838b126569..b509cae14f 100644 --- a/packages/core/src/layout/HeaderTabs/index.tsx +++ b/packages/core/src/layout/HeaderTabs/index.tsx @@ -17,7 +17,7 @@ // TODO(blam): Remove this implementation when the Tabs are ready // This is just a temporary solution to implementing tabs for now -import React, { useState } from 'react'; +import React, { useState, useEffect } from 'react'; import { makeStyles, Tabs, Tab } from '@material-ui/core'; const useStyles = makeStyles(theme => ({ @@ -46,15 +46,24 @@ export type Tab = { export const HeaderTabs: React.FC<{ tabs: Tab[]; onChange?: (index: number) => void; -}> = ({ tabs, onChange }) => { - const [selectedTab, setSelectedTab] = useState(0); + selectedIndex?: number; +}> = ({ tabs, onChange, selectedIndex }) => { + const [selectedTab, setSelectedTab] = useState(selectedIndex ?? 0); const styles = useStyles(); const handleChange = (_: React.ChangeEvent<{}>, index: number) => { - setSelectedTab(index); + if (selectedIndex === undefined) { + setSelectedTab(index); + } if (onChange) onChange(index); }; + useEffect(() => { + if (selectedIndex !== undefined) { + setSelectedTab(selectedIndex); + } + }, [selectedIndex]); + return (

({ })); type ItemCardProps = { - description: string; + description?: string; tags?: string[]; title: string; type?: string; diff --git a/packages/core/src/layout/SignInPage/auth0Provider.tsx b/packages/core/src/layout/SignInPage/auth0Provider.tsx index cfc44ef7d3..ae4e5f8b82 100644 --- a/packages/core/src/layout/SignInPage/auth0Provider.tsx +++ b/packages/core/src/layout/SignInPage/auth0Provider.tsx @@ -78,8 +78,7 @@ const loader: ProviderLoader = async apis => { return { userId: identity.id, profile: profile!, - getIdToken: () => - auth0AuthApi.getBackstageIdentity().then(i => i!.idToken), + getIdToken: () => auth0AuthApi.getBackstageIdentity().then(i => i!.idToken), logout: async () => { await auth0AuthApi.logout(); }, diff --git a/plugins/auth-backend/src/providers/auth0/strategy.ts b/plugins/auth-backend/src/providers/auth0/strategy.ts index 4dd7440448..6ac06ec4e9 100644 --- a/plugins/auth-backend/src/providers/auth0/strategy.ts +++ b/plugins/auth-backend/src/providers/auth0/strategy.ts @@ -16,22 +16,25 @@ import OAuth2Strategy from 'passport-oauth2'; export interface Auth0StrategyOptionsWithRequest { - clientID: string; - clientSecret: string; - callbackURL: string; - domain: string; - passReqToCallback: true; + clientID: string; + clientSecret: string; + callbackURL: string; + domain: string; + passReqToCallback: true; } export default class Auth0Strategy extends OAuth2Strategy { - constructor(options: Auth0StrategyOptionsWithRequest, verify: OAuth2Strategy.VerifyFunctionWithRequest) { - const optionsWithURLs = { - ...options, - authorizationURL: `https://${options.domain}/authorize`, - tokenURL: `https://${options.domain}/oauth/token`, - userInfoURL: `https://${options.domain}/userinfo`, - apiUrl: `https://${options.domain}/api`, - } - super(optionsWithURLs, verify) - } + constructor( + options: Auth0StrategyOptionsWithRequest, + verify: OAuth2Strategy.VerifyFunctionWithRequest, + ) { + const optionsWithURLs = { + ...options, + authorizationURL: `https://${options.domain}/authorize`, + tokenURL: `https://${options.domain}/oauth/token`, + userInfoURL: `https://${options.domain}/userinfo`, + apiUrl: `https://${options.domain}/api`, + }; + super(optionsWithURLs, verify); + } } diff --git a/plugins/auth-backend/src/providers/factories.ts b/plugins/auth-backend/src/providers/factories.ts index 8443a7928d..bae5bd5d43 100644 --- a/plugins/auth-backend/src/providers/factories.ts +++ b/plugins/auth-backend/src/providers/factories.ts @@ -23,7 +23,7 @@ import { createGoogleProvider } from './google'; import { createOAuth2Provider } from './oauth2'; import { createOktaProvider } from './okta'; import { createSamlProvider } from './saml'; -import { createAuth0Provider } from './auth0' +import { createAuth0Provider } from './auth0'; import { AuthProviderConfig, AuthProviderFactory, diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 22085d5184..44b3a7b7ee 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -28,6 +28,7 @@ "@backstage/plugin-jenkins": "^0.1.1-alpha.18", "@backstage/plugin-scaffolder": "^0.1.1-alpha.18", "@backstage/plugin-sentry": "^0.1.1-alpha.18", + "@backstage/plugin-techdocs": "^0.1.1-alpha.18", "@backstage/theme": "^0.1.1-alpha.18", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", diff --git a/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx b/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx index 00dacdc0fe..eed8998fb7 100644 --- a/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx +++ b/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx @@ -45,6 +45,7 @@ const columns: TableColumn[] = [ .filter(Boolean) .join(':'), kind: entity.kind, + selectedTabId: 'overview', })} > {entity.metadata.name} diff --git a/plugins/catalog/src/components/EntityPage/EntityPage.tsx b/plugins/catalog/src/components/EntityPage/EntityPage.tsx index 8a375b8d6e..a36ac32a07 100644 --- a/plugins/catalog/src/components/EntityPage/EntityPage.tsx +++ b/plugins/catalog/src/components/EntityPage/EntityPage.tsx @@ -20,12 +20,12 @@ import { errorApiRef, Header, HeaderLabel, - HeaderTabs, Page, pageTheme, PageTheme, Progress, useApi, + HeaderTabs, } from '@backstage/core'; import { Box } from '@material-ui/core'; import { Alert } from '@material-ui/lab'; @@ -34,6 +34,7 @@ import { useNavigate, useParams } from 'react-router-dom'; import { useAsync } from 'react-use'; import { catalogApiRef } from '../..'; import { EntityContextMenu } from '../EntityContextMenu/EntityContextMenu'; +import { EntityPageDocs } from '../EntityPageDocs/EntityDocsPage'; import { EntityPageApi } from '../EntityPageApi/EntityPageApi'; import { EntityPageOverview } from '../EntityPageOverview/EntityPageOverview'; import { FavouriteEntity } from '../FavouriteEntity/FavouriteEntity'; @@ -75,11 +76,17 @@ const EntityPageTitle: FC<{ title: string; entity: Entity | undefined }> = ({ ); export const EntityPage: FC<{}> = () => { - const { optionalNamespaceAndName, kind } = useParams() as { + const { + optionalNamespaceAndName, + kind, + selectedTabId = 'overview', + } = useParams() as { optionalNamespaceAndName: string; kind: string; + selectedTabId: string; }; const navigate = useNavigate(); + const [name, namespace] = optionalNamespaceAndName.split(':').reverse(); const errorApi = useApi(errorApiRef); @@ -100,8 +107,6 @@ export const EntityPage: FC<{}> = () => { } }, [errorApi, navigate, error, loading, entity]); - const [selectedTabId, setSelectedTabId] = useState(''); - if (!name) { navigate('/catalog'); return null; @@ -132,6 +137,7 @@ export const EntityPage: FC<{}> = () => { { id: 'api', label: 'API', + show: (e: Entity) => !!e?.spec?.implementsApis, content: (e: Entity) => , }, { @@ -142,6 +148,13 @@ export const EntityPage: FC<{}> = () => { id: 'quality', label: 'Quality', }, + { + id: 'docs', + label: 'Docs', + show: (e: Entity) => + !!e.metadata.annotations?.['backstage.io/techdocs-ref'], + content: (e: Entity) => , + }, ]; const { headerTitle, headerType } = headerProps( @@ -151,7 +164,11 @@ export const EntityPage: FC<{}> = () => { entity, ); - const selectedTab = tabs.find(tab => tab.id === selectedTabId) || tabs[0]; + const selectedTab = tabs.find(tab => tab.id === selectedTabId); + + const filteredHeaderTabs = entity + ? tabs.filter(tab => (tab.show ? tab.show(entity) : true)) + : []; return ( @@ -186,17 +203,18 @@ export const EntityPage: FC<{}> = () => { {entity && ( <> { - setSelectedTabId(tabs[idx].id); + navigate( + `/catalog/${kind}/${optionalNamespaceAndName}/${tabs[idx].id}`, + ); }} + selectedIndex={tabs.findIndex(tab => tab.id === selectedTabId)} /> - - {selectedTab && selectedTab.content - ? selectedTab.content(entity) - : null} - + {selectedTab && selectedTab.content + ? selectedTab.content(entity) + : null} { + return ( + + + + ); +}; diff --git a/plugins/catalog/src/plugin.ts b/plugins/catalog/src/plugin.ts index 8f4ac80f48..483e1f8464 100644 --- a/plugins/catalog/src/plugin.ts +++ b/plugins/catalog/src/plugin.ts @@ -17,12 +17,13 @@ import { createPlugin } from '@backstage/core'; import { CatalogPage } from './components/CatalogPage/CatalogPage'; import { EntityPage } from './components/EntityPage/EntityPage'; -import { entityRoute, rootRoute } from './routes'; +import { entityRoute, rootRoute, entityRouteDefault } from './routes'; export const plugin = createPlugin({ id: 'catalog', register({ router }) { router.addRoute(rootRoute, CatalogPage); router.addRoute(entityRoute, EntityPage); + router.addRoute(entityRouteDefault, EntityPage); }, }); diff --git a/plugins/catalog/src/routes.ts b/plugins/catalog/src/routes.ts index 69c4e651b4..a8ff8df685 100644 --- a/plugins/catalog/src/routes.ts +++ b/plugins/catalog/src/routes.ts @@ -25,6 +25,11 @@ export const rootRoute = createRouteRef({ }); export const entityRoute = createRouteRef({ icon: NoIcon, - path: '/catalog/:kind/:optionalNamespaceAndName/', + path: '/catalog/:kind/:optionalNamespaceAndName/:selectedTabId/*', + title: 'Entity', +}); +export const entityRouteDefault = createRouteRef({ + icon: NoIcon, + path: '/catalog/:kind/:optionalNamespaceAndName', title: 'Entity', }); diff --git a/plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.tsx b/plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.tsx index 68b06d1751..15d0b9ced6 100644 --- a/plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.tsx +++ b/plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.tsx @@ -63,6 +63,7 @@ export const RegisterComponentResultDialog: FC = ({ .filter(Boolean) .join(':'), kind: entity.kind, + selectedTabId: 'overview', }); return ( diff --git a/plugins/techdocs-backend/.eslintrc.js b/plugins/techdocs-backend/.eslintrc.js index 16a033dbc6..595853b48b 100644 --- a/plugins/techdocs-backend/.eslintrc.js +++ b/plugins/techdocs-backend/.eslintrc.js @@ -1,3 +1,4 @@ module.exports = { extends: [require.resolve('@backstage/cli/config/eslint.backend')], + ignorePatterns: ['static/**'], }; diff --git a/plugins/techdocs-backend/examples/documented-component/docs/sub-page.md b/plugins/techdocs-backend/examples/documented-component/docs/sub-page.md new file mode 100644 index 0000000000..bbd98558e0 --- /dev/null +++ b/plugins/techdocs-backend/examples/documented-component/docs/sub-page.md @@ -0,0 +1 @@ +# Another page in our documentation diff --git a/plugins/techdocs-backend/examples/documented-component/mkdocs.yml b/plugins/techdocs-backend/examples/documented-component/mkdocs.yml index 6a3f85d020..3b48e8edff 100644 --- a/plugins/techdocs-backend/examples/documented-component/mkdocs.yml +++ b/plugins/techdocs-backend/examples/documented-component/mkdocs.yml @@ -2,6 +2,7 @@ site_name: 'example-docs' nav: - Home: index.md + - SubPage: sub-page.md plugins: - techdocs-core diff --git a/plugins/techdocs-backend/src/service/router.ts b/plugins/techdocs-backend/src/service/router.ts index 874ab7c89c..e11e3bb57f 100644 --- a/plugins/techdocs-backend/src/service/router.ts +++ b/plugins/techdocs-backend/src/service/router.ts @@ -48,6 +48,21 @@ export async function createRouter({ }: RouterOptions): Promise { const router = Router(); + const buildDocsForEntity = async (entity: Entity) => { + const preparer = preparers.get(entity); + const generator = generators.get(entity); + + const { resultDir } = await generator.run({ + directory: await preparer.prepare(entity), + dockerClient, + }); + + await publisher.publish({ + entity, + directory: resultDir, + }); + }; + router.get('/', async (_, res) => { res.status(200).send('Hello TechDocs Backend'); }); @@ -64,18 +79,7 @@ export async function createRouter({ ); entitiesWithDocs.forEach(async entity => { - const preparer = preparers.get(entity); - const generator = generators.get(entity); - - const { resultDir } = await generator.run({ - directory: await preparer.prepare(entity), - dockerClient, - }); - - publisher.publish({ - entity, - directory: resultDir, - }); + await buildDocsForEntity(entity); }); res.send('Successfully generated documentation'); @@ -86,6 +90,23 @@ export async function createRouter({ '/static/docs/', express.static(path.resolve(__dirname, `../../static/docs`)), ); + router.use( + '/static/docs/:kind/:namespace/:name', + async (req, res, next) => { + const baseUrl = config.getString('backend.baseUrl'); + const { kind, namespace, name } = req.params; + + const entityResponse = await fetch( + `${baseUrl}/catalog/entities/by-name/${kind}/${namespace}/${name}`, + ); + if (!entityResponse.ok) next(); + const entity = (await entityResponse.json()) as Entity; + + await buildDocsForEntity(entity); + + res.redirect(req.originalUrl); + }, + ); } return router; diff --git a/plugins/techdocs-backend/src/techdocs/stages/generate/helpers.ts b/plugins/techdocs-backend/src/techdocs/stages/generate/helpers.ts index 7dc4403977..88667f9903 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/generate/helpers.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/generate/helpers.ts @@ -47,6 +47,16 @@ export async function runDockerContainer({ dockerClient, createOptions, }: RunDockerContainerOptions) { + await new Promise((resolve, reject) => { + dockerClient.pull(imageName, {}, (err, stream) => { + if (err) return reject(err); + stream.pipe(logStream, { end: false }); + stream.on('end', () => resolve()); + stream.on('error', (error: Error) => reject(error)); + return undefined; + }); + }); + const [{ Error: error, StatusCode: statusCode }] = await dockerClient.run( imageName, args, diff --git a/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts b/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts index d6650fb744..32b811af78 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts @@ -19,7 +19,7 @@ import { GeneratorRunResult, } from './types'; import { runDockerContainer } from './helpers'; -import fs from 'fs'; +import fs from 'fs-extra'; import path from 'path'; import os from 'os'; @@ -29,7 +29,12 @@ export class TechdocsGenerator implements GeneratorBase { logStream, dockerClient, }: GeneratorRunOptions): Promise { - const resultDir = fs.mkdtempSync(path.join(os.tmpdir(), `techdocs-tmp-`)); + const tmpdirPath = os.tmpdir(); + // Fixes a problem with macOS returning a path that is a symlink + const tmpdirResolvedPath = fs.realpathSync(tmpdirPath); + const resultDir = fs.mkdtempSync( + path.join(tmpdirResolvedPath, 'techdocs-tmp-'), + ); await runDockerContainer({ imageName: 'spotify/techdocs', @@ -43,6 +48,7 @@ export class TechdocsGenerator implements GeneratorBase { console.log( `[TechDocs]: Successfully generated docs from ${directory} into ${resultDir}`, ); + return { resultDir }; } } diff --git a/plugins/techdocs-backend/src/techdocs/stages/publish/local.test.ts b/plugins/techdocs-backend/src/techdocs/stages/publish/local.test.ts index b5a96e4feb..1ed8be3898 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/publish/local.test.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/publish/local.test.ts @@ -48,8 +48,13 @@ describe('local publisher', () => { `../../../../static/docs/${mockEntity.metadata.name}`, ); - expect(fs.existsSync(publishDir)).toBeTruthy(); - expect(fs.existsSync(path.join(publishDir, '/mock-file'))).toBeTruthy(); + const resultDir = path.resolve( + __dirname, + `../../../../static/docs/${mockEntity.kind}/default/${mockEntity.metadata.name}`, + ); + + expect(fs.existsSync(resultDir)).toBeTruthy(); + expect(fs.existsSync(path.join(resultDir, '/mock-file'))).toBeTruthy(); fs.removeSync(publishDir); fs.removeSync(tempDir); diff --git a/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts b/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts index 227ba445ae..73a7d5a758 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts @@ -30,9 +30,14 @@ export class LocalPublish implements PublisherBase { remoteUrl: string; }> | { remoteUrl: string } { + const entityNamespace = entity.metadata.namespace ?? 'default'; + const publishDir = path.resolve( __dirname, - `../../../../static/docs/${entity.metadata.name}`, + '../../../../static/docs/', + entity.kind, + entityNamespace, + entity.metadata.name ); if (!fs.existsSync(publishDir)) { diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index a1b7ddb589..03f1d6053b 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -22,12 +22,16 @@ "clean": "backstage-cli clean" }, "dependencies": { + "@backstage/catalog-model": "^0.1.1-alpha.18", "@backstage/core": "^0.1.1-alpha.18", + "@backstage/core-api": "^0.1.1-alpha.18", + "@backstage/plugin-catalog": "^0.1.1-alpha.18", "@backstage/test-utils": "^0.1.1-alpha.18", "@backstage/theme": "^0.1.1-alpha.18", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", + "@types/react": "^16.9", "react": "^16.13.1", "react-dom": "^16.13.1", "react-router": "6.0.0-beta.0", @@ -43,6 +47,7 @@ "@testing-library/user-event": "^12.0.7", "@types/jest": "^26.0.7", "@types/node": "^12.0.0", + "canvas": "^2.6.1", "jest-fetch-mock": "^3.0.3" }, "files": [ diff --git a/plugins/techdocs/src/api.test.ts b/plugins/techdocs/src/api.test.ts new file mode 100644 index 0000000000..0ab05d5ecd --- /dev/null +++ b/plugins/techdocs/src/api.test.ts @@ -0,0 +1,42 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { TechDocsStorageApi } from './api'; + +const DOC_STORAGE_URL = 'https://example-storage.com'; + +const mockEntity = { + kind: 'Component', + namespace: 'default', + name: 'test-component', +}; + +describe('TechDocsStorageApi', () => { + it('should return correct base url based on defined storage', () => { + const storageApi = new TechDocsStorageApi({ apiOrigin: DOC_STORAGE_URL }); + + expect(storageApi.getBaseUrl('test.js', mockEntity, '')).toEqual( + `${DOC_STORAGE_URL}/${mockEntity.kind}/${mockEntity.namespace}/${mockEntity.name}/test.js`, + ); + }); + + it('should return base url with correct entity structure', () => { + const storageApi = new TechDocsStorageApi({ apiOrigin: DOC_STORAGE_URL }); + + expect(storageApi.getBaseUrl('test/', mockEntity, '')).toEqual( + `${DOC_STORAGE_URL}/${mockEntity.kind}/${mockEntity.namespace}/${mockEntity.name}/test/`, + ); + }); +}); diff --git a/plugins/techdocs/src/api.ts b/plugins/techdocs/src/api.ts new file mode 100644 index 0000000000..951ad5e16c --- /dev/null +++ b/plugins/techdocs/src/api.ts @@ -0,0 +1,70 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { createApiRef } from '@backstage/core'; + +import { ParsedEntityId } from './types'; + +export const techdocsStorageApiRef = createApiRef({ + id: 'plugin.techdocs.storageservice', + description: 'Used to make requests towards the techdocs storage', +}); + +export interface TechDocsStorage { + getEntityDocs(entityId: ParsedEntityId, path: string): Promise; + getBaseUrl( + oldBaseUrl: string, + entityId: ParsedEntityId, + path: string, + ): string; +} + +export class TechDocsStorageApi implements TechDocsStorage { + public apiOrigin: string; + + constructor({ apiOrigin }: { apiOrigin: string }) { + this.apiOrigin = apiOrigin; + } + + async getEntityDocs(entityId: ParsedEntityId, path: string) { + const { kind, namespace, name } = entityId; + + const url = `${this.apiOrigin}/${kind}/${namespace ? namespace : 'default'}/${name}/${path}`; + + const request = await fetch( + `${url.endsWith('/') ? url : `${url}/`}index.html`, + ); + + if (request.status === 404) { + throw new Error('Page not found'); + } + + return request.text(); + } + + getBaseUrl( + oldBaseUrl: string, + entityId: ParsedEntityId, + path: string, + ): string { + const { kind, namespace, name } = entityId; + + return new URL( + oldBaseUrl, + `${this.apiOrigin}/${kind}/${namespace ? namespace : 'default'}/${name}/${path}`, + ).toString(); + } +} diff --git a/plugins/techdocs/src/index.ts b/plugins/techdocs/src/index.ts index 3a0a0fe2d3..2a412d1b20 100644 --- a/plugins/techdocs/src/index.ts +++ b/plugins/techdocs/src/index.ts @@ -15,3 +15,5 @@ */ export { plugin } from './plugin'; +export * from './reader'; +export * from './api'; diff --git a/plugins/techdocs/src/plugin.ts b/plugins/techdocs/src/plugin.ts index a96f7e5502..9b09544427 100644 --- a/plugins/techdocs/src/plugin.ts +++ b/plugins/techdocs/src/plugin.ts @@ -31,7 +31,7 @@ import { createPlugin, createRouteRef } from '@backstage/core'; import { TechDocsHome } from './reader/components/TechDocsHome'; -import { Reader } from './reader/components/Reader'; +import { TechDocsPage } from './reader/components/TechDocsPage'; export const rootRouteRef = createRouteRef({ path: '/docs', @@ -39,7 +39,7 @@ export const rootRouteRef = createRouteRef({ }); export const rootDocsRouteRef = createRouteRef({ - path: '/docs/:componentId/*', + path: '/docs/:entityId/*', title: 'Docs', }); @@ -47,6 +47,6 @@ export const plugin = createPlugin({ id: 'techdocs', register({ router }) { router.addRoute(rootRouteRef, TechDocsHome); - router.addRoute(rootDocsRouteRef, Reader); + router.addRoute(rootDocsRouteRef, TechDocsPage); }, }); diff --git a/plugins/techdocs/src/reader/components/Reader.tsx b/plugins/techdocs/src/reader/components/Reader.tsx index 8e11df428e..8e1e36595a 100644 --- a/plugins/techdocs/src/reader/components/Reader.tsx +++ b/plugins/techdocs/src/reader/components/Reader.tsx @@ -15,12 +15,12 @@ */ import React from 'react'; -import { useApi, configApiRef } from '@backstage/core'; +import { useApi } from '@backstage/core'; import { useShadowDom } from '..'; import { useAsync } from 'react-use'; -import { AsyncState } from 'react-use/lib/useAsync'; - -import { useLocation, useParams, useNavigate } from 'react-router-dom'; +import { techdocsStorageApiRef } from '../../api'; +import { useParams, useNavigate } from 'react-router-dom'; +import { ParsedEntityId } from '../../types'; import transformer, { addBaseUrl, @@ -31,76 +31,35 @@ import transformer, { onCssReady, sanitizeDOM, } from '../transformers'; -import URLFormatter from '../urlFormatter'; import { TechDocsNotFound } from './TechDocsNotFound'; -import { TechDocsPageWrapper } from './TechDocsPageWrapper'; -const useFetch = (url: string): AsyncState => { - const state = useAsync(async () => { - const request = await fetch(url); - if (request.status === 404) { - return [request.url, new Error('Page not found')]; - } - const response = await request.text(); - return [request.url, response]; - }, [url]); - - const [fetchedUrl, fetchedValue] = state.value ?? []; - - if (url !== fetchedUrl) { - // Fixes a race condition between two pages - return { loading: true }; - } - - return Object.assign(state, fetchedValue ? { value: fetchedValue } : {}); +type Props = { + entityId: ParsedEntityId; }; -const useEnforcedTrailingSlash = (): void => { - React.useEffect(() => { - const actualUrl = window.location.href; - const expectedUrl = new URLFormatter(window.location.href).formatBaseURL(); +export const Reader = ({ entityId }: Props) => { + const { kind, namespace, name } = entityId; + const { '*': path } = useParams(); - if (actualUrl !== expectedUrl) { - window.history.replaceState({}, document.title, expectedUrl); - } - }, []); -}; - -export const Reader = () => { - useEnforcedTrailingSlash(); - - const docStorageUrl = - useApi(configApiRef).getOptionalString('techdocs.storageUrl') ?? - 'https://techdocs-mock-sites.storage.googleapis.com'; - - const location = useLocation(); - const { componentId, '*': path } = useParams(); + const techdocsStorageApi = useApi(techdocsStorageApiRef); const [shadowDomRef, shadowRoot] = useShadowDom(); const navigate = useNavigate(); - const normalizedUrl = new URLFormatter( - `${docStorageUrl}${location.pathname.replace('/docs', '')}`, - ).formatBaseURL(); - const state = useFetch(`${normalizedUrl}index.html`); + + const { value, loading, error } = useAsync(async () => { + return techdocsStorageApi.getEntityDocs({ kind, namespace, name }, path); + }, [techdocsStorageApi, kind, namespace, name, path]); React.useEffect(() => { - if (!shadowRoot) { - return; // Shadow DOM isn't ready - } - - if (state.loading) { - return; // Page isn't ready - } - - if (state.value instanceof Error) { - return; // Docs not found + if (!shadowRoot || loading || error) { + return; // Shadow DOM isn't ready / It's not ready / Docs was not found } // Pre-render - const transformedElement = transformer(state.value as string, [ + const transformedElement = transformer(value as string, [ sanitizeDOM(), addBaseUrl({ - docStorageUrl, - componentId, + techdocsStorageApi, + entityId: entityId, path, }), rewriteDocLinks(), @@ -145,7 +104,7 @@ export const Reader = () => { }, }), onCssReady({ - docStorageUrl, + docStorageUrl: techdocsStorageApi.apiOrigin, onLoading: (dom: Element) => { (dom as HTMLElement).style.setProperty('opacity', '0'); }, @@ -154,15 +113,23 @@ export const Reader = () => { }, }), ]); - }, [componentId, path, shadowRoot, state]); // eslint-disable-line react-hooks/exhaustive-deps + }, [ + name, + path, + shadowRoot, + value, + error, + loading, + namespace, + kind, + entityId, + navigate, + techdocsStorageApi, + ]); - if (state.value instanceof Error) { + if (error) { return ; } - return ( - - } + /> + tabbed-test-content-2
- - ); + return
; }; diff --git a/plugins/techdocs/src/reader/components/TechDocsHome.test.tsx b/plugins/techdocs/src/reader/components/TechDocsHome.test.tsx index dd31e6a318..7754f227fc 100644 --- a/plugins/techdocs/src/reader/components/TechDocsHome.test.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsHome.test.tsx @@ -17,20 +17,34 @@ import { TechDocsHome } from './TechDocsHome'; import React from 'react'; import { render } from '@testing-library/react'; import { wrapInTestApp } from '@backstage/test-utils'; +import { ApiRegistry, ApiProvider } from '@backstage/core-api'; + +import { catalogApiRef, CatalogApi } from '@backstage/plugin-catalog'; +import { Entity } from '@backstage/catalog-model'; describe('TechDocs Home', () => { - it('should render a TechDocs home page', () => { - const { getByTestId, queryByText } = render( - wrapInTestApp(), + const catalogApi: Partial = { + getEntities: () => Promise.resolve([] as Entity[]), + }; + + const apiRegistry = ApiRegistry.from([[catalogApiRef, catalogApi]]); + + it('should render a TechDocs home page', async () => { + const { findByTestId, findByText } = render( + wrapInTestApp( + + + , + ), ); // Header - expect(queryByText('Documentation')).toBeInTheDocument(); + expect(await findByText('Documentation')).toBeInTheDocument(); expect( - queryByText(/Documentation available in Backstage/i), + await findByText(/Documentation available in Backstage/i), ).toBeInTheDocument(); // Explore Content - expect(getByTestId('docs-explore')).toBeDefined(); + expect(await findByTestId('docs-explore')).toBeDefined(); }); }); diff --git a/plugins/techdocs/src/reader/components/TechDocsHome.tsx b/plugins/techdocs/src/reader/components/TechDocsHome.tsx index f8f1e89b62..17b9fd36f7 100644 --- a/plugins/techdocs/src/reader/components/TechDocsHome.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsHome.tsx @@ -15,59 +15,71 @@ */ import React from 'react'; +import { useAsync } from 'react-use'; import { useNavigate } from 'react-router-dom'; import { Grid } from '@material-ui/core'; -import { ItemCard } from '@backstage/core'; +import { ItemCard, Progress, useApi } from '@backstage/core'; import { TechDocsPageWrapper } from './TechDocsPageWrapper'; +import { catalogApiRef } from '@backstage/plugin-catalog'; -type DocumentationSite = { - title: string; - description: string; - tags: Array; - path: string; - btnLabel: string; -}; - -const documentationSites: Array = [ - { - title: 'MkDocs', - description: - "MkDocs is a fast, simple and downright gorgeous static site generator that's geared towards building project documentation. ", - tags: ['Developer Tool'], - path: '/docs/mkdocs', - btnLabel: 'Read Docs', - }, - { - title: 'Backstage Docs', - description: 'Main documentation for Backstage features and platform APIs.', - tags: ['Service'], - path: '/docs/backstage', - btnLabel: 'Read Docs', - }, -]; export const TechDocsHome = () => { + const catalogApi = useApi(catalogApiRef); const navigate = useNavigate(); - return ( - <> + const { value, loading, error } = useAsync(async () => { + const entities = await catalogApi.getEntities(); + return entities.filter(entity => { + return !!entity.metadata.annotations?.['backstage.io/techdocs-ref']; + }); + }); + + if (loading) { + return ( - - {documentationSites.map((site: DocumentationSite, index: number) => ( - - navigate(site.path)} - tags={site.tags} - title={site.title} - label={site.btnLabel} - description={site.description} - /> - - ))} - + - + ); + } + + if (error) { + return ( + +

{error.message}

+
+ ); + } + + return ( + + + {value?.length + ? value.map((entity, index: number) => ( + + + navigate( + `/docs/${entity.kind}:${ + entity.metadata.namespace ?? '' + }:${entity.metadata.name}`, + ) + } + title={entity.metadata.name} + label="Read Docs" + description={entity.metadata.description} + /> + + )) + : null} + + ); }; diff --git a/plugins/techdocs/src/reader/components/TechDocsPage.tsx b/plugins/techdocs/src/reader/components/TechDocsPage.tsx new file mode 100644 index 0000000000..1328d13ee9 --- /dev/null +++ b/plugins/techdocs/src/reader/components/TechDocsPage.tsx @@ -0,0 +1,39 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { useParams } from 'react-router-dom'; + +import { TechDocsPageWrapper } from './TechDocsPageWrapper'; +import { Reader } from './Reader'; + +export const TechDocsPage = () => { + const { entityId } = useParams(); + + const [kind, namespace, name] = entityId.split(':'); + + return ( + + + + ); +}; diff --git a/plugins/techdocs/src/reader/components/TechDocsPageWrapper.test.tsx b/plugins/techdocs/src/reader/components/TechDocsPageWrapper.test.tsx index d4cc49c919..5265492fb3 100644 --- a/plugins/techdocs/src/reader/components/TechDocsPageWrapper.test.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsPageWrapper.test.tsx @@ -14,7 +14,6 @@ * limitations under the License. */ import { TechDocsPageWrapper } from './TechDocsPageWrapper'; -import { TechDocsHome } from './TechDocsHome'; import React from 'react'; import { render } from '@testing-library/react'; import { wrapInTestApp } from '@backstage/test-utils'; @@ -24,7 +23,7 @@ describe('TechDocs Page Wrapper', () => { const { queryByText } = render( wrapInTestApp( - + Test , ), ); diff --git a/plugins/techdocs/src/reader/components/index.ts b/plugins/techdocs/src/reader/components/index.ts new file mode 100644 index 0000000000..b14a6c5b84 --- /dev/null +++ b/plugins/techdocs/src/reader/components/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 * from './Reader'; diff --git a/plugins/techdocs/src/reader/index.tsx b/plugins/techdocs/src/reader/index.tsx index 72b51bd0dc..a3ca8f394b 100644 --- a/plugins/techdocs/src/reader/index.tsx +++ b/plugins/techdocs/src/reader/index.tsx @@ -15,3 +15,4 @@ */ export * from './hooks'; +export * from './components'; diff --git a/plugins/techdocs/src/reader/transformers/addBaseUrl.test.ts b/plugins/techdocs/src/reader/transformers/addBaseUrl.test.ts index ce903c5d2f..728c39826d 100644 --- a/plugins/techdocs/src/reader/transformers/addBaseUrl.test.ts +++ b/plugins/techdocs/src/reader/transformers/addBaseUrl.test.ts @@ -14,124 +14,65 @@ * limitations under the License. */ -import { createTestShadowDom, FIXTURES, getSample } from '../../test-utils'; +import { createTestShadowDom } from '../../test-utils'; import { addBaseUrl } from '../transformers'; +import { TechDocsStorage } from '../../api'; const DOC_STORAGE_URL = 'https://example-host.storage.googleapis.com'; +const techdocsStorageApi: TechDocsStorage = { + getBaseUrl: jest.fn(() => DOC_STORAGE_URL), + getEntityDocs: () => new Promise(resolve => resolve('yes!')), +}; + +const fixture = ` + + + + + + + + + +`; + +const mockEntityId = { + kind: '', + namespace: '', + name: '', +}; + describe('addBaseUrl', () => { it('contains relative paths', () => { - const shadowDom = createTestShadowDom(FIXTURES.FIXTURE_STANDARD_PAGE); - - expect(getSample(shadowDom, 'img', 'src')).toEqual([ - 'img/win-py-install.png', - 'img/initial-layout.png', - ]); - expect(getSample(shadowDom, 'link', 'href')).toEqual([ - 'https://www.mkdocs.org/', - 'assets/images/favicon.png', - ]); - expect(getSample(shadowDom, 'script', 'src')).toEqual([ - 'https://www.google-analytics.com/analytics.js', - 'assets/javascripts/vendor.d710d30a.min.js', - ]); - }); - - it('contains transformed absolute paths', () => { - const shadowDom = createTestShadowDom(FIXTURES.FIXTURE_STANDARD_PAGE, { + createTestShadowDom(fixture, { preTransformers: [ addBaseUrl({ - docStorageUrl: DOC_STORAGE_URL, - componentId: 'example-docs', + techdocsStorageApi, + entityId: mockEntityId, path: '', }), ], postTransformers: [], }); - expect(getSample(shadowDom, 'img', 'src')).toEqual([ - 'https://example-host.storage.googleapis.com/example-docs/img/win-py-install.png', - 'https://example-host.storage.googleapis.com/example-docs/img/initial-layout.png', - ]); - expect(getSample(shadowDom, 'link', 'href')).toEqual([ - 'https://www.mkdocs.org/', - 'https://example-host.storage.googleapis.com/example-docs/assets/images/favicon.png', - ]); - expect(getSample(shadowDom, 'script', 'src')).toEqual([ - 'https://www.google-analytics.com/analytics.js', - 'https://example-host.storage.googleapis.com/example-docs/assets/javascripts/vendor.d710d30a.min.js', - ]); - }); - - it('includes path option without slash', () => { - const shadowDom = createTestShadowDom( - ` - - - - - - - `, - { - preTransformers: [ - addBaseUrl({ - docStorageUrl: DOC_STORAGE_URL, - componentId: 'example-docs', - path: 'examplepath', - }), - ], - postTransformers: [], - }, + expect(techdocsStorageApi.getBaseUrl).toHaveBeenNthCalledWith( + 1, + 'test.jpg', + mockEntityId, + '', ); - - expect(getSample(shadowDom, 'img', 'src')).toEqual([ - 'https://example-host.storage.googleapis.com/example-docs/img/win-py-install.png', - 'https://example-host.storage.googleapis.com/example-docs/img/initial-layout.png', - ]); - expect(getSample(shadowDom, 'link', 'href')).toEqual([ - 'https://www.mkdocs.org/', - 'https://example-host.storage.googleapis.com/example-docs/assets/images/favicon.png', - ]); - expect(getSample(shadowDom, 'script', 'src')).toEqual([ - 'https://www.google-analytics.com/analytics.js', - 'https://example-host.storage.googleapis.com/example-docs/assets/javascripts/vendor.d710d30a.min.js', - ]); - }); - - it('includes path option with slash', () => { - const shadowDom = createTestShadowDom( - ` - - - - - - - `, - { - preTransformers: [ - addBaseUrl({ - docStorageUrl: DOC_STORAGE_URL, - componentId: 'example-docs', - path: 'examplepath/', - }), - ], - postTransformers: [], - }, + expect(techdocsStorageApi.getBaseUrl).toHaveBeenNthCalledWith( + 2, + 'script.js', + mockEntityId, + '', + ); + expect(techdocsStorageApi.getBaseUrl).toHaveBeenNthCalledWith( + 3, + 'astyle.css', + mockEntityId, + '', ); - - expect(getSample(shadowDom, 'img', 'src')).toEqual([ - 'https://example-host.storage.googleapis.com/example-docs/img/win-py-install.png', - 'https://example-host.storage.googleapis.com/example-docs/img/initial-layout.png', - ]); - expect(getSample(shadowDom, 'link', 'href')).toEqual([ - 'https://www.mkdocs.org/', - 'https://example-host.storage.googleapis.com/example-docs/assets/images/favicon.png', - ]); - expect(getSample(shadowDom, 'script', 'src')).toEqual([ - 'https://www.google-analytics.com/analytics.js', - 'https://example-host.storage.googleapis.com/example-docs/assets/javascripts/vendor.d710d30a.min.js', - ]); }); }); diff --git a/plugins/techdocs/src/reader/transformers/addBaseUrl.ts b/plugins/techdocs/src/reader/transformers/addBaseUrl.ts index 42ed531aea..7346ca7ce2 100644 --- a/plugins/techdocs/src/reader/transformers/addBaseUrl.ts +++ b/plugins/techdocs/src/reader/transformers/addBaseUrl.ts @@ -14,18 +14,19 @@ * limitations under the License. */ -import URLFormatter from '../urlFormatter'; import type { Transformer } from './index'; +import { TechDocsStorage } from '../../api'; +import { ParsedEntityId } from '../../types'; type AddBaseUrlOptions = { - docStorageUrl: string; - componentId: string; + techdocsStorageApi: TechDocsStorage; + entityId: ParsedEntityId; path: string; }; export const addBaseUrl = ({ - docStorageUrl, - componentId, + techdocsStorageApi, + entityId, path, }: AddBaseUrlOptions): Transformer => { return dom => { @@ -36,15 +37,11 @@ export const addBaseUrl = ({ Array.from(list) .filter(elem => !!elem.getAttribute(attributeName)) .forEach((elem: T) => { - const urlFormatter = new URLFormatter( - path.length < 1 || path.endsWith('/') - ? `${docStorageUrl}/${componentId}/${path}` - : `${docStorageUrl}/${componentId}/${path}/`, - ); - + const elemAttribute = elem.getAttribute(attributeName); + if (!elemAttribute) return; elem.setAttribute( attributeName, - urlFormatter.formatURL(elem.getAttribute(attributeName)!), + techdocsStorageApi.getBaseUrl(elemAttribute, entityId, path), ); }); }; diff --git a/plugins/techdocs/src/reader/transformers/onCssReady.test.ts b/plugins/techdocs/src/reader/transformers/onCssReady.test.ts index 13965bcf4b..c83a94f35d 100644 --- a/plugins/techdocs/src/reader/transformers/onCssReady.test.ts +++ b/plugins/techdocs/src/reader/transformers/onCssReady.test.ts @@ -15,19 +15,23 @@ */ import { - FIXTURES, createTestShadowDom, mockStylesheetEventListener, executeStylesheetEventListeners, clearStylesheetEventListeners, } from '../../test-utils'; -import { addBaseUrl, onCssReady } from '../transformers'; +import { onCssReady } from '../transformers'; const docStorageUrl: string = 'https://techdocs-mock-sites.storage.googleapis.com'; jest.useFakeTimers(); +const fixture = ` + + +`; + describe('onCssReady', () => { beforeEach(() => { mockStylesheetEventListener(100); @@ -37,19 +41,13 @@ describe('onCssReady', () => { clearStylesheetEventListeners(); }); - it('does not call onLoading and onLoaded without the addBaseUrl transformer', () => { + it('does not call onLoading and onLoaded without the onCssReady transformer', () => { const onLoading = jest.fn(); const onLoaded = jest.fn(); - createTestShadowDom(FIXTURES.FIXTURE_STANDARD_PAGE, { + createTestShadowDom(fixture, { preTransformers: [], - postTransformers: [ - onCssReady({ - docStorageUrl, - onLoading, - onLoaded, - }), - ], + postTransformers: [], }); expect(onLoading).not.toHaveBeenCalled(); @@ -61,14 +59,9 @@ describe('onCssReady', () => { const onLoading = jest.fn(); const onLoaded = jest.fn(); - createTestShadowDom(FIXTURES.FIXTURE_STANDARD_PAGE, { + createTestShadowDom(fixture, { preTransformers: [], postTransformers: [ - addBaseUrl({ - docStorageUrl, - componentId: 'mkdocs', - path: '', - }), onCssReady({ docStorageUrl, onLoading, diff --git a/plugins/techdocs/src/reader/transformers/rewriteDocLinks.test.ts b/plugins/techdocs/src/reader/transformers/rewriteDocLinks.test.ts index 20ec3ccb64..06da8a447c 100644 --- a/plugins/techdocs/src/reader/transformers/rewriteDocLinks.test.ts +++ b/plugins/techdocs/src/reader/transformers/rewriteDocLinks.test.ts @@ -50,9 +50,9 @@ describe('rewriteDocLinks', () => { expect(getSample(shadowDom, 'a', 'href', 6)).toEqual([ 'http://example.org/', - 'http://localhost/example/', - 'http://localhost/example-docs/', - 'http://localhost/example-docs/example-page/', + 'http://localhost/example', + 'http://localhost/example-docs', + 'http://localhost/example-docs/example-page', ]); }); }); diff --git a/plugins/techdocs/src/reader/transformers/rewriteDocLinks.ts b/plugins/techdocs/src/reader/transformers/rewriteDocLinks.ts index 4bf4ab3898..856bb40f0f 100644 --- a/plugins/techdocs/src/reader/transformers/rewriteDocLinks.ts +++ b/plugins/techdocs/src/reader/transformers/rewriteDocLinks.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -import URLFormatter from '../urlFormatter'; import type { Transformer } from './index'; export const rewriteDocLinks = (): Transformer => { @@ -26,11 +25,17 @@ export const rewriteDocLinks = (): Transformer => { Array.from(list) .filter(elem => elem.hasAttribute(attributeName)) .forEach((elem: T) => { - const urlFormatter = new URLFormatter(window.location.href); - elem.setAttribute( - attributeName, - urlFormatter.formatURL(elem.getAttribute(attributeName)!), - ); + const elemAttribute = elem.getAttribute(attributeName); + if (elemAttribute) { + const normalizedWindowLocation = window.location.href.endsWith('/') + ? window.location.href + : `${window.location.href}/`; + + elem.setAttribute( + attributeName, + new URL(elemAttribute, normalizedWindowLocation).toString(), + ); + } }); }; diff --git a/plugins/techdocs/src/reader/urlFormatter.test.ts b/plugins/techdocs/src/reader/urlFormatter.test.ts deleted file mode 100644 index 2659f9f4dc..0000000000 --- a/plugins/techdocs/src/reader/urlFormatter.test.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 URLFormatter from './urlFormatter'; - -describe('URLFormatter', () => { - describe('formatURL', () => { - it('should not change an absolute url', () => { - const formatter = new URLFormatter('https://www.google.com/'); - expect(formatter.formatURL('https://www.mkdocs.org/')).toEqual( - 'https://www.mkdocs.org/', - ); - }); - - it('should convert a relative url to an absolute url', () => { - const formatter = new URLFormatter( - 'https://www.mkdocs.org/user-guide/getting-started/', - ); - expect(formatter.formatURL('../../support/installing/')).toEqual( - 'https://www.mkdocs.org/support/installing/', - ); - }); - - it('should add a trailing slash', () => { - const formatter = new URLFormatter( - 'https://www.mkdocs.org/user-guide/getting-started', - ); - expect(formatter.formatURL('./getting-started')).toEqual( - 'https://www.mkdocs.org/user-guide/getting-started/', - ); - }); - - it('should not add a trailing slash', () => { - const formatter = new URLFormatter( - 'https://www.mkdocs.org/user-guide/getting-started/', - ); - expect(formatter.formatURL('.')).toEqual( - 'https://www.mkdocs.org/user-guide/getting-started/', - ); - }); - - it('should not add multiple hashes', () => { - const formatter = new URLFormatter( - 'https://www.mkdocs.org/user-guide/getting-started/#hash1', - ); - expect(formatter.formatURL('./#hash2')).toEqual( - 'https://www.mkdocs.org/user-guide/getting-started/#hash2', - ); - }); - }); - - describe('formatBaseURL', () => { - it('should keep query params in URL', () => { - const formatter = new URLFormatter( - 'https://www.mkdocs.org/user-guide/getting-started/?query=hello+world', - ); - expect(formatter.formatBaseURL()).toEqual( - 'https://www.mkdocs.org/user-guide/getting-started/?query=hello+world', - ); - }); - - it('should keep hash in URL', () => { - const formatter = new URLFormatter( - 'https://www.mkdocs.org/user-guide/getting-started/#hash', - ); - expect(formatter.formatBaseURL()).toEqual( - 'https://www.mkdocs.org/user-guide/getting-started/#hash', - ); - }); - }); -}); diff --git a/plugins/techdocs/src/reader/urlFormatter.ts b/plugins/techdocs/src/reader/urlFormatter.ts deleted file mode 100644 index 166f0d9963..0000000000 --- a/plugins/techdocs/src/reader/urlFormatter.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 default class URLFormatter { - constructor(public baseURL: string) {} - - formatBaseURL(): string { - return this.normalizeURL(this.baseURL); - } - - formatURL(pathname: string): string { - return this.normalizeURL(new URL(pathname, this.baseURL).toString()); - } - - private normalizeURL(urlString: string): string { - const url = new URL(urlString); - const filename: string = url.pathname.split('/').pop() ?? url.pathname; - const isDir: boolean = filename.includes('.') === false; - - if (isDir) { - url.pathname = url.pathname.replace(/([^/])$/, '$1/'); - } - - return url.toString(); - } -} diff --git a/plugins/techdocs/src/types.ts b/plugins/techdocs/src/types.ts new file mode 100644 index 0000000000..ec907cc6fa --- /dev/null +++ b/plugins/techdocs/src/types.ts @@ -0,0 +1,21 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 type ParsedEntityId = { + kind: string; + namespace?: string; + name: string; +}; diff --git a/yarn.lock b/yarn.lock index e119146c68..63a429b79d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7515,6 +7515,15 @@ caniuse-lite@^1.0.30001109: resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001113.tgz#22016ab55b5a8b04fa00ca342d9ee1b98df48065" integrity sha512-qMvjHiKH21zzM/VDZr6oosO6Ri3U0V2tC015jRXjOecwQCJtsU5zklTNTk31jQbIOP8gha0h1ccM/g0ECP+4BA== +canvas@^2.6.1: + version "2.6.1" + resolved "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz#0d087dd4d60f5a5a9efa202757270abea8bef89e" + integrity sha512-S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA== + dependencies: + nan "^2.14.0" + node-pre-gyp "^0.11.0" + simple-get "^3.0.3" + canvg@1.5.3: version "1.5.3" resolved "https://registry.npmjs.org/canvg/-/canvg-1.5.3.tgz#aad17915f33368bf8eb80b25d129e3ae922ddc5f" @@ -9061,6 +9070,13 @@ decompress-response@^3.2.0, decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" @@ -15694,6 +15710,11 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +mimic-response@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + min-document@^2.19.0: version "2.19.0" resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -20346,6 +20367,20 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^3.0.3: + version "3.1.0" + resolved "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" + integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" From 17233abfcbc37915b0d9158c3284811ef49c243a Mon Sep 17 00:00:00 2001 From: Tobias Andersen Date: Thu, 20 Aug 2020 14:55:42 +0200 Subject: [PATCH 096/656] =Partial commit, have to go home --- .../src/service/lib/ServiceBuilderImpl.ts | 6 ++- .../src/service/lib/hostFactory.ts | 41 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 packages/backend-common/src/service/lib/hostFactory.ts diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index 0e0feb6a37..e75ae8069f 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -38,6 +38,10 @@ import { readHttpsSettings, HttpsSettings, } from './config'; +import { + createHttpServer, + createHttpsServer, +} from './hostFactory'; const DEFAULT_PORT = 7000; // '' is express default, which listens to all interfaces @@ -215,7 +219,7 @@ export class ServiceBuilderImpl implements ServiceBuilder { } else { logger.info('Initializing http server'); - server = http.createServer(app); + server = createHttpServer(app); } const stoppableServer = stoppable( diff --git a/packages/backend-common/src/service/lib/hostFactory.ts b/packages/backend-common/src/service/lib/hostFactory.ts new file mode 100644 index 0000000000..9b850431fb --- /dev/null +++ b/packages/backend-common/src/service/lib/hostFactory.ts @@ -0,0 +1,41 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 express from 'express'; +import * as http from 'http'; +import * as https from 'https'; + +/** + * Reads some base options out of a config object. + * + * @param config The root of a backend config object + * @returns A base options object + * + * @example + * ```json + * { + * baseUrl: "http://localhost:7000", + * listen: "0.0.0.0:7000" + * } + * ``` + */ +export function createHttpServer(app: express.Express): http.Server { + return http.createServer(app); +} + + +export function createHttpsServer(app: express.Express): http.Server { + return https.createServer(app); +} \ No newline at end of file From b545e516156a9f80006a4a38108a9eebe0f121ed Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Thu, 20 Aug 2020 15:02:53 +0200 Subject: [PATCH 097/656] fix(header tabs): use filteredheadertabs instead of tabs --- plugins/catalog/src/components/EntityPage/EntityPage.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/catalog/src/components/EntityPage/EntityPage.tsx b/plugins/catalog/src/components/EntityPage/EntityPage.tsx index a36ac32a07..adbc758067 100644 --- a/plugins/catalog/src/components/EntityPage/EntityPage.tsx +++ b/plugins/catalog/src/components/EntityPage/EntityPage.tsx @@ -206,10 +206,12 @@ export const EntityPage: FC<{}> = () => { tabs={filteredHeaderTabs} onChange={idx => { navigate( - `/catalog/${kind}/${optionalNamespaceAndName}/${tabs[idx].id}`, + `/catalog/${kind}/${optionalNamespaceAndName}/${filteredHeaderTabs[idx].id}`, ); }} - selectedIndex={tabs.findIndex(tab => tab.id === selectedTabId)} + selectedIndex={filteredHeaderTabs.findIndex( + tab => tab.id === selectedTabId, + )} /> {selectedTab && selectedTab.content From bbd75a0981a5b7418ecf1afa2124738d7b18f494 Mon Sep 17 00:00:00 2001 From: David Tuite Date: Thu, 20 Aug 2020 14:54:14 +0100 Subject: [PATCH 098/656] Add GitHub pull requests plugin (#1987) See pull requests against your entities, and see statistics for your last N pull requests. --- packages/app/package.json | 1 + packages/app/src/apis.ts | 2 ++ packages/app/src/plugins.ts | 1 + yarn.lock | 23 +++++++++++++++++++++++ 4 files changed, 27 insertions(+) diff --git a/packages/app/package.json b/packages/app/package.json index 0e2cb677a4..126913b32a 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -27,6 +27,7 @@ "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@octokit/rest": "^18.0.0", + "@roadiehq/backstage-plugin-github-pull-requests": "0.3.0", "@roadiehq/backstage-plugin-travis-ci": "^0.1.3", "history": "^5.0.0", "prop-types": "^15.7.2", diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index c906b062ed..df023b80cb 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -74,6 +74,7 @@ import { TravisCIApi, travisCIApiRef, } from '@roadiehq/backstage-plugin-travis-ci'; +import { GithubPullRequestsClient, githubPullRequestsApiRef } from '@roadiehq/backstage-plugin-github-pull-requests'; export const apis = (config: ConfigApi) => { // eslint-disable-next-line no-console @@ -105,6 +106,7 @@ export const apis = (config: ConfigApi) => { builder.add(lighthouseApiRef, new LighthouseRestApi('http://localhost:3003')); builder.add(travisCIApiRef, new TravisCIApi()); + builder.add(githubPullRequestsApiRef, new GithubPullRequestsClient()); const oauthRequestApi = builder.add( oauthRequestApiRef, diff --git a/packages/app/src/plugins.ts b/packages/app/src/plugins.ts index 4ec19c74f3..f338c169b7 100644 --- a/packages/app/src/plugins.ts +++ b/packages/app/src/plugins.ts @@ -31,3 +31,4 @@ export { plugin as Newrelic } from '@backstage/plugin-newrelic'; export { plugin as TravisCI } from '@roadiehq/backstage-plugin-travis-ci'; export { plugin as Jenkins } from '@backstage/plugin-jenkins'; export { plugin as ApiDocs } from '@backstage/plugin-api-docs'; +export { plugin as GithubPullRequests } from '@roadiehq/backstage-plugin-github-pull-requests'; diff --git a/yarn.lock b/yarn.lock index 63a429b79d..1a56d05251 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3308,6 +3308,29 @@ resolved "https://registry.npmjs.org/@rjsf/material-ui/-/material-ui-2.3.0.tgz#a051eb4db2ad778e39933a31ba806f415dd3ba90" integrity sha512-v/xZ4Xk18ZgBARcCe99IDqdO97GU0UC784gG8PhGGFDdy5Rbdy7ixTjHkGYttkr43PB7SX6ttohNhkKSW4nATQ== +"@roadiehq/backstage-plugin-github-pull-requests@0.3.0": + version "0.3.0" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-0.3.0.tgz#465cb74b1dab6f34a5a5bf4fa57b6c1d312bc5b7" + integrity sha512-nSyMh8p3SAYj1yj5/+Po82g7aZwF5pWb+fh7bLPdf+ywl5pa+aKQxAVNCvlvgfN2WZ9gDTMbCPyWDgCfeJ/V9g== + dependencies: + "@backstage/catalog-model" "^0.1.1-alpha.16" + "@backstage/core" "^0.1.1-alpha.16" + "@backstage/core-api" "^0.1.1-alpha.16" + "@backstage/plugin-catalog" "^0.1.1-alpha.16" + "@backstage/theme" "^0.1.1-alpha.16" + "@material-ui/core" "^4.9.1" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.45" + "@octokit/rest" "^18.0.0" + "@octokit/types" "^5.0.1" + "@types/react-dom" "^16.9.8" + history "^5.0.0" + moment "^2.27.0" + react "^16.13.1" + react-dom "^16.13.1" + react-router-dom "6.0.0-beta.0" + react-use "^15.3.3" + "@roadiehq/backstage-plugin-travis-ci@^0.1.3": version "0.1.3" resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-0.1.3.tgz#597882bb6db119b9c8970f15cc506c5d70ba2c41" From 34e72a7cf4af464ac0d027bdf0f246fd1f0f7684 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 20 Aug 2020 18:10:08 +0200 Subject: [PATCH 099/656] cli: grab the needed e2e test package dependencies from the create-app template --- packages/cli/e2e-test/cli-e2e-test.js | 34 +++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/packages/cli/e2e-test/cli-e2e-test.js b/packages/cli/e2e-test/cli-e2e-test.js index 8a3285c544..c4004f7c46 100644 --- a/packages/cli/e2e-test/cli-e2e-test.js +++ b/packages/cli/e2e-test/cli-e2e-test.js @@ -17,6 +17,7 @@ const os = require('os'); const fs = require('fs-extra'); const fetch = require('node-fetch'); +const handlebars = require('handlebars'); const killTree = require('tree-kill'); const { resolve: resolvePath, join: joinPath } = require('path'); const Browser = require('zombie'); @@ -62,6 +63,35 @@ async function buildDistWorkspace(workspaceName, rootDir) { const workspaceDir = resolvePath(rootDir, workspaceName); await fs.ensureDir(workspaceDir); + // We grab the needed dependencies from the template packages + const appPkgTemplate = await fs.readFile( + resolvePath( + __dirname, + '../../create-app/templates/default-app/packages/app/package.json.hbs', + ), + 'utf8', + ); + const appPkg = JSON.parse( + handlebars.compile(appPkgTemplate)({ version: '0.0.0' }), + ); + const appDeps = Object.keys(appPkg.dependencies).filter(name => + name.startsWith('@backstage/'), + ); + + const backendPkgTemplate = await fs.readFile( + resolvePath( + __dirname, + '../../create-app/templates/default-app/packages/backend/package.json.hbs', + ), + 'utf8', + ); + const backendPkg = JSON.parse( + handlebars.compile(backendPkgTemplate)({ version: '0.0.0' }), + ); + const backendDeps = Object.keys(backendPkg.dependencies).filter(name => + name.startsWith('@backstage/'), + ); + print(`Preparing workspace`); await runPlain([ 'yarn', @@ -73,8 +103,8 @@ async function buildDistWorkspace(workspaceName, rootDir) { '@backstage/core', '@backstage/dev-utils', '@backstage/test-utils', - // We don't use the backend itself, but want all of its dependencies - 'example-backend', + ...appDeps, + ...backendDeps, ]); print('Pinning yarn version in workspace'); From 95596b812983f892411c32fa67a5ca7de4b22cd3 Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Thu, 20 Aug 2020 21:01:13 +0200 Subject: [PATCH 100/656] chore(api-docs): the api docs plugin should be published (#2051) * chore(api-docs): the api docs plugin should be published * chore: add missing @types/react dependency * chore: move to dependency --- plugins/api-docs/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 65f83a936d..c8a6b5732d 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -4,7 +4,6 @@ "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", - "private": true, "publishConfig": { "access": "public", "main": "dist/index.esm.js", @@ -34,6 +33,7 @@ "react-dom": "^16.13.1", "react-router-dom": "6.0.0-beta.0", "react-use": "^15.3.3", + "@types/react": "^16.9", "swagger-ui-react": "^3.31.1" }, "devDependencies": { From 89a0a2fc7b54ed82ccdf3dae43883963fa0d7d57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 19 Aug 2020 15:52:18 +0200 Subject: [PATCH 101/656] docs: write call-existing-api.md --- docs/plugins/call-existing-api.md | 175 +++++++++++++++++++++++++++++- plugins/jenkins/README.md | 2 +- 2 files changed, 174 insertions(+), 3 deletions(-) diff --git a/docs/plugins/call-existing-api.md b/docs/plugins/call-existing-api.md index 075d4bdeb6..f6c9990b90 100644 --- a/docs/plugins/call-existing-api.md +++ b/docs/plugins/call-existing-api.md @@ -1,6 +1,177 @@ --- id: call-existing-api -title: Call existing API +title: Call Existing API --- -## TODO +This article describes the various options that Backstage frontend plugins have, +in communicating with service APIs that already exist. Each section below +describes a possible choice, and the circumstances under which it fits. + +In these examples, we will be ultimately requesting data from the fictional +FrobsCo API. + +## Issuing Requests Directly + +The most basic choice available is to issue requests directly from the plugin +frontend code to the FrobsCo API, using for example `fetch` or a support library +such as `axios`. + +Example: + +```ts +// Inside your component +fetch('https://api.frobsco.com/v1/list') + .then(response => response.json()) + .then(payload => setFrobs(payload as Frob[])); +``` + +Internally at Spotify, this has not been a very common choice. Third party APIs +are sometimes accessed like this. Just a handful of internal APIs also went +through the trouble of exposing themselves in a way that is useful directly from +a browser, but even then, often not from the public internet but only supporting +users that are already on the company VPN. + +This can be used when: + +- The API already does/exposes exactly what you need. +- The request/response patterns of the API match real world usage needs in + Backstage frontend plugins. For example, if the end use case is to show a + small summary in Backstage, but the only available API endpoint gives a 30 + megabyte blob with large amounts of redundant information, it would hurt the + end user experience. Particularly on mobile. The same goes for cases where you + want to show many individual pieces of information: if a common use case is to + show large tables where one API request per cell is necessary, the browser + will quickly become swamped and you may want to consider performing + aggregation elsewhere instead. +- The API can maintain interactive request/response times at your required peak + request rates. The end user experience will be degraded if they spend a lot of + time waiting for the data to arrive. +- The API endpoint is highly available. The browser does not have builtin + facilities for load balancing, service discovery, retries, health checks, + circuit breaking and similar. If the endpoint is occasionally down even for + short periods of time (e.g. during deploys), end users will quickly notice. +- The API is exposed over HTTPS (not just HTTP), and properly handles + [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). These are + requirements that the user's browser will impose for security reasons, and the + requests will be rejected otherwise. +- The API endpoint is easily reachable, in terms of network conditions, by end + users. This may be particularly relevant if your end users are outside of your + perimeter. +- The requests do not require secrets to be passed. This limitation does not + apply to OAuth tokens, which the frontend can negotiate and make proper use + of. + +## Using The Backstage Proxy + +Backstage has an optional proxy plugin for the backend, that can be used to +easily add proxy routes to downstream APIs. + +Example: + +```yaml +# In app-config.yaml +proxy: + '/frobs': + target: 'http://api.frobsco.com/v1' + changeOrigin: true + pathRewrite: + '^/proxy/frobs/': '/' +``` + +```ts +// Inside your component +const backendUrl = config.getString('backend.baseUrl'); +fetch(`${backendUrl}/proxy/frobs/list`) + .then(response => response.json()) + .then(payload => setFrobs(payload as Frob[])); +``` + +The proxy is powered by the `http-proxy-middleware` package, and supports all of +its +[configuration options](https://github.com/chimurai/http-proxy-middleware#options). + +Internally at Spotify, the proxy option has been the overwhelmingly most popular +choice for plugin makers. Since we have DNS based service discovery in place and +a microservices framework that made it trivial to expose plain HTTP, it has been +a matter of just adding a few lines of Backstage config to get the benefit of +being easily and robustly reachable from users' web browsers as well. + +This may be used instead of direct requests, when: + +- You need to perform HTTPS termination and/or CORS handling, because the API + itself is not supplying those. +- You need to inject a simple static secret into the requests, e.g. an + Authorization header that gets added to the request headers. +- You want to make use of other proxy facilities, such as retries, failover, + health checks, routing, request logging, rewrites, etc. +- You already have the Backstage backend itself exposed through your perimeter + and find it practical to have only one entry point to deal with, governing + ingress with just the Backstage config. + +## Creating a Backstage Backend Plugin + +Much like the Backstage frontend, the Backstage backend also has a plugin +system. The above mentioned proxy is actually one such plugin. If you were in +need of a more involved integration than just direct access to the FrobsCo API, +or if you needed to hold state, you may want to make such a plugin. + +Example: + +```ts +// Inside your component +const backendUrl = config.getString('backend.baseUrl'); +fetch(`${backendUrl}/frobs-aggregator/summary`) + .then(response => response.json()) + .then(payload => setSummary(payload as FrobSummary)); +``` + +```ts +// Inside a new frobs-aggregator backend plugin +router.use('/summary', async (req, res) => { + const agg = await Promise.all([ + fetch('https://api.frobsco.com/v1/list'), + fetch('http://flerps.partnercompany.com:8080/flerp-batch'), + database.currentThunk(), + ]).then(async ([frobs, flerps, thunk]) => { + return computeAggregate(await frobs.json(), await flerps.json(), thunk); + }); + res.status(200).send(agg); +}); +``` + +For a more detailed example, see +[the lighthouse plugin](https://github.com/spotify/backstage/tree/master/plugins/lighthouse) +that stores some state in a database and adds new capabilities to the underlying +API. + +Internally at Spotify, this has been a fairly popular choice for different +reasons. Commonly, the backend has been used as a caching and data massaging +layer for slow APIs or APIs whose request/response shapes or speeds were not +acceptable for direct use by frontends. For example, this has made it possible +to issue efficient batch queries from the frontend, e.g. in big lists or tables +that want to resolve a lot of sparse data from the larger list that an +underlying service supplies. + +This may be used instead of the above, when: + +- You need to perform complex model conversion, or protocol translation beyond + what the proxy handles. +- You want to perform aggregations or summaries on the backend instead of on the + frontend. +- You want to enable batching or caching of slower or more unreliable APIs. +- You need to maintain state for your plugin, perhaps using the builtin database + support in the backend. +- You need to inject secrets or in other ways negotiate with other parts of the + API or other services in order to perform your work. +- You want to enforce end user authentication / authorization for operations on + behalf of the API, have session handling, or similar. + +There is a balance to strike regarding when to make an entirely separate backend +for a purpose, and when to make a Backstage backend plugin that adapts something +that already exists. General advice is not easy to give, but contact us on +Discord if you have any questions, and we may be able to offer guidance. + +## Extending the GraphQL Model + +The extensible GraphQL backend layer is not built yet. This section will be +expanded when that happens. Stay tuned! diff --git a/plugins/jenkins/README.md b/plugins/jenkins/README.md index b8a844f5d8..a911704dc4 100644 --- a/plugins/jenkins/README.md +++ b/plugins/jenkins/README.md @@ -4,7 +4,7 @@ Website: [https://jenkins.io/](https://jenkins.io/) Last master build Folder results -Build detials +Build details ## Setup From 19db25eac700058c48ee28bc60f0e0adacfa9cb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 20 Aug 2020 22:16:19 +0200 Subject: [PATCH 102/656] fix(core): chunk up tabs better --- packages/core/src/components/Tabs/Tabs.tsx | 8 ++++---- packages/core/src/components/Tabs/utils.ts | 21 +++++++++++---------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/packages/core/src/components/Tabs/Tabs.tsx b/packages/core/src/components/Tabs/Tabs.tsx index 54369de473..336ed2b93b 100644 --- a/packages/core/src/components/Tabs/Tabs.tsx +++ b/packages/core/src/components/Tabs/Tabs.tsx @@ -48,7 +48,7 @@ export interface TabsProps { tabs: TabProps[]; } -const useStyles = makeStyles((theme: BackstageTheme) => ({ +const useStyles = makeStyles(theme => ({ root: { flexGrow: 1, width: '100%', @@ -66,7 +66,7 @@ const useStyles = makeStyles((theme: BackstageTheme) => ({ export const Tabs: FC = ({ tabs }) => { const classes = useStyles(); - const [value, setValue] = useState([0, 0]); // [selectedChunckedNavIndex, selectedIndex] + const [value, setValue] = useState([0, 0]); // [selectedChunkedNavIndex, selectedIndex] const [navIndex, setNavIndex] = useState(0); const [numberOfChunkedElement, setNumberOfChunkedElement] = useState(0); const [chunkedTabs, setChunkedTabs] = useState([[]]); @@ -89,7 +89,7 @@ export const Tabs: FC = ({ tabs }) => { const hasNextNavIndex = () => navIndex + 1 < chunkedTabs.length; useEffect(() => { - // Each time the window is resized we calculate how many tabs wwe can render given the window width + // Each time the window is resized we calculate how many tabs we can render given the window width const padding = 20; // The AppBar padding const numberOfTabIcons = navIndex === 0 ? 1 : 2; @@ -99,7 +99,7 @@ export const Tabs: FC = ({ tabs }) => { const newChunkedElementSize = Math.floor(wrapperWidth / 170); setNumberOfChunkedElement(newChunkedElementSize); - setChunkedTabs(chunkArray([...tabs], newChunkedElementSize)); + setChunkedTabs(chunkArray(tabs, newChunkedElementSize)); setValue([ Math.floor(flattenIndex / newChunkedElementSize), flattenIndex % newChunkedElementSize, diff --git a/packages/core/src/components/Tabs/utils.ts b/packages/core/src/components/Tabs/utils.ts index 3e0ab6f2c3..8d6a3be5f3 100644 --- a/packages/core/src/components/Tabs/utils.ts +++ b/packages/core/src/components/Tabs/utils.ts @@ -13,15 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { TabProps } from './Tabs'; -export const chunkArray = ( - myArray: TabProps[], - chunkSize: number, -): TabProps[][] => { - const results = []; - while (myArray.length) { - results.push(myArray.splice(0, chunkSize)); +export function chunkArray(array: T[], chunkSize: number): T[][] { + if (chunkSize <= 0) { + return [array]; } - return results; -}; + + const result: T[][] = []; + for (let i = 0; i < array.length; i += chunkSize) { + result.push(array.slice(i, i + chunkSize)); + } + + return result; +} From 96f1f522b9a47166bad78ea4b940ecd808eee3b5 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 20 Aug 2020 14:38:33 +0200 Subject: [PATCH 103/656] core-api: add DiscoveryApi + UrlPatternDiscovery implementation --- .../src/apis/definitions/DiscoveryApi.ts | 47 +++++++++++ .../core-api/src/apis/definitions/index.ts | 1 + .../DiscoveryApi/UrlPatternDiscovery.test.ts | 84 +++++++++++++++++++ .../DiscoveryApi/UrlPatternDiscovery.ts | 58 +++++++++++++ .../implementations/DiscoveryApi/index.ts | 21 +++++ .../src/apis/implementations/index.ts | 1 + 6 files changed, 212 insertions(+) create mode 100644 packages/core-api/src/apis/definitions/DiscoveryApi.ts create mode 100644 packages/core-api/src/apis/implementations/DiscoveryApi/UrlPatternDiscovery.test.ts create mode 100644 packages/core-api/src/apis/implementations/DiscoveryApi/UrlPatternDiscovery.ts create mode 100644 packages/core-api/src/apis/implementations/DiscoveryApi/index.ts diff --git a/packages/core-api/src/apis/definitions/DiscoveryApi.ts b/packages/core-api/src/apis/definitions/DiscoveryApi.ts new file mode 100644 index 0000000000..b0773086c7 --- /dev/null +++ b/packages/core-api/src/apis/definitions/DiscoveryApi.ts @@ -0,0 +1,47 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { createApiRef } from '../ApiRef'; + +/** + * The discovery API is used to provide a mechanism for plugins to + * discover the endpoint to use to talk to their backend counterpart. + * + * The purpose of the discovery API is to allow for many different deployment + * setups and routing methods through a central configuration, instead + * of letting each individual plugin manage that configuration. + * + * Implementations of the discovery API can be a simple as a URL pattern + * using the pluginId, but could also have overrides for individual plugins, + * or query a separate discovery service. + */ +export type DiscoveryApi = { + /** + * Returns the HTTP base backend URL for a given plugin, without a trailing slash. + * + * This method must always be called just before making a request. as opposed to + * fetching the URL when constructing an API client. That is to ensure that more + * flexible routing patterns can be supported. + * + * For example, asking for the URL for `auth` may return something + * like `https://backstage.example.com/api/auth` + */ + getBaseUrl(pluginId: string): Promise; +}; + +export const discoveryApiRef = createApiRef({ + id: 'core.discovery', + description: 'Provides service discovery of backend plugins', +}); diff --git a/packages/core-api/src/apis/definitions/index.ts b/packages/core-api/src/apis/definitions/index.ts index c5d4a15117..678dce9e32 100644 --- a/packages/core-api/src/apis/definitions/index.ts +++ b/packages/core-api/src/apis/definitions/index.ts @@ -27,6 +27,7 @@ export * from './AppThemeApi'; export * from './ConfigApi'; export * from './ErrorApi'; export * from './FeatureFlagsApi'; +export * from './DiscoveryApi'; export * from './IdentityApi'; export * from './OAuthRequestApi'; export * from './StorageApi'; diff --git a/packages/core-api/src/apis/implementations/DiscoveryApi/UrlPatternDiscovery.test.ts b/packages/core-api/src/apis/implementations/DiscoveryApi/UrlPatternDiscovery.test.ts new file mode 100644 index 0000000000..9597443b98 --- /dev/null +++ b/packages/core-api/src/apis/implementations/DiscoveryApi/UrlPatternDiscovery.test.ts @@ -0,0 +1,84 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { UrlPatternDiscovery } from './UrlPatternDiscovery'; + +describe('UrlPatternDiscovery', () => { + it('should not require interpolation', async () => { + const discoveryApi = UrlPatternDiscovery.compile('http://example.com'); + await expect(discoveryApi.getBaseUrl('my-plugin')).resolves.toBe( + 'http://example.com', + ); + }); + + it('should use a plain pattern', async () => { + const discoveryApi = UrlPatternDiscovery.compile( + 'http://localhost:7000/{{ pluginId }}', + ); + await expect(discoveryApi.getBaseUrl('my-plugin')).resolves.toBe( + 'http://localhost:7000/my-plugin', + ); + }); + + it('should allow for multiple interpolation points', async () => { + const discoveryApi = UrlPatternDiscovery.compile( + 'https://{{pluginId }}.example.com/api/{{ pluginId}}', + ); + await expect(discoveryApi.getBaseUrl('my-plugin')).resolves.toBe( + 'https://my-plugin.example.com/api/my-plugin', + ); + }); + + it('should validate that the pattern is a valid URL', () => { + expect(() => { + UrlPatternDiscovery.compile('example.com'); + }).toThrow('Invalid discovery URL pattern, Invalid URL: example.com'); + + expect(() => { + UrlPatternDiscovery.compile('http://'); + }).toThrow('Invalid discovery URL pattern, Invalid URL: http://'); + + expect(() => { + UrlPatternDiscovery.compile('abc123'); + }).toThrow('Invalid discovery URL pattern, Invalid URL: abc123'); + + expect(() => { + UrlPatternDiscovery.compile('http://example.com:{{pluginId}}'); + }).toThrow( + 'Invalid discovery URL pattern, Invalid URL: http://example.com:pluginId', + ); + + expect(() => { + UrlPatternDiscovery.compile('/{{pluginId}}'); + }).toThrow('Invalid discovery URL pattern, Invalid URL: /pluginId'); + + expect(() => { + UrlPatternDiscovery.compile('http://localhost/{{pluginId}}?forbidden'); + }).toThrow('Invalid discovery URL pattern, URL must not have a query'); + + expect(() => { + UrlPatternDiscovery.compile('http://localhost/{{pluginId}}#forbidden'); + }).toThrow('Invalid discovery URL pattern, URL must not have a hash'); + + expect(() => { + UrlPatternDiscovery.compile('http://localhost/{{pluginId}}/'); + }).toThrow('Invalid discovery URL pattern, URL must not end with a slash'); + + expect(() => { + UrlPatternDiscovery.compile('http://localhost/'); + }).toThrow('Invalid discovery URL pattern, URL must not end with a slash'); + }); +}); diff --git a/packages/core-api/src/apis/implementations/DiscoveryApi/UrlPatternDiscovery.ts b/packages/core-api/src/apis/implementations/DiscoveryApi/UrlPatternDiscovery.ts new file mode 100644 index 0000000000..ca48784584 --- /dev/null +++ b/packages/core-api/src/apis/implementations/DiscoveryApi/UrlPatternDiscovery.ts @@ -0,0 +1,58 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { DiscoveryApi } from '../../definitions/DiscoveryApi'; + +/** + * UrlPatternDiscovery is a lightweight DiscoveryApi implementation. + * It uses a single template string to construct URLs for each plugin. + */ +export class UrlPatternDiscovery implements DiscoveryApi { + /** + * Creates a new UrlPatternDiscovery given a template. The the only + * interpolation done for the template is to replace instances of `{{pluginId}}` + * with the ID of the plugin being requested. + * + * Example pattern: `http://localhost:7000/api/{{ pluginId }}` + */ + static compile(pattern: string): UrlPatternDiscovery { + const parts = pattern.split(/\{\{\s*pluginId\s*\}\}/); + + try { + const urlStr = parts.join('pluginId'); + const url = new URL(urlStr); + if (url.hash) { + throw new Error('URL must not have a hash'); + } + if (url.search) { + throw new Error('URL must not have a query'); + } + if (urlStr.endsWith('/')) { + throw new Error('URL must not end with a slash'); + } + } catch (error) { + throw new Error(`Invalid discovery URL pattern, ${error.message}`); + } + + return new UrlPatternDiscovery(parts); + } + + private constructor(private readonly parts: string[]) {} + + async getBaseUrl(pluginId: string): Promise { + return this.parts.join(pluginId); + } +} diff --git a/packages/core-api/src/apis/implementations/DiscoveryApi/index.ts b/packages/core-api/src/apis/implementations/DiscoveryApi/index.ts new file mode 100644 index 0000000000..60a5b815e7 --- /dev/null +++ b/packages/core-api/src/apis/implementations/DiscoveryApi/index.ts @@ -0,0 +1,21 @@ +/* + * Copyright 2020 Spotify AB + * + * 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. + */ + +// This folder contains implementations for all core APIs. +// +// Plugins should rely on these APIs for functionality as much as possible. + +export { UrlPatternDiscovery } from './UrlPatternDiscovery'; diff --git a/packages/core-api/src/apis/implementations/index.ts b/packages/core-api/src/apis/implementations/index.ts index e6d23fee21..30aeb81d44 100644 --- a/packages/core-api/src/apis/implementations/index.ts +++ b/packages/core-api/src/apis/implementations/index.ts @@ -24,5 +24,6 @@ export * from './AlertApi'; export * from './AppThemeApi'; export * from './ConfigApi'; export * from './ErrorApi'; +export * from './DiscoveryApi'; export * from './OAuthRequestApi'; export * from './StorageApi'; From ea1a36433d8b2b63e5a63e912f82f07d1dc336bf Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 20 Aug 2020 17:56:33 +0200 Subject: [PATCH 104/656] app,core-api: install DiscoveryApi in default app and use it for all auth providers --- packages/app/src/apis.ts | 29 ++++++----- .../implementations/auth/auth0/Auth0Auth.ts | 17 +++--- .../implementations/auth/github/GithubAuth.ts | 17 +++--- .../implementations/auth/gitlab/GitlabAuth.ts | 16 +++--- .../implementations/auth/google/GoogleAuth.ts | 17 +++--- .../implementations/auth/oauth2/OAuth2.ts | 16 +++--- .../implementations/auth/okta/OktaAuth.ts | 16 +++--- .../DefaultAuthConnector.test.ts | 11 ++-- .../lib/AuthConnector/DefaultAuthConnector.ts | 52 +++++++++---------- packages/dev-utils/src/devApp/apiFactories.ts | 37 +++++++------ .../ProfileCatalog/ProfileCatalog.test.tsx | 6 ++- 11 files changed, 120 insertions(+), 114 deletions(-) diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index df023b80cb..eb8cfb92af 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -24,6 +24,8 @@ import { ErrorAlerter, featureFlagsApiRef, FeatureFlags, + discoveryApiRef, + UrlPatternDiscovery, GoogleAuth, GithubAuth, OAuth2, @@ -74,7 +76,10 @@ import { TravisCIApi, travisCIApiRef, } from '@roadiehq/backstage-plugin-travis-ci'; -import { GithubPullRequestsClient, githubPullRequestsApiRef } from '@roadiehq/backstage-plugin-github-pull-requests'; +import { + GithubPullRequestsClient, + githubPullRequestsApiRef, +} from '@roadiehq/backstage-plugin-github-pull-requests'; export const apis = (config: ConfigApi) => { // eslint-disable-next-line no-console @@ -85,6 +90,10 @@ export const apis = (config: ConfigApi) => { const builder = ApiRegistry.builder(); + const discoveryApi = builder.add( + discoveryApiRef, + UrlPatternDiscovery.compile(`${backendUrl}/{{ pluginId }}`), + ); const alertApi = builder.add(alertApiRef, new AlertApiForwarder()); const errorApi = builder.add( errorApiRef, @@ -116,8 +125,7 @@ export const apis = (config: ConfigApi) => { builder.add( googleAuthApiRef, GoogleAuth.create({ - backendUrl, - basePath: '/auth/', + discoveryApi, oauthRequestApi, }), ); @@ -125,8 +133,7 @@ export const apis = (config: ConfigApi) => { const githubAuthApi = builder.add( githubAuthApiRef, GithubAuth.create({ - backendUrl, - basePath: '/auth/', + discoveryApi, oauthRequestApi, }), ); @@ -134,8 +141,7 @@ export const apis = (config: ConfigApi) => { builder.add( oktaAuthApiRef, OktaAuth.create({ - backendUrl, - basePath: '/auth/', + discoveryApi, oauthRequestApi, }), ); @@ -143,8 +149,7 @@ export const apis = (config: ConfigApi) => { builder.add( gitlabAuthApiRef, GitlabAuth.create({ - backendUrl, - basePath: '/auth/', + discoveryApi, oauthRequestApi, }), ); @@ -152,8 +157,7 @@ export const apis = (config: ConfigApi) => { builder.add( auth0AuthApiRef, Auth0Auth.create({ - backendUrl, - basePath: '/auth/', + discoveryApi, oauthRequestApi, }), ); @@ -161,8 +165,7 @@ export const apis = (config: ConfigApi) => { builder.add( oauth2ApiRef, OAuth2.create({ - backendUrl, - basePath: '/auth/', + discoveryApi, oauthRequestApi, }), ); diff --git a/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts b/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts index e69733741f..505c283b71 100644 --- a/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts +++ b/packages/core-api/src/apis/implementations/auth/auth0/Auth0Auth.ts @@ -27,16 +27,17 @@ import { AuthRequestOptions, BackstageIdentity, } from '../../../definitions/auth'; -import { OAuthRequestApi, AuthProvider } from '../../../definitions'; +import { + OAuthRequestApi, + AuthProvider, + DiscoveryApi, +} from '../../../definitions'; import { SessionManager } from '../../../../lib/AuthSessionManager/types'; import { RefreshingAuthSessionManager } from '../../../../lib/AuthSessionManager'; import { Observable } from '../../../../types'; type CreateOptions = { - // TODO(Following the words of Rugvip): These two should be grabbed from global config when available, they're not unique to Auth0Auth - backendUrl: string; - basePath: string; - + discoveryApi: DiscoveryApi; oauthRequestApi: OAuthRequestApi; environment?: string; @@ -67,15 +68,13 @@ class Auth0Auth BackstageIdentityApi, SessionStateApi { static create({ - backendUrl, - basePath, + discoveryApi, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - backendUrl, - basePath, + discoveryApi, environment, provider, oauthRequestApi: oauthRequestApi, diff --git a/packages/core-api/src/apis/implementations/auth/github/GithubAuth.ts b/packages/core-api/src/apis/implementations/auth/github/GithubAuth.ts index 1ad3e08699..8b9f807cd8 100644 --- a/packages/core-api/src/apis/implementations/auth/github/GithubAuth.ts +++ b/packages/core-api/src/apis/implementations/auth/github/GithubAuth.ts @@ -25,7 +25,11 @@ import { BackstageIdentity, AuthRequestOptions, } from '../../../definitions/auth'; -import { OAuthRequestApi, AuthProvider } from '../../../definitions'; +import { + OAuthRequestApi, + AuthProvider, + DiscoveryApi, +} from '../../../definitions'; import { SessionManager } from '../../../../lib/AuthSessionManager/types'; import { AuthSessionStore, @@ -34,10 +38,7 @@ import { import { Observable } from '../../../../types'; type CreateOptions = { - // TODO(Rugvip): These two should be grabbed from global config when available, they're not unique to GithubAuth - backendUrl: string; - basePath: string; - + discoveryApi: DiscoveryApi; oauthRequestApi: OAuthRequestApi; environment?: string; @@ -62,15 +63,13 @@ const DEFAULT_PROVIDER = { class GithubAuth implements OAuthApi, SessionStateApi { static create({ - backendUrl, - basePath, + discoveryApi, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - backendUrl, - basePath, + discoveryApi, environment, provider, oauthRequestApi: oauthRequestApi, diff --git a/packages/core-api/src/apis/implementations/auth/gitlab/GitlabAuth.ts b/packages/core-api/src/apis/implementations/auth/gitlab/GitlabAuth.ts index e612c4ca61..1734e930fa 100644 --- a/packages/core-api/src/apis/implementations/auth/gitlab/GitlabAuth.ts +++ b/packages/core-api/src/apis/implementations/auth/gitlab/GitlabAuth.ts @@ -25,15 +25,17 @@ import { BackstageIdentity, AuthRequestOptions, } from '../../../definitions/auth'; -import { OAuthRequestApi, AuthProvider } from '../../../definitions'; +import { + OAuthRequestApi, + AuthProvider, + DiscoveryApi, +} from '../../../definitions'; import { SessionManager } from '../../../../lib/AuthSessionManager/types'; import { StaticAuthSessionManager } from '../../../../lib/AuthSessionManager'; import { Observable } from '../../../../types'; type CreateOptions = { - backendUrl: string; - basePath: string; - + discoveryApi: DiscoveryApi; oauthRequestApi: OAuthRequestApi; environment?: string; @@ -58,15 +60,13 @@ const DEFAULT_PROVIDER = { class GitlabAuth implements OAuthApi, SessionStateApi { static create({ - backendUrl, - basePath, + discoveryApi, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - backendUrl, - basePath, + discoveryApi, environment, provider, oauthRequestApi, diff --git a/packages/core-api/src/apis/implementations/auth/google/GoogleAuth.ts b/packages/core-api/src/apis/implementations/auth/google/GoogleAuth.ts index c6a21dbb20..fdf9d46ba8 100644 --- a/packages/core-api/src/apis/implementations/auth/google/GoogleAuth.ts +++ b/packages/core-api/src/apis/implementations/auth/google/GoogleAuth.ts @@ -28,16 +28,17 @@ import { AuthRequestOptions, BackstageIdentity, } from '../../../definitions/auth'; -import { OAuthRequestApi, AuthProvider } from '../../../definitions'; +import { + OAuthRequestApi, + AuthProvider, + DiscoveryApi, +} from '../../../definitions'; import { SessionManager } from '../../../../lib/AuthSessionManager/types'; import { RefreshingAuthSessionManager } from '../../../../lib/AuthSessionManager'; import { Observable } from '../../../../types'; type CreateOptions = { - // TODO(Rugvip): These two should be grabbed from global config when available, they're not unique to GoogleAuth - backendUrl: string; - basePath: string; - + discoveryApi: DiscoveryApi; oauthRequestApi: OAuthRequestApi; environment?: string; @@ -71,15 +72,13 @@ class GoogleAuth BackstageIdentityApi, SessionStateApi { static create({ - backendUrl, - basePath, + discoveryApi, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - backendUrl, - basePath, + discoveryApi, environment, provider, oauthRequestApi: oauthRequestApi, diff --git a/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts b/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts index 4b6177bed9..cf582b3a13 100644 --- a/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts +++ b/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts @@ -19,7 +19,11 @@ import { DefaultAuthConnector } from '../../../../lib/AuthConnector'; import { RefreshingAuthSessionManager } from '../../../../lib/AuthSessionManager'; import { SessionManager } from '../../../../lib/AuthSessionManager/types'; import { Observable } from '../../../../types'; -import { AuthProvider, OAuthRequestApi } from '../../../definitions'; +import { + AuthProvider, + OAuthRequestApi, + DiscoveryApi, +} from '../../../definitions'; import { AuthRequestOptions, BackstageIdentity, @@ -33,9 +37,7 @@ import { import { OAuth2Session } from './types'; type CreateOptions = { - backendUrl: string; - basePath: string; - + discoveryApi: DiscoveryApi; oauthRequestApi: OAuthRequestApi; environment?: string; @@ -64,15 +66,13 @@ const SCOPE_PREFIX = ''; class OAuth2 implements OAuthApi, OpenIdConnectApi, ProfileInfoApi, SessionStateApi { static create({ - backendUrl, - basePath, + discoveryApi, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - backendUrl, - basePath, + discoveryApi, environment, provider, oauthRequestApi: oauthRequestApi, diff --git a/packages/core-api/src/apis/implementations/auth/okta/OktaAuth.ts b/packages/core-api/src/apis/implementations/auth/okta/OktaAuth.ts index f60b182118..1f804748f0 100644 --- a/packages/core-api/src/apis/implementations/auth/okta/OktaAuth.ts +++ b/packages/core-api/src/apis/implementations/auth/okta/OktaAuth.ts @@ -28,15 +28,17 @@ import { AuthRequestOptions, BackstageIdentity, } from '../../../definitions/auth'; -import { OAuthRequestApi, AuthProvider } from '../../../definitions'; +import { + OAuthRequestApi, + AuthProvider, + DiscoveryApi, +} from '../../../definitions'; import { SessionManager } from '../../../../lib/AuthSessionManager/types'; import { RefreshingAuthSessionManager } from '../../../../lib/AuthSessionManager'; import { Observable } from '../../../../types'; type CreateOptions = { - backendUrl: string; - basePath: string; - + discoveryApi: DiscoveryApi; oauthRequestApi: OAuthRequestApi; environment?: string; @@ -80,15 +82,13 @@ class OktaAuth BackstageIdentityApi, SessionStateApi { static create({ - backendUrl, - basePath, + discoveryApi, environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, }: CreateOptions) { const connector = new DefaultAuthConnector({ - backendUrl, - basePath, + discoveryApi, environment, provider, oauthRequestApi: oauthRequestApi, diff --git a/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.test.ts b/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.test.ts index b6c31405ae..5781130799 100644 --- a/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.test.ts +++ b/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.test.ts @@ -18,11 +18,12 @@ import ProviderIcon from '@material-ui/icons/AcUnit'; import { DefaultAuthConnector } from './DefaultAuthConnector'; import MockOAuthApi from '../../apis/implementations/OAuthRequestApi/MockOAuthApi'; import * as loginPopup from '../loginPopup'; +import { UrlPatternDiscovery } from '../../apis'; const anyFetch = fetch as any; const defaultOptions = { - backendUrl: 'http://my-origin', + discoveryApi: UrlPatternDiscovery.compile('http://my-host/api/{{pluginId}}'), environment: 'production', provider: { id: 'my-provider', @@ -115,7 +116,7 @@ describe('DefaultAuthConnector', () => { expect(popupSpy).toBeCalledTimes(1); expect(popupSpy.mock.calls[0][0]).toMatchObject({ url: - 'http://my-origin/api/auth/my-provider/start?scope=a%20b&env=production', + 'http://my-host/api/auth/my-provider/start?scope=a%20b&env=production', }); await expect(sessionPromise).resolves.toEqual({ @@ -141,9 +142,9 @@ describe('DefaultAuthConnector', () => { instantPopup: true, }); - expect(popupSpy).toBeCalledTimes(1); - await expect(sessionPromise).resolves.toBe('my-session'); + + expect(popupSpy).toBeCalledTimes(1); }); it('should use join func to join scopes', async () => { @@ -164,7 +165,7 @@ describe('DefaultAuthConnector', () => { expect(popupSpy).toBeCalledTimes(1); expect(popupSpy.mock.calls[0][0]).toMatchObject({ url: - 'http://my-origin/api/auth/my-provider/start?scope=-ab-&env=production', + 'http://my-host/api/auth/my-provider/start?scope=-ab-&env=production', }); }); }); diff --git a/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.ts b/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.ts index 41af7f4670..1c7e92daa8 100644 --- a/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.ts +++ b/packages/core-api/src/lib/AuthConnector/DefaultAuthConnector.ts @@ -15,21 +15,19 @@ */ import { AuthRequester } from '../../apis'; -import { OAuthRequestApi, AuthProvider } from '../../apis/definitions'; +import { + OAuthRequestApi, + AuthProvider, + DiscoveryApi, +} from '../../apis/definitions'; import { showLoginPopup } from '../loginPopup'; import { AuthConnector, CreateSessionOptions } from './types'; -const DEFAULT_BASE_PATH = '/api/auth/'; - type Options = { /** - * The base URL of the auth backend. + * DiscoveryApi instance used to locate the auth backend endpoint. */ - backendUrl?: string; - /** - * Base path of the auth requests, defaults to /api/auth/ - */ - basePath?: string; + discoveryApi: DiscoveryApi; /** * Environment hint passed on to auth backend, for example 'production' or 'development' */ @@ -64,8 +62,7 @@ function defaultJoinScopes(scopes: Set) { */ export class DefaultAuthConnector implements AuthConnector { - private readonly backendUrl: string; - private readonly basePath: string; + private readonly discoveryApi: DiscoveryApi; private readonly environment: string; private readonly provider: AuthProvider & { id: string }; private readonly joinScopesFunc: (scopes: Set) => string; @@ -74,8 +71,7 @@ export class DefaultAuthConnector constructor(options: Options) { const { - backendUrl = window.location.origin, - basePath = DEFAULT_BASE_PATH, + discoveryApi, environment, provider, joinScopes = defaultJoinScopes, @@ -88,8 +84,7 @@ export class DefaultAuthConnector onAuthRequest: scopes => this.showPopup(scopes), }); - this.backendUrl = backendUrl; - this.basePath = basePath; + this.discoveryApi = discoveryApi; this.environment = environment; this.provider = provider; this.joinScopesFunc = joinScopes; @@ -104,12 +99,15 @@ export class DefaultAuthConnector } async refreshSession(): Promise { - const res = await fetch(this.buildUrl('/refresh', { optional: true }), { - headers: { - 'x-requested-with': 'XMLHttpRequest', + const res = await fetch( + await this.buildUrl('/refresh', { optional: true }), + { + headers: { + 'x-requested-with': 'XMLHttpRequest', + }, + credentials: 'include', }, - credentials: 'include', - }).catch(error => { + ).catch(error => { throw new Error(`Auth refresh request failed, ${error}`); }); @@ -134,7 +132,7 @@ export class DefaultAuthConnector } async removeSession(): Promise { - const res = await fetch(this.buildUrl('/logout'), { + const res = await fetch(await this.buildUrl('/logout'), { method: 'POST', headers: { 'x-requested-with': 'XMLHttpRequest', @@ -153,13 +151,12 @@ export class DefaultAuthConnector private async showPopup(scopes: Set): Promise { const scope = this.joinScopesFunc(scopes); - const popupUrl = this.buildUrl('/start', { scope }); - const { origin } = new URL(this.backendUrl); + const popupUrl = await this.buildUrl('/start', { scope }); const payload = await showLoginPopup({ url: popupUrl, name: `${this.provider.title} Login`, - origin, + origin: new URL(popupUrl).origin, width: 450, height: 730, }); @@ -167,16 +164,17 @@ export class DefaultAuthConnector return await this.sessionTransform(payload); } - private buildUrl( + private async buildUrl( path: string, query?: { [key: string]: string | boolean | undefined }, - ): string { + ): Promise { + const baseUrl = await this.discoveryApi.getBaseUrl('auth'); const queryString = this.buildQueryString({ ...query, env: this.environment, }); - return `${this.backendUrl}${this.basePath}${this.provider.id}${path}${queryString}`; + return `${baseUrl}/${this.provider.id}${path}${queryString}`; } private buildQueryString(query?: { diff --git a/packages/dev-utils/src/devApp/apiFactories.ts b/packages/dev-utils/src/devApp/apiFactories.ts index 5acf64e0d0..4cf208f5d2 100644 --- a/packages/dev-utils/src/devApp/apiFactories.ts +++ b/packages/dev-utils/src/devApp/apiFactories.ts @@ -24,6 +24,8 @@ import { AlertApiForwarder, oauthRequestApiRef, OAuthRequestManager, + UrlPatternDiscovery, + discoveryApiRef, GoogleAuth, googleAuthApiRef, GithubAuth, @@ -58,46 +60,49 @@ export const oauthRequestApiFactory = createApiFactory({ factory: () => new OAuthRequestManager(), }); +export const discoveryApiFactory = createApiFactory({ + implements: discoveryApiRef, + deps: {}, + factory: () => + UrlPatternDiscovery.compile(`http://localhost:7000/{{ pluginId }}`), +}); + export const googleAuthApiFactory = createApiFactory({ implements: googleAuthApiRef, - deps: { oauthRequestApi: oauthRequestApiRef }, - factory: ({ oauthRequestApi }) => + deps: { discoveryApi: discoveryApiRef, oauthRequestApi: oauthRequestApiRef }, + factory: ({ discoveryApi, oauthRequestApi }) => GoogleAuth.create({ - backendUrl: 'http://localhost:7000', - basePath: '/auth/', + discoveryApi, oauthRequestApi, }), }); export const githubAuthApiFactory = createApiFactory({ implements: githubAuthApiRef, - deps: { oauthRequestApi: oauthRequestApiRef }, - factory: ({ oauthRequestApi }) => + deps: { discoveryApi: discoveryApiRef, oauthRequestApi: oauthRequestApiRef }, + factory: ({ discoveryApi, oauthRequestApi }) => GithubAuth.create({ - backendUrl: 'http://localhost:7000', - basePath: '/auth/', + discoveryApi, oauthRequestApi, }), }); export const gitlabAuthApiFactory = createApiFactory({ implements: gitlabAuthApiRef, - deps: { oauthRequestApi: oauthRequestApiRef }, - factory: ({ oauthRequestApi }) => + deps: { discoveryApi: discoveryApiRef, oauthRequestApi: oauthRequestApiRef }, + factory: ({ discoveryApi, oauthRequestApi }) => GitlabAuth.create({ - backendUrl: 'http://localhost:7000', - basePath: '/auth/', + discoveryApi, oauthRequestApi, }), }); export const auth0AuthApiFactory = createApiFactory({ implements: auth0AuthApiRef, - deps: { oauthRequestApi: oauthRequestApiRef }, - factory: ({ oauthRequestApi }) => + deps: { discoveryApi: discoveryApiRef, oauthRequestApi: oauthRequestApiRef }, + factory: ({ discoveryApi, oauthRequestApi }) => Auth0Auth.create({ - backendUrl: 'http://localhost:7000', - basePath: '/auth/', + discoveryApi, oauthRequestApi, }), }); diff --git a/plugins/gitops-profiles/src/components/ProfileCatalog/ProfileCatalog.test.tsx b/plugins/gitops-profiles/src/components/ProfileCatalog/ProfileCatalog.test.tsx index a502f6fb4e..06074ff84d 100644 --- a/plugins/gitops-profiles/src/components/ProfileCatalog/ProfileCatalog.test.tsx +++ b/plugins/gitops-profiles/src/components/ProfileCatalog/ProfileCatalog.test.tsx @@ -26,6 +26,7 @@ import { githubAuthApiRef, GithubAuth, OAuthRequestManager, + UrlPatternDiscovery, } from '@backstage/core'; import { gitOpsApiRef, GitOpsRestApi } from '../../api'; @@ -37,8 +38,9 @@ describe('ProfileCatalog', () => { [ githubAuthApiRef, GithubAuth.create({ - backendUrl: 'http://localhost:7000', - basePath: '/auth/', + discoveryApi: UrlPatternDiscovery.compile( + 'http://example.com/{{pluginId}}', + ), oauthRequestApi, }), ], From b253c56526929b2515abb75798d0fa03a44a8663 Mon Sep 17 00:00:00 2001 From: Chris Simmons Date: Fri, 21 Aug 2020 15:46:17 +1200 Subject: [PATCH 105/656] add microsoft azure auth provider + add to example app --- app-config.yaml | 13 + packages/app/src/apis.ts | 16 +- packages/app/src/identityProviders.ts | 7 + .../core-api/src/apis/definitions/auth.ts | 18 ++ .../src/apis/implementations/auth/index.ts | 1 + .../auth/microsoft/MicrosoftAuth.ts | 172 ++++++++++++ .../implementations/auth/microsoft/index.ts | 18 ++ .../implementations/auth/microsoft/types.ts | 28 ++ .../core/src/layout/Sidebar/UserSettings.tsx | 8 + plugins/auth-backend/README.md | 35 +++ plugins/auth-backend/package.json | 3 + .../auth-backend/src/providers/factories.ts | 2 + .../src/providers/microsoft/index.ts | 17 ++ .../src/providers/microsoft/provider.ts | 257 ++++++++++++++++++ yarn.lock | 159 +++++++++++ 15 files changed, 753 insertions(+), 1 deletion(-) create mode 100644 packages/core-api/src/apis/implementations/auth/microsoft/MicrosoftAuth.ts create mode 100644 packages/core-api/src/apis/implementations/auth/microsoft/index.ts create mode 100644 packages/core-api/src/apis/implementations/auth/microsoft/types.ts create mode 100644 plugins/auth-backend/src/providers/microsoft/index.ts create mode 100644 plugins/auth-backend/src/providers/microsoft/provider.ts diff --git a/app-config.yaml b/app-config.yaml index 01e2ff33fe..5792ea2eb5 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -122,3 +122,16 @@ auth: domain: $secret: env: AUTH_AUTH0_DOMAIN + microsoft: + development: + appOrigin: "http://localhost:3000/" + secure: false + clientId: + $secret: + env: AUTH_AZURE_CLIENT_ID + clientSecret: + $secret: + env: AUTH_AZURE_CLIENT_SECRET + tenantId: + $secret: + env: AUTH_AZURE_TENANT_ID \ No newline at end of file diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index df023b80cb..cb2a65b64a 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -30,6 +30,7 @@ import { OktaAuth, GitlabAuth, Auth0Auth, + MicrosoftAuth, oauthRequestApiRef, OAuthRequestManager, googleAuthApiRef, @@ -38,6 +39,7 @@ import { oktaAuthApiRef, gitlabAuthApiRef, auth0AuthApiRef, + microsoftAuthApiRef, storageApiRef, WebStorage, } from '@backstage/core'; @@ -74,7 +76,10 @@ import { TravisCIApi, travisCIApiRef, } from '@roadiehq/backstage-plugin-travis-ci'; -import { GithubPullRequestsClient, githubPullRequestsApiRef } from '@roadiehq/backstage-plugin-github-pull-requests'; +import { + GithubPullRequestsClient, + githubPullRequestsApiRef, +} from '@roadiehq/backstage-plugin-github-pull-requests'; export const apis = (config: ConfigApi) => { // eslint-disable-next-line no-console @@ -122,6 +127,15 @@ export const apis = (config: ConfigApi) => { }), ); + builder.add( + microsoftAuthApiRef, + MicrosoftAuth.create({ + backendUrl, + basePath: '/auth/', + oauthRequestApi, + }), + ); + const githubAuthApi = builder.add( githubAuthApiRef, GithubAuth.create({ diff --git a/packages/app/src/identityProviders.ts b/packages/app/src/identityProviders.ts index e80b1d6fea..0ae98cf971 100644 --- a/packages/app/src/identityProviders.ts +++ b/packages/app/src/identityProviders.ts @@ -19,6 +19,7 @@ import { gitlabAuthApiRef, oktaAuthApiRef, githubAuthApiRef, + microsoftAuthApiRef, } from '@backstage/core'; export const providers = [ @@ -28,6 +29,12 @@ export const providers = [ message: 'Sign In using Google', apiRef: googleAuthApiRef, }, + { + id: 'microsoft-auth-provider', + title: 'Microsoft', + message: 'Sign In using Microsoft Azure AD', + apiRef: microsoftAuthApiRef, + }, { id: 'gitlab-auth-provider', title: 'Gitlab', diff --git a/packages/core-api/src/apis/definitions/auth.ts b/packages/core-api/src/apis/definitions/auth.ts index a1a408fece..b26b23ce08 100644 --- a/packages/core-api/src/apis/definitions/auth.ts +++ b/packages/core-api/src/apis/definitions/auth.ts @@ -277,6 +277,24 @@ export const auth0AuthApiRef = createApiRef< description: 'Provides authentication towards Auth0 APIs', }); +/** + * Provides authentication towards Microsoft APIs and identities. + * + * For more info and a full list of supported scopes, see: + * - https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent + * - https://docs.microsoft.com/en-us/graph/permissions-reference + */ +export const microsoftAuthApiRef = createApiRef< + OAuthApi & + OpenIdConnectApi & + ProfileInfoApi & + BackstageIdentityApi & + SessionStateApi +>({ + id: 'core.auth.microsoft', + description: 'Provides authentication towards Microsoft APIs and identities', +}); + /** * Provides authentication for custom identity providers. */ diff --git a/packages/core-api/src/apis/implementations/auth/index.ts b/packages/core-api/src/apis/implementations/auth/index.ts index ce6e0d8570..a6d7e2c989 100644 --- a/packages/core-api/src/apis/implementations/auth/index.ts +++ b/packages/core-api/src/apis/implementations/auth/index.ts @@ -20,3 +20,4 @@ export * from './google'; export * from './oauth2'; export * from './okta'; export * from './auth0'; +export * from './microsoft'; diff --git a/packages/core-api/src/apis/implementations/auth/microsoft/MicrosoftAuth.ts b/packages/core-api/src/apis/implementations/auth/microsoft/MicrosoftAuth.ts new file mode 100644 index 0000000000..d4a70995e3 --- /dev/null +++ b/packages/core-api/src/apis/implementations/auth/microsoft/MicrosoftAuth.ts @@ -0,0 +1,172 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 MicrosoftIcon from '@material-ui/icons/AcUnit'; +import { DefaultAuthConnector } from '../../../../lib/AuthConnector'; +import { MicrosoftSession } from './types'; + +import { + OAuthApi, + OpenIdConnectApi, + ProfileInfoApi, + ProfileInfo, + SessionStateApi, + SessionState, + BackstageIdentityApi, + AuthRequestOptions, + BackstageIdentity, +} from '../../../definitions/auth'; + +import { OAuthRequestApi, AuthProvider } from '../../../definitions'; +import { SessionManager } from '../../../../lib/AuthSessionManager/types'; +import { RefreshingAuthSessionManager } from '../../../../lib/AuthSessionManager'; +import { Observable } from '../../../../types'; + +type CreateOptions = { + backendUrl: string; + basePath: string; + + oauthRequestApi: OAuthRequestApi; + + environment?: string; + provider?: AuthProvider & { id: string }; +}; + +export type MicrosoftAuthResponse = { + providerInfo: { + accessToken: string; + idToken: string; + scope: string; + expiresInSeconds: number; + }; + profile: ProfileInfo; + backstageIdentity: BackstageIdentity; +}; + +const DEFAULT_PROVIDER = { + id: 'microsoft', + title: 'Microsoft', + icon: MicrosoftIcon, +}; + +class MicrosoftAuth + implements + OAuthApi, + OpenIdConnectApi, + ProfileInfoApi, + BackstageIdentityApi, + SessionStateApi { + static create({ + backendUrl, + basePath, + environment = 'development', + provider = DEFAULT_PROVIDER, + oauthRequestApi, + }: CreateOptions) { + const connector = new DefaultAuthConnector({ + backendUrl, + basePath, + environment, + provider, + oauthRequestApi: oauthRequestApi, + sessionTransform(res: MicrosoftAuthResponse): MicrosoftSession { + return { + ...res, + providerInfo: { + idToken: res.providerInfo.idToken, + accessToken: res.providerInfo.accessToken, + scopes: MicrosoftAuth.normalizeScopes(res.providerInfo.scope), + expiresAt: new Date( + Date.now() + res.providerInfo.expiresInSeconds * 1000, + ), + }, + }; + }, + }); + + const sessionManager = new RefreshingAuthSessionManager({ + connector, + defaultScopes: new Set([ + 'openid', + 'offline_access', + 'profile', + 'email', + 'User.Read', + ]), + sessionScopes: (session: MicrosoftSession) => session.providerInfo.scopes, + sessionShouldRefresh: (session: MicrosoftSession) => { + const expiresInSec = + (session.providerInfo.expiresAt.getTime() - Date.now()) / 1000; + return expiresInSec < 60 * 5; + }, + }); + + return new MicrosoftAuth(sessionManager); + } + + sessionState$(): Observable { + return this.sessionManager.sessionState$(); + } + + constructor( + private readonly sessionManager: SessionManager, + ) {} + + async getAccessToken( + scope?: string | string[], + options?: AuthRequestOptions, + ) { + const session = await this.sessionManager.getSession({ + ...options, + scopes: MicrosoftAuth.normalizeScopes(scope), + }); + return session?.providerInfo.accessToken ?? ''; + } + + async getIdToken(options: AuthRequestOptions = {}) { + const session = await this.sessionManager.getSession(options); + return session?.providerInfo.idToken ?? ''; + } + + async logout() { + await this.sessionManager.removeSession(); + } + + async getBackstageIdentity( + options: AuthRequestOptions = {}, + ): Promise { + const session = await this.sessionManager.getSession(options); + return session?.backstageIdentity; + } + + async getProfile(options: AuthRequestOptions = {}) { + const session = await this.sessionManager.getSession(options); + return session?.profile; + } + + static normalizeScopes(scopes?: string | string[]): Set { + if (!scopes) { + return new Set(); + } + + const scopeList = Array.isArray(scopes) + ? scopes + : scopes.split(/[\s|,]/).filter(Boolean); + + return new Set(scopeList); + } +} +export default MicrosoftAuth; diff --git a/packages/core-api/src/apis/implementations/auth/microsoft/index.ts b/packages/core-api/src/apis/implementations/auth/microsoft/index.ts new file mode 100644 index 0000000000..e3ae4ee4f1 --- /dev/null +++ b/packages/core-api/src/apis/implementations/auth/microsoft/index.ts @@ -0,0 +1,18 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 * from './types'; +export { default as MicrosoftAuth } from './MicrosoftAuth'; diff --git a/packages/core-api/src/apis/implementations/auth/microsoft/types.ts b/packages/core-api/src/apis/implementations/auth/microsoft/types.ts new file mode 100644 index 0000000000..6eaf92808a --- /dev/null +++ b/packages/core-api/src/apis/implementations/auth/microsoft/types.ts @@ -0,0 +1,28 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { ProfileInfo, BackstageIdentity } from '../../../definitions'; + +export type MicrosoftSession = { + providerInfo: { + idToken: string; + accessToken: string; + scopes: Set; + expiresAt: Date; + }; + profile: ProfileInfo; + backstageIdentity: BackstageIdentity; +}; diff --git a/packages/core/src/layout/Sidebar/UserSettings.tsx b/packages/core/src/layout/Sidebar/UserSettings.tsx index e69d63186d..fbfdea9085 100644 --- a/packages/core/src/layout/Sidebar/UserSettings.tsx +++ b/packages/core/src/layout/Sidebar/UserSettings.tsx @@ -21,6 +21,7 @@ import { identityApiRef, oauth2ApiRef, oktaAuthApiRef, + microsoftAuthApiRef, useApi, configApiRef, } from '@backstage/core-api'; @@ -60,6 +61,13 @@ export function SidebarUserSettings() { icon={Star} /> )} + {providers.includes('microsoft') && ( + + )} {providers.includes('github') && ( , + ) => { + got + .get('https://graph.microsoft.com/v1.0/me/photos/48x48/$value', { + encoding: 'binary', + responseType: 'buffer', + headers: { + Authorization: `Bearer ${accessToken}`, + }, + }) + .then(photoData => { + const photoURL = `data:image/jpeg;base64,${Buffer.from( + photoData.body, + ).toString('base64')}`; + const authResponse = MicrosoftAuthProvider.transformAuthResponse( + accessToken, + params, + rawProfile, + photoURL, + ); + done(undefined, authResponse, { refreshToken }); + }) + .catch(error => { + console.log( + `Error retrieving user photo from Microsoft Graph API: ${error}`, + ); + const authResponse = MicrosoftAuthProvider.transformAuthResponse( + accessToken, + params, + rawProfile, + ); + done(undefined, authResponse, { refreshToken }); + }); + }, + ); + } + + async start( + req: express.Request, + options: Record, + ): Promise { + return await executeRedirectStrategy(req, this._strategy, options); + } + + async handler( + req: express.Request, + ): Promise<{ response: OAuthResponse; refreshToken: string }> { + const { response, privateInfo } = await executeFrameHandlerStrategy< + OAuthResponse, + PrivateInfo + >(req, this._strategy); + + return { + response: await this.populateIdentity(response), + refreshToken: privateInfo.refreshToken, + }; + } + + async refresh(refreshToken: string, scope: string): Promise { + const { accessToken, params } = await executeRefreshTokenStrategy( + this._strategy, + refreshToken, + scope, + ); + + const profile = await executeFetchUserProfileStrategy( + this._strategy, + accessToken, + params.id_token, + ); + const photo = await this.getUserPhoto(accessToken); + if (photo) { + profile.picture = photo; + } + + return this.populateIdentity({ + providerInfo: { + accessToken, + idToken: params.id_token, + expiresInSeconds: params.expires_in, + scope: params.scope, + }, + profile, + }); + } + + private getUserPhoto(accessToken: string): Promise { + return new Promise(resolve => { + got + .get('https://graph.microsoft.com/v1.0/me/photos/48x48/$value', { + encoding: 'binary', + responseType: 'buffer', + headers: { + Authorization: `Bearer ${accessToken}`, + }, + }) + .then(photoData => { + const photoURL = `data:image/jpeg;base64,${Buffer.from( + photoData.body, + ).toString('base64')}`; + resolve(photoURL); + }) + .catch(error => { + console.log( + `Error retrieving user photo from Microsoft Graph API: ${error}`, + ); + resolve(); + }); + }); + } + + private async populateIdentity( + response: OAuthResponse, + ): Promise { + const { profile } = response; + + if (!profile.email) { + throw new Error('Microsoft profile contained no email'); + } + + // Like Google implementation, setting this to local part of email for now + const id = profile.email.split('@')[0]; + + return { ...response, backstageIdentity: { id } }; + } +} + +export function createMicrosoftProvider( + config: AuthProviderConfig, + _: string, + envConfig: Config, + _logger: Logger, + tokenIssuer: TokenIssuer, +) { + const providerId = 'microsoft'; + + const clientId = envConfig.getString('clientId'); + const clientSecret = envConfig.getString('clientSecret'); + const tenantID = envConfig.getString('tenantId'); + + const callbackUrl = `${config.baseUrl}/${providerId}/handler/frame`; + const authorizationUrl = `https://login.microsoftonline.com/${tenantID}/oauth2/v2.0/authorize`; + const tokenUrl = `https://login.microsoftonline.com/${tenantID}/oauth2/v2.0/token`; + + const provider = new MicrosoftAuthProvider({ + clientId, + clientSecret, + callbackUrl, + authorizationUrl, + tokenUrl, + }); + + return OAuthProvider.fromConfig(config, provider, { + disableRefresh: false, + providerId, + tokenIssuer, + }); +} diff --git a/yarn.lock b/yarn.lock index 1a56d05251..8548561577 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3419,6 +3419,11 @@ resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== +"@sindresorhus/is@^3.0.0": + version "3.1.1" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.1.tgz#6e39e4222add8b362da35720c9dd5d53345d5851" + integrity sha512-tLnujxFtfH7F+i5ghUfgGlJsvyCKvUnSMFMlWybFdX9/DdX8svb4Zwx1gV0gkkVCHXtmPSetoAR3QlKfOld6Tw== + "@sinonjs/commons@^1.7.0": version "1.7.1" resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.1.tgz#da5fd19a5f71177a53778073978873964f49acf1" @@ -4302,6 +4307,13 @@ dependencies: defer-to-connect "^1.0.1" +"@szmarczak/http-timer@^4.0.5": + version "4.0.5" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" + integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== + dependencies: + defer-to-connect "^2.0.0" + "@testing-library/cypress@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@testing-library/cypress/-/cypress-6.0.0.tgz#935f7716e0e495f02fd753a42621e4d350097dce" @@ -4467,6 +4479,16 @@ "@types/connect" "*" "@types/node" "*" +"@types/cacheable-request@^6.0.1": + version "6.0.1" + resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" + integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + "@types/cheerio@^0.22.8": version "0.22.21" resolved "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.21.tgz#5e37887de309ba11b2e19a6e14cad7874b31a8a3" @@ -4739,6 +4761,11 @@ resolved "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b" integrity sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ== +"@types/http-cache-semantics@*": + version "4.0.0" + resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" + integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== + "@types/http-errors@^1.6.3": version "1.8.0" resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.0.tgz#682477dbbbd07cd032731cb3b0e7eaee3d026b69" @@ -4833,6 +4860,13 @@ resolved "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== +"@types/keyv@*": + version "3.1.1" + resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" + integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== + dependencies: + "@types/node" "*" + "@types/koa-compose@*": version "3.2.5" resolved "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" @@ -4976,6 +5010,13 @@ "@types/passport" "*" "@types/passport-oauth2" "*" +"@types/passport-microsoft@^0.0.0": + version "0.0.0" + resolved "https://registry.npmjs.org/@types/passport-microsoft/-/passport-microsoft-0.0.0.tgz#ba71bccdd793711239d6b02e8d5953c21abc1c8d" + integrity sha512-jfkltRosn+P/+RoFMTl+mCyBTgPTFhjDEF832j7fmlYpuf+5yuzPLz7Rm5XMKN/Gqpro6myCyGPTuCc4yBQ2jQ== + dependencies: + "@types/passport-oauth2" "*" + "@types/passport-oauth2@*": version "1.4.9" resolved "https://registry.npmjs.org/@types/passport-oauth2/-/passport-oauth2-1.4.9.tgz#134007c4b505a82548c9cb19094c5baeb2205c92" @@ -5150,6 +5191,13 @@ dependencies: "@types/node" "*" +"@types/responselike@*", "@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + "@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" @@ -7389,6 +7437,11 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cacheable-lookup@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz#049fdc59dffdd4fc285e8f4f82936591bd59fec3" + integrity sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w== + cacheable-request@^2.1.1: version "2.1.4" resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" @@ -7415,6 +7468,19 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" +cacheable-request@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" + integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^2.0.0" + cachedir@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" @@ -9100,6 +9166,13 @@ decompress-response@^4.2.0: dependencies: mimic-response "^2.0.0" +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" @@ -9215,6 +9288,11 @@ defer-to-connect@^1.0.1: resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +defer-to-connect@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" + integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== + 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" @@ -11853,6 +11931,23 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" +got@^11.5.2: + version "11.5.2" + resolved "https://registry.npmjs.org/got/-/got-11.5.2.tgz#772e3f3a06d9c7589c7c94dc3c83cdb31ddbf742" + integrity sha512-yUhpEDLeuGiGJjRSzEq3kvt4zJtAcjKmhIiwNp/eUs75tRlXfWcHo5tcBaMQtnjHWC7nQYT5HkY/l0QOQTkVww== + dependencies: + "@sindresorhus/is" "^3.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.1" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.0" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + got@^7.0.0: version "7.1.0" resolved "https://registry.npmjs.org/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" @@ -12554,6 +12649,14 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" +http2-wrapper@^1.0.0-beta.5.0: + version "1.0.0-beta.5.2" + resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" + integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" @@ -14292,6 +14395,11 @@ json-buffer@3.0.0: resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -14547,6 +14655,13 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" +keyv@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.0.1.tgz#9fe703cb4a94d6d11729d320af033307efd02ee6" + integrity sha512-xz6Jv6oNkbhrFCvCP7HQa8AaII8y8LRpoSm661NOKLr4uHuBwhX4epXrPQgF3+xdJnN4Esm5X0xwY4bOlALOtw== + dependencies: + json-buffer "3.0.1" + killable@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" @@ -15738,6 +15853,11 @@ mimic-response@^2.0.0: resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + min-document@^2.19.0: version "2.19.0" resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -16870,6 +16990,11 @@ p-cancelable@^1.0.0: resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== +p-cancelable@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" + integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== + 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" @@ -17253,6 +17378,14 @@ passport-google-oauth20@^2.0.0: dependencies: passport-oauth2 "1.x.x" +passport-microsoft@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/passport-microsoft/-/passport-microsoft-0.1.0.tgz#dc72c1a38b294d74f4dc55fe93f52e25cb9aa5b4" + integrity sha512-0giBDgE1fnR5X84zJZkQ11hnKVrzEgViwRO6RGsormK9zTxFQmN/UHMTDbIpvhk989VqALewB6Pk1R5vNr3GHw== + dependencies: + passport-oauth2 "1.2.0" + pkginfo "0.2.x" + passport-oauth1@1.x.x: version "1.1.0" resolved "https://registry.npmjs.org/passport-oauth1/-/passport-oauth1-1.1.0.tgz#a7de988a211f9cf4687377130ea74df32730c918" @@ -17262,6 +17395,15 @@ passport-oauth1@1.x.x: passport-strategy "1.x.x" utils-merge "1.x.x" +passport-oauth2@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.2.0.tgz#49613a3eca85c7a1e65bf1019e2b6b80a10c8ac2" + integrity sha1-SWE6PsqFx6HmW/EBnitrgKEMisI= + dependencies: + oauth "0.9.x" + passport-strategy "1.x.x" + uid2 "0.0.x" + passport-oauth2@1.x.x, passport-oauth2@^1.4.0, passport-oauth2@^1.5.0: version "1.5.0" resolved "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.5.0.tgz#64babbb54ac46a4dcab35e7f266ed5294e3c4108" @@ -18539,6 +18681,11 @@ quick-lru@^4.0.1: resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + raf-schd@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.2.tgz#bd44c708188f2e84c810bf55fcea9231bcaed8a0" @@ -19682,6 +19829,11 @@ resize-observer-polyfill@^1.5.1: resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== +resolve-alpn@^1.0.0: + version "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" @@ -19745,6 +19897,13 @@ responselike@1.0.2, responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" +responselike@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" + integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + dependencies: + lowercase-keys "^2.0.0" + restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" From d4a6bc55042cc94c8f791b8f4e1ed13f63ba5786 Mon Sep 17 00:00:00 2001 From: Chris Simmons Date: Fri, 21 Aug 2020 16:32:04 +1200 Subject: [PATCH 106/656] udpated env vars to match provider name --- app-config.yaml | 6 +++--- plugins/auth-backend/README.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index 5792ea2eb5..8a0199e30a 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -128,10 +128,10 @@ auth: secure: false clientId: $secret: - env: AUTH_AZURE_CLIENT_ID + env: AUTH_MICROSOFT_CLIENT_ID clientSecret: $secret: - env: AUTH_AZURE_CLIENT_SECRET + env: AUTH_MICROSOFT_CLIENT_SECRET tenantId: $secret: - env: AUTH_AZURE_TENANT_ID \ No newline at end of file + env: AUTH_MICROSOFT_TENANT_ID \ No newline at end of file diff --git a/plugins/auth-backend/README.md b/plugins/auth-backend/README.md index 3f8b793503..e1d144c1e0 100644 --- a/plugins/auth-backend/README.md +++ b/plugins/auth-backend/README.md @@ -103,9 +103,9 @@ The secret value will then be displayed on the screen. **You will not be able to ```bash cd packages/backend -export AUTH_AZURE_CLIENT_ID=x -export AUTH_AZURE_CLIENT_SECRET=x -export AUTH_AZURE_TENANT_ID=x +export AUTH_MICROSOFT_CLIENT_ID=x +export AUTH_MICROSOFT_CLIENT_SECRET=x +export AUTH_MICROSOFT_TENANT_ID=x yarn start ``` From 8a317bfa1c068baf068106d8aca7986b677ecf09 Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Thu, 20 Aug 2020 16:59:01 +0200 Subject: [PATCH 107/656] feat: support passing --inspect to backend:dev This allows to debug the nodejs instance. --- packages/cli/src/commands/backend/dev.ts | 2 ++ packages/cli/src/index.ts | 1 + packages/cli/src/lib/bundler/backend.ts | 6 +++++- packages/cli/src/lib/bundler/config.ts | 5 ++++- packages/cli/src/lib/bundler/types.ts | 4 +++- 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/cli/src/commands/backend/dev.ts b/packages/cli/src/commands/backend/dev.ts index 91c08af201..a0752b94ed 100644 --- a/packages/cli/src/commands/backend/dev.ts +++ b/packages/cli/src/commands/backend/dev.ts @@ -25,9 +25,11 @@ export default async (cmd: Command) => { env: 'development', rootPaths: [paths.targetRoot, paths.targetDir], }); + const waitForExit = await serveBackend({ entry: 'src/index', checksEnabled: cmd.check, + inspectEnabled: cmd.inspect, config: ConfigReader.fromConfigs(appConfigs), appConfigs, }); diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 4b9dc4bab7..55ef639b2a 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -52,6 +52,7 @@ const main = (argv: string[]) => { .command('backend:dev') .description('Start local development server with HMR for the backend') .option('--check', 'Enable type checking and linting') + .option('--inspect', 'Enable debugger') .action(lazyAction(() => import('./commands/backend/dev'), 'default')); program diff --git a/packages/cli/src/lib/bundler/backend.ts b/packages/cli/src/lib/bundler/backend.ts index ce821a585b..f5f233854f 100644 --- a/packages/cli/src/lib/bundler/backend.ts +++ b/packages/cli/src/lib/bundler/backend.ts @@ -19,7 +19,11 @@ import { createBackendConfig } from './config'; import { resolveBundlingPaths } from './paths'; import { ServeOptions } from './types'; -export async function serveBackend(options: ServeOptions) { +export async function serveBackend( + options: ServeOptions & { + inspectEnabled: boolean; + }, +) { const paths = resolveBundlingPaths(options); const config = createBackendConfig(paths, { ...options, diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 8049ce436d..e0640b5133 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -200,7 +200,10 @@ export function createBackendConfig( : '[name].[chunkhash:8].chunk.js', }, plugins: [ - new StartServerPlugin('main.js'), + new StartServerPlugin({ + name: 'main.js', + nodeArgs: options.inspectEnabled ? ['--inspect'] : undefined, + }), new webpack.HotModuleReplacementPlugin(), ...(checksEnabled ? [ diff --git a/packages/cli/src/lib/bundler/types.ts b/packages/cli/src/lib/bundler/types.ts index 5d0ba66a51..03d68d9bb8 100644 --- a/packages/cli/src/lib/bundler/types.ts +++ b/packages/cli/src/lib/bundler/types.ts @@ -25,7 +25,9 @@ export type BundlingOptions = { baseUrl: URL; }; -export type BackendBundlingOptions = Omit; +export type BackendBundlingOptions = Omit & { + inspectEnabled: boolean; +}; export type ServeOptions = BundlingPathsOptions & { checksEnabled: boolean; From d63f777ee0d2f460e716873d7a3f9dabd5071658 Mon Sep 17 00:00:00 2001 From: Kat Zhou <61153904+katz95@users.noreply.github.com> Date: Fri, 21 Aug 2020 09:46:02 +0200 Subject: [PATCH 108/656] new design header for design documentation --- docs/assets/dls/designheader-updated.png | Bin 0 -> 155351 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/assets/dls/designheader-updated.png diff --git a/docs/assets/dls/designheader-updated.png b/docs/assets/dls/designheader-updated.png new file mode 100644 index 0000000000000000000000000000000000000000..56c5a56abbd65b857d61dbed59146ab428318196 GIT binary patch literal 155351 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

l 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%0DfCYtS)BFsPATpVa8`B_2Q; zn|be~kpsA?Q^f~~U0UeF;oP0v_n0RNbz(IqKZ_>o>xs%sdw<>HD;fwWs~tu!A;T}q zYiGi1$UheGeN`{ed~bbogzkK8nJRJDbspv_0JYrW!KNM4T^<~TfDQ^-?*-!x{Uu^0 zz1uMDg72@=Q?GW8+b5Mc;g4}neIOT(xQE!f(mdbt?N}+v)GHIJ1s+`c@ z8uTW4-SmJvv4^MT-X_XbCqt9dG?yNTf2X;R2;CfobEQnwC z0+ggU3g+!v$$|o&GKhy{UvFoJiunji9(1URC!2mtnQQCn@#fz@ErVfBHaB>R26pqR zHFN>uMm~sl$zCQNk-l=?)n%MnqZJ6HLP%p>JlfDU09WQWmiDP?6K3zw8Dh}V5q3YG z&x9vWg{CSdpFM^o(eutlWE3)7?FDu)bAGj#PpbW6j^9hS&=#iy5{e^kkO&xrWXFTf z9+&;a(sh`V!JJ!gSOnj~*w^XB&hD zW(u>6b z694u?mh;{}lFLt6l@?z;IF?rH2x#^SwjawL5exc zh7pR@?USXA206)TZ2deBFaS+Hk|fG$mcqfEAoX$ZvZ-18=T$YU_>LgS58_0Y$eY9g zIVE%x}+=na$B`GFC!h9r@9 z6z+uBTbWoDv=681n(y%1;QLsdTw&gXa_&&^=VYLf6&9+_f*o*huV(WC@L4xQfpW7! z*lybjX?IAZ+bKV*uwzr+vOVrIq6zkAH&_F`CZ}X+lGg@wN<3v}vqgVr--rpfQDiIW zY7AAk-)|Eyg&k*mSWqmO2vYC4jQ+2%IL_RN~ZJEu`O-(Dj;V@(3 z*NvqEI0fNm{Tj?#*{1Of)waL?GvlPqudpxsYN3Dkk_9;&MVS*qKv3kk{^Mfh$@0|h z*O{3{SY7L!UGT@5+r~q2{KK5?DQT$$ieID?XYXFRS16cplO}EzcslHd*;7IMpP(=6 z;x)Z{0&;jybU`=455C+11wz4*5#o2^cw?%{5fKEK)m4@$&5|AN<38pcgk4y8xcWp^ zHj*#aD|xFaUC;ecET!hGX%aJiOXBbXx_3D+SjBH#M|}Esq02t+ba14!wEEctPLr3~ zOK(5d7i1?yznyy}`l9bTNA#aRXiB#4!lWs$@!94MnKvK3XdZmRPE>EDmNiB-e)8^7 zU*r^Z!p~sdDfx%$rrdMw5_3N~m)qdH`Di^@Kuvd?()@|F-jkSID^7CTx~b7%}UhPzH@o z!jnp6+8>?rhB;&j|fcYguBEIVR9++l-i-*QJyK-4Krhh$yAF z-0H;=oCA-I>I8^HMr7$B=O#6`{wZ(wFb!Ys{RaJ$plSae2z`nFOqotk`AwAn?XheY z?m)%s{{YEf=0#Vu*GjsGVHkmyE5Dah#WVcRv|Eo>_H?rMcRz`W+~E7CVO8Yz%!oof z#pWNf`W)F{sxNaAQ!GNvuKveH)h0#JyM~nfkoAx|w|YcMUfzG6FbQd2UC&?~$(~G+ zz%{0Dl9_;HV=6C)f7nx*yTTBRkaz7PE>r~_MoekKEx8>kaY?<|bM9-&EsH|4PygI^ ziCud-5VVl8+bypAo-*ybs~_wio1V%ZQG=n56H3}yJ=xw8C}CPpLjPRw`_kkYhFYPr z33G+F)GHD{ByM&c0jW2md~T@8QjZShbVxo>(0H9#`CJb~_{ujUF$#QC%Y(G6q-p;9 zR(?%N$)X?Dxn6XXG%zZyoTXu$dI_GqE+Wi0m5$PUbiGn9VfXjRbY0*1EuSLGU}SKi zA$PV?D*ZOqDoe$O@ z?5bh%Q6wS1pW6GL-$nFdH?aOG{~Kb#U*+X1L2!#;<~Y)q$&vEE{(NX!fpJ~0lt{22 zKQCcmOvfK&YJF{8c=q4}s(9neW@CC-!lBSU&T)Ny1GLHswEFb6m3TrkBcA!^?2VL1 zHD)f65Dt+f*>?^fQXEh3(<-Xgw3Lr>$3M+KSKLVu$n5XG94$B_y!TSCY#=k!SyG^j zc$}#`X5kaY{WA0IZHV4r5_|Bkg|s_d+18A>K3)m+^&F|OIZt%M?_D(q$$I8nGJ$d@ z8FEXX85dvk2#OT|Wts<2Qi@~fW!wA*VEM0eJ*cf0(?~Tm! zTG%@7W0uAm={Kk`KCE_nwAflb(rn2Q))Pj;PqKzKIjE&JoP+O#>)5}lro`Sbf(6TmEqg3|IV>&xJ*_jSV zX8PJ8v)rOv>(GvOhvdl%Yf-{4eC#RqlMLuB50lx)gT6?US+~v6+?Nu3SxolC>)Chi z@w*nvQLgA7ZoE&*p;w5Exa5Z*A1%MXagBYh@25%e+wYcHg(BrH%pkTkvofaPkJY)N z^^IJ~RZg-+e6+Q+*zA=1U_ZMtCU4C?jx(nJ{#0MQ6?K~7<6!ySHObjHS*4&`{MI>( zXHM|Y7+X;18IRU@;BhH1d$MqPiD$guazFKxx0CRYMdBzLliXmLj_D;l)KbLVRVL%f zc83HKD?&m-h{)L!FDdB72kFdvot~z10ztck)D!GoG__ZQ=BS^}Bl{1|-$dSdFj0tR z={zsdmp%VJL(yDdf;Dq?9y?FY?MisEk9T8+N47r)$PvDFJqI#?iwGs_!eHMfVbfIS*2dJHINzf@EffgzDRpS4S_x z)K)wo7-E=E_Qo3fk5*Sh_S>gX2fKCXU@KsAhVwvO;(+Os{JXzwpViLH^}65fPaTXR zCZhHAJ(Sn3Sx0&D->vXf@C&i{c`fiv02XC0i3hzUoAvE8#cZrdNVCF6Bcm2=vtB;M zO)h!2349&}jUrv%Vq=s8MKFco%mG}^_Z80GfYu-b;_e4O#XXL4N*V}Z0|NupRk4iM zTlVGsrL+7;!oF0=eam}?Ok;nfV|sD#v*LUX*FeZNi&V8~s>~CS);rYq8QNFw|2T_0 zeheAe>lZ^u$Hc_oTYvitaeUOlI*8`2@yzU@u>4^GgA4?^rk8MoYC37NLpV-opDhv4!wlk5sbYm(8J-QH9(CLdd1@pEY+z`kW8FVYpkxa?63eE4x?Qk5(eqlWJXw zdKIFTakp|PH(_=qnYHF0t{zOEM6bS6kH5`#NW1=>_aZgh4W5mYK|ot2qi6Jdm_M5f1UE(SDG&RcW9S!3k&I-$GNqw)JVmxD!CN`B76>5e;wQrohX5}-o z@dno~*RQ3~P#z^xY%_bhva_=XTy~ugo_6T-nIF&-8|pHq4l_k6PZbxGZi@iZ;vuJ0 z#{1_d>9c9M=H817uUtLBBc{~hd+uE5xd!$)7zzI6Mj4}avV>=q)cmTxQ1wSO(N`m{ zBcmrH2*2R%{D2W3YRJSmH=J#)-=n6MFbLf~SnWyShL9^9u<0>gk9j}U3N&Pxgqz6_ zp0jIbI32q{`FACn)xm}FLLEPA{YQhT&~L94=2x#2n^{BiuK(acr?Wd0-`F#fbb1kR zQm$w$*-Io7yS6#&I?u_IhdL{R5-y~v5WWKfVjS%PdMD+A<8eNv=B*Ub{R6NDF)T_c zcdDvON|Y^QHn+f9<%=i!O;sJh21%}`@t+KuBitNsZ9HMJk1u+AEAEsQ!{l}gDObu) z{^T^2u(rVz+gcxV`LC3+6PF)vCsygJBH9$U6@U;P8=x-zz4f8Y-zS!{Nxe-vrcy|* z7QwRxo&dNkNx`pQzwlwpdSpjhH`)q{ihkg1AM=a!S%vD{R%DX!SH{!?s%@?p1fVt3!9OsQro z-d&G!!s8_$Vv)^r*#lBKtYz=e{tKidtYr8c!lM9u-Ho0>F_AX~ z5;8u8^*EkP93j}=+~0f<9y@2OReC5P~kO(nulXI)8;-hU)a`cAd+HSuK$c=7+KWu+^sC2*&2 zU?5ier^-(S4+Qh+=iS+dtMe%Ych>>JFeDoWRc3`iWQ?r|2Dxn;j@6Cwoi3`NgpjP) zix%e`r!G4Ic~d`gc)=^94&LD{Fm3p4?iqQ4shAoYXCCSK8K@Ec%y&RDYwZ9W;1_es zR4ZmZGlCfXx3aRbr8se3s41K}NN5q;%Ew)jL53;U6a9H7TsQ|B zW{I0zMADFVX2HIGm#hHa{B;YrN*?KM01ne9)XzO3W0FjGp(D}N0qw|)!i2c&5 zyL66fhckM9G*RD@Qp;~R$(LC{0bvERG7u>rztCgc8NLxI`b1B8Baha@Q;DGYDh`8p zBzIEm^b|=uUqFH9W1)Qi`@_|g0r$^0ZmCl2<2W|*3BY?=Pkx=%nit{#{=iE0$J{6K z4_4Pck5rzU%8DyGPirwJ@0$Kak2}3lFxBtM5gQ?j;p#rzksyO$V%_b7Nyn7cuB8#X zXHPU{#S-E}8x_(}W|R#FBU4CK-+1+~mU5aqE*<$}~RCYD%PSp~%6?59!1JsJ9r z&j5e=yg*iWr8Zxq7<{}bJR01*?#!IS+s4VPAPN1uGC}^jI(GjCg3*^8(tO2a zXlG%O3mIgnY?|OUXw-#3vRbAj1yuk3;zHokHy$$4H2iHt7_5PVi|bz1=2n)epow*J zgi>Tj3KS;#meor1M#Qj|@Tms==fkdIOwyjX0-z(JodZ<6vIl;-{hqdMnmtpTd*DBi zEOsjEU_UoN-j{-#wf(w;dtW`fu@rpP%f+~#Xpk=c^p`LxF$rXpfs0b-N%8cO2)gc(#1>C1e*27oT;PqP`Z$vNAF3}3=%|K!>l~E zTKBu@y(n*#L3@!UQ;7^Do(IYiclt<$no-Jx6PA|uB8J@q;w({()CuOi*waWu zY6Xop)bjZbCkch@($;icVJ)?#D}X2+K<{JNyw;mat-7pCg-f?a*)sOajIJX|M@9T@ z_VRZT?UgZ73JoY4*BaPB< z%%HTh>+^)wPz||kb(%G%xGEqh+>4dogrS{Z3@!799D~bS)~mPcsufU-mCR{XxJmYZ z3snt_a+g8TD3pfCro7&% zrHVS|&D6V>OVMn=J%p{}JsX7AEb-yJwP}e5Pz%uy&s+QhccRA_IaV7|YtKrJJE0r8 zEq_74tBN{xn_KMjY}oLbWK5xt?hlNL-7ovmko4y=%I_nsdCI6UoP@zoJ=8y<7=HuLYRSAQAQlj?}e7CQ1!m{ih<%aAy zvxvH%s6;iNPJ_AnrF^`<+=*-NHNOBA=;UiZYr=PppKWZ4j(mN-?yTNoX)!G?%7Nc% z9aE;7TzS~UF)ynlIu$P6hh7)Yt|Un}KsZ_0aU0awrH|%R`Fub;H7+J+#f+RZFHy%k zzVNL4rStkk^`I-MQdaw*NLcs~nxjL5|Jz{OYtl)g!WC}EHm)p9^5pfS(}D9_5OQWB zxv&?RTgarRd~3p>h+7Z^%WP@acenF_!Z-trT@6P7l%L2Zg@|<%3vzF@GQ<5c8D;7@ zUOd@&7WcENh@?so`-3)VUpHkQBof0UBDw{~k3^QE$loR&NQ_=2t@+R)W$gCX51YUq7p3dds7SnQS7wfq(p`Q5U6A z+;nwrSTtGn@#7h01s&t+85P}qH5yrO1rtW}#`C3uk8G7pMY%Q-H$PvkFX3KGjr!sI z`otU|zV@kKww&8qf)CN#$FvQ+Dujdyghpz=C)E>yUy8RTim6k27FEbUIZTdLhd&eX zdN(LXMn@zQWAh#67H&n}Y$NJj#x~$yNYaZ-0(=FBE}fimpQoH@FrZi;M1kQ89`p(X zZI^F{3gt0dNLVS!UdKGeySq8)bR@fEL4Bi5zy&ouN=DF;~0H9 z(G|tgKn;m|NLTYFO5{yy@SmH-Z?^e&IJ>fMw1I*C-$-d_XaZuL8=fsqm7CK^!9Lgg zwn(KaO5FV@>L@W0$hfU7`nsM~me{Xa|HsdnhZM1gv^nbXiP!Web@;hAjCp+*y=i!~ zT7$Cn%ig19Op#Ke%{cXiB8oF!eUU z@&qHRv%vn*YpqN=N%#!rBVpye1>c9y9kT&b_(xGs%4<~J*49?QtZ4)c4sSgAa0Sa& zOn$b_5%dVQ>4AuR>x$}BPZ^WVj?K%A2+lmZ>4s>4aj=`;Zi2*K9ElPQL z>XCJ+Dkb`?GFpzseT^qz!Q)QE`EEqP_+|kjb(aILNWf)CB{#0>n-`*vu!+&A z;D^ZDtK@h`wj{{%NP+43x3uRRjx~fN+L=2==%9DXnTxyoFl1&=6MH)mAJ)_rwri98 zQL7T&iq4V^&#{2Tz4Am8K{`0w6Sn1SZQUB)N1^8RmfaU~&Xsc>g5kwAYTST`y<1R% z>h1pRazr>-)7R8ro=p31ZVL3AeuJa}079Ma+88aDbLoxGb3Fo$iH?O%d$W3!eElgB zI%AjL)B2J4*FLe#TD$x(jCDH8SLi4JRX7<+Uys`hul$GMB{bqxVfcJ=GjHi(-P?@F zHu!pA0UD!ETO?Z`Kry40+9{s=$3=bXoTr`|a$m@}`-GD8Tbxfq2+XuGCZiE#-YWM^ zY1~~Rb4aaYoLfh-l}ON~%r3=e+e`yqR7#Ns?3;iw!9x$!eDbZYpuN5Qx1-){TCv1B z6N!Q>BD%gxmU1(zh@NZgVYI&I!C%&ca5+C2g%>1!j}uPC%A=n!_z72?jupczXF#+W zEx2BE?-ntMBe2prXNg%w6rWb&+n2NPXrl9U^lPGj;z@RkiuD2uC|uPY4=kQyufoE@ z9R5v91Jgs6PgH91*v^&fj*p%9A!6$e>6YhAR{m{LjBu8L&+uePno}_j^NlGTYf9Cq zXe48fpln`(Dp-bXMNl5omz6T%RbnjB@C5%Xr__)6pFd_#zrs(lnw8((TvREX=rP*= zWV!8^uqGUnWTXy$Zg59=ohLmqo^0y9EYr_ryHz0jvcVhM*xYPAnd-Nj&wIv!okO0Q zxeia1_E*lOtc7DVOm9{6Ro(CLNgy-1Vuy~Wm+ z6j$g-u=gKqa>L0~BI5@=+_AT+(+&LQB1X*TVyi@J0awWwV5FbzCax}>_I;|x`z2*( zjBFp&9q#4_NjsXcou+zBsh4W;o=dQ%;|@BqvrP$s&Z8 zf1sK{vRogne6!Ej^@v;UvA~uzg#6v8QW)Fy9FS?*>{) zxYyoR0SU4SJAI*dShRZxM$N6y0dneJ>Qf=NR}RYGA2+J*lp}Q%O{VP37sk;-CrUGwgr6fI<-SSTY&%n9qy!c+Z5fvwyr{0- zVOlR`w@85wp3^8p0z=Qp zNugDV_lFOyS#Cr~o&J=HJWB_I*qHXvC;3&#muf$c=9-USRD+ykqLxOcOBos@gHlW8 zkCM1@LUop+Bki7T01kheHyDB4BRyHE!ehv@WCs<6Z{6H+fl6R6X~l2IwCLF&i9WNeQ9dEj4He`&61DXo+x%>|PIWtKkB^UkJHnoo z{eZc>UQQ{0BZ=tswnBCiEZ8~ediO(zTSjTAO6ac7hDt{+8hBqi%gzB!NHBwNMDOM-z5A;q}3n}m>Lw2(V*j()G zv@*5wC1Ty{pH$PTiKfttIGB_a@5BQiye#lXr_v<-rI7LeX_)`_r%wBy3YMD3vK!}pL5+vB?&C%>1{%v_mdHGKPTH4SHc>7?(SNT!DqjGfPeA=`llpWKV>T+brROp^ z++^DT)jE|(;*&h;cGX1Jeyg)}?#Pi%jV$wzzV!_orZY8rHZTqZ7{{c47-lz*bN#hl z$6u3?`f>C@VfEZI>xsakTO=`rtqIsmlJ_IRTn~IL@=Hf9TzXr`x#v@zsRa({rxLkx z223Rk6(Bp=J(yjm7qfX3M4bf`Lh%!H`jJxO6BDG6de+(TWPjF=f;O>SdVHs>i5P|8 z?vmJoWu+wH^aX$mO8o-HIw*JDEq4c!H(rz+rDByPNB#o|uTgU>alYC?=z^R2G6{yD6My=mZnhDoBlY*1(+gP97W%k=f+*j%3`!f} zq=xT9&E{4be__gCanX1_R($VWt=-~F-((ZA)S~PY+BtzE*0x#ndxU&w|dFE;N=8zuV43eNwYR^t5GRuSZb29k8s);eiVmi z`J~3$$z5`^209&1o-?RVIe790FH%9zU|?D<+6#L93<@^ICsw!g`%6Dfi|0>uy1{Pq zl}Q0Pui|7Bu8HxlT*s@6GZiXd>!=ULQf|)@MgLe=<8o3NRh_g16T+D+HF+a2$5Uhlxe^a+j?1UkCi*-YhoF+;*F%fmaPs0{$P#-n<6hD zKg>u6PN{%nV(O2^$H$4gvd3{>hJ3Ei2H9qt9U(k*exrcL{VZQepX!dj&ZDsaQtIx5 z1Bdiv2g$6uFOZ9dUy0polGro+(1?YlK9M-rJrl-no7+?6{!%XMV(9OeJu_T*zLiZ+ z>z}44-wB#-%BpkTu?po%mC$6+W>Cbz>ZLU`!hc8QdD}K}1h@<}uXfH@!8M5mwt#)P zf;)%Sd=Fq8c8{zJyBh&G{GrTF@QSEPK|d^Joci89!jp;_aOU#v8;IFUAJ7Rk@pGz8 zzejnOJWEzBFWDJV5hb$JQhz$<`O8Ib&c6rlwIhy+GKO7~N&+S7XfOS+lU{>IV3Zk$sTJN9m(eM1nkBMJ;C%NeoAFRkPpq-KmQU z+nye4?1=Kwj%7Ymqs5g0b>Dq%NZF1?`y`MVws4LBBYuycFda9#zOZb1UBzo};RSA^ z>MR`WtIrtg<~^$hRg6BF5`#29&|^xGHTF6@|*j3WJq9p|4thTI^>Tn`{z2V%7`zMTcSxK++79Ec(Kwv#OB z-3ZWZmoh8jL9$AciyUD|JpjPy`$8$j-P{^mZJ3|EFpy0VuLr?YrH<>~y-&uA2#Ydk zQqjXx6rN>lc@fB5Rr2rfIMR!XRZ_q0Jrt6ZG+1u}SEzbSfC=+Zf>k|wY29@T-Gqf3 zom1Y_(0LP5r7kq4Wn%8mFb7bQB+!6>gsS?%EEQd3OM;~TZXg`j!g*8Yv~+Y1xgHQ) z&!JRKSE!F7=XPvFc6JsuOjs#hwahk z=I!&oUd3Z`4SOEM=WUXHu^;HI*;siFKbs4j=Ty$uSo21BZPfBJ8{3gujf-4V}j!nXvpZTwKqWD-Ix7dm-SnKet0%IL} zVdE)#YXR)L9^kMh*fKYE-kG&FySsPTk!ZkG4BOx)8+WAeK2FuBYf4==ThOg_q zy$LJlPp##(xU8TPrGK84bt7lv_ms2N7jKI*YRNO0ASpPYUr1%_?5ArfwkI#8HBBx; zv?~f5AdD~b$YubNgEP1xMFcHsh8pRkWtDISopICZMx*FEvJM4Y()Y(;A z?#W68XjV?nUyAuRgegg2(6$#7Si_R0_aib!VUFDA*7wkn_F^Yk@cZB1?%WcdsuI(l z=U!*$#TQY0)>=cFvqt63U< z2|MHCMH4Pgyvju4wK42MEcEQs?Bj`R4;nj-zLS+5L^D}N(il== z{%@?(Wns&e%*yQ1JT|kqlG*0b#M18o(qA&}#8F=Pq%g@Ky2;tSB(~Dd)hT_q$lbW2 z!mZ7|pT%uIc=ZyEkLNG`%6~eH|1_eh7ovgvt<+Re)DKT}K6WzIyG+G4VDm24m9E+r z;{O~P>PgUug#6J=-YSWwHY!L72pxOClEAyvnJV$r02{LvuwmJ;`3EV=3vW7!fKO>k znD%MTZrfg*rMd&7s-Ex^Qujt24SGAQaKjF^>Ia8gSf|>QGbb7=gs)wEHS-xrZ855} zc*@tpB|wyX^4L(MrMr)jU9wzwK*org@lS1)^ba*5>qIEyM{ zk7r7x+p)<%BTQZpGEp$HtJE%eYlW-cgGR9 zEltUGieNx{DJ-*yU?;k~K)X({1A}fdu-tEt==4{DT^NXZR9aBfqXZ06S`w&QFdPAr zhen=Sbq&Ji=Szv+zj$EY`+ZFaQ?h-kL+n7yu@R#2ul>jOj+{tA^@%4|)r)J7bptng z5C~al*jiVF{K%f>tT^>ayxCJ@=R@&V!8{N1v(aHfLdLp@C}M$*AC)i42hO|r_j8qw z4@8gn@C2rityF~<=StXD#6r%NyO)c2bB9v%qd(-w0u2i!F<0J`Wg=rt*X?q5(sFZc zkj#|I6wE<68(+^CS_t%B>wh~Nvis=eg{FXVDCe8$&0bJTo+7dNqn7GKQVELLtrO{0 z$GW(!mCt?Z(DBtQl?|PxP=ygPj&BhY(=LryIn+J4Uc$V;&1*v znbR+@ynMqD?(Ln4k~(@%P#HL|W~n!z;3suvV>u_M)1UugAr-OHc!*sW9aIsZR#j*z zOh8ZyTK%)gj}Q#Ioq3O8gFPS&!(z_00q^dw(y6|Tubh#;=tO&a@0CAzT9#5$l+p+$ zD2SmMzpZ-OVD6Z;DByfC#L$cKDl+SPU_ouHk6|=!v7;;zPoJ8y5x3*aLMut8@RK#A zn%!-EUv8FKDN7iRwz<&XNCe(3E5LUfZr4V{hlS~iH$%8_`#(JtULK1LpCh+s^$iE(!3*ON4VbwPs812e7kyjS?tV zD$kyWAGb6wSyqRNuUv_cIa!BT>M`}tkIn5{Jr}T@<*s80yEDbC)dKWjGXs0JruB)gnsTtsZ zu7j%21H=ySuYQd(4rnF%c~VBl-DtkFF)&zcL2+aA?oZ&Q1F(y*e{V zx-JJY_zuI>LGPM8>?sHpeDoJc$#c`SF;2Tl5E_1=e&<$(IqOXl6uV!2&*%v1%5^Us zXVL0ehl?gWKmCLGlVnk)BF;3?g7B!KTt4Ma))>%j#9*%&V0{P#5ge0xRo>#+b)Q$K zW7CC4y;{1%vedL(qley&n@ag9H}40N#addYR^dvf!E$T82P}n3zSes5`HA5-1(>q4 z5f;tR4#7 zTe$5z;v&$rTs||r}gJYIUNs$eS`RyGey;<^( zuP%0U$QDiTzs-|%jOOJAK7>wv8c!{ZMA15i>$`x3v0=P_QCBzS7{pIgXXi?M0nP67HLWww1|P3jU5tjlPL2 z6#jEq1_t0Rkig@2c!o*>Bx)6UAf3n8MP_z9%a(oqc|;rkzW>ky&}F^yh8Ce(Z@D90uYJQY|je1dVjq0 zLe%6|I%I`XD`EF1Il2XiCM z1#z+RGJWXdqV2@dnae-*nG(3NE$21rRj}TmjDSIE(ruBoohnA<=}s{1g%W`Egf^RP zs#{OR6%=A}A+aa9g~Jv!`H7&<+i4^#C!nXoty{zM_7#{uIG{>=Jx^Bc11B{i6BT?& z!2so`2qc6ewB%-M*MOffd5z#omnVSZEqE*1o z^8YzXA$eiCD!prfpcSy&QV;w9lY@GH-*$Pq63C2%88phW7oCdLgr@*(mrQwmnj7J2wWHOW;NN}5KzKZ=kw(D~f~_lijuQ+ZGz16z z3)kCZYg0Wo97k%qYf_IQOg`&tYd`dQ*xHqICM@s2pDR%E$QNB9*M|pnO8i3P1K-!r zHmkh1T><@^T_0h!8%;7OB!bBm5Ny@W6dNY0?6}-OojF}0IsfCtC<6M;_B;H|9;6*a z#p+l!u2N9abHndlL!_72$@Y{3Zr`+!FhqlU5N{%6SY*dE$pbT6$*dzG4C@ckQC$a@ z_#@21US;(Y(}m+7d3JkT0DEpdHemp(Y8YdaqViBp{PkxA0lUuQBegdhNR$xWc7XBc& zz<|J=59{Fx#WDAjZDhBNTkrHY1z zMo%CET=;MN{8kQGU4HHTkbdMR~qiACRS>U-~wUG-_clLQ#w(QG*hM!cHq8VBIo6DUMJ>aH3=Ql)E z%7baig!e~Y&#^!*ml_lcQ7F{ALdJmqn?a}Px(||0U_i1>(K+N4s0Fh8Z%09ZY6*&XL_ezfsIW0V5=H*E&tY_*3OfbBXGS!x_6$vv_Xla=}v z!uU+#2bwxg5S`q`M?oS3II)A=mAkL2nf@QHt~-$G_xoQWNl{XW(zu9ZWMzZ~b?v=p z%D6_xwP#ck%E-u0*|UtYNy#RgjIyphGw!v1=dI88pWpq*hfnvJ=Q+sFU-&_27@AY{^Sun7Jvhc8QOt03lxPuC{A}#EBcIY=~5=!j}DF@fGq9TFm7qJh! z(Wz{V8h;L9H5~b(0OfyX@E-3OgNdpHt|cqu!3vj*NK)yd5M)oFBc}GU^j@nHKwVBB z9!4P82WZ3cQ0vuCLS))AvQ*HAi>cp^QldCVf6^T>_rKE@7!kZixJssK>*?H(iwo!r zLEN2hDU*#_?j1B8RxBpv)9t?TAo1tT;>GnDSTo3G9c+dIY&Z859#5rLZ1TRdUZ_P= zYb1p7NF{DY^@%;BqD&(qsQm&U{?-}&?XJ;|AuoF`A0DRd~6 zQvx5}cczd>i3!eK^4vjNYc$e3zmztS+$@_kvW{oYoH?pje34-^O{m3?KB*3J+?d;s zI9EOI-%aHqV}LGEHjqk4W{KbLViis9H2ZHC*lxkMsXy6c*Kpa)6JjkCDe&ApWN86{ z_QW#ug)B=9O_xkB8ovG%!qx`qhp?M5J{@Kwh@l|=5*Fv&v^Vh+1Pwb6gJnS;lZzyJ zG$5VAiKtfIYqTmP^>V&62C9zt$b75ZiGM9Ytm@OJ)_mrI7Bk&^bYV@3S@Yoh`|d%^ zw7~!Uz1L?-bRk=T`nmqf6$(~HJZ2YF z-II&4X=5*!BjvQ2Kq`&apb_0zKQ@*U(q#i%OuRzDhhVA>7Q+T3(R2K?u@77{y2!Ty ztUoaiWaxj;(Bs2OMo~v!i5@2jk#M%Ia9+>_Oz6|5tc3q!HB2eWXarKQ>_Xxr+WPOkb!|fdUmnxBU?nz@CN#bP=fRGU>3= zXY=>885*?9UB?9*Ge(}tcXf8EmI8hN`<3?)Y2sk(Itd(%Y!Q;4v#^Tr@r{MmcfA#U zv!C+`E8t?tlg&Oq9*ug@)D6KpSc`Dww{K%dT}XqWlNTVUx5Y|@AR&P{h8&NBWw;+M z1{ioMJ&XjotKucjE;h>3W_M0ld0?myLswlSkwOkOC}OP}6VhD~q8u)QKE76AZDW&* zD$s~{QC3l*4?Srahoj$JzbZ(<;4v~N=L=|P`B8v|$mQnH{Avc?6?a@x5>E$f`1fBn zfQp8;YCeFpFnj{Ikm~>(0a?B7crp@zoQIjW#WSMcvvKs)GDTdX1P@%KMjHm?Mg!8; z_0X%|Fz+~umnu8}S+_xGV@umF2Czj`JaAVRd`2fGin-W^zKBh-ad+utd7BS6kDT2( z`6qa&BKNyAHYg7upQi^gPcETQC*(k;YbIa`w_+C4f9dJz6{=7cD9t>DIf>twsdQh@ z%F77u`TF&CsVBkViDd?1H`UM016e{|FEHV*6^Bps8;1Ln9Apk*LD@-8|274S^;vXo zem*^b=>qlOJTswF&P#e%=$GLz=IZrhAfA(uIwNOO@a40a7=#i0?P2cNDQ)-4>rm_s zK9CFOS?n&j=);lV!q>L?}nt4$&SRc#WI{$Wq=|e)ItB0wJ&u;hQlMV{6hKr_Gym0Is4sFTia#FAx}ggrd;S0Q{iZZQKud+rFb@Au|R z?9uW@akd0y6V>ZWSx$?Q_@IrG#;`SoUG-~zmJLMZlv~?h*igF{Ng}v2-KfWOYV`C+@=c0vF*#CorXJl#=LWwy z-ndD~Ta%E0l*dzbXTZ2S8L-5}#AdTm?O7&4RtN;KMW%J`j#b!(y#k8(e#-Hlxfm{x z0VEQY5sk3lW*FEqJk4q2P=omIPrCsl;}sg}4pvdGbDr7i^&}l2j`30oQqXZBTO&w z({sLi$`gLvnS@voe?%R-!x6|z-JV$-9ForOJ(PitX60iTluB=PZeDL>H&D4;tBsLC zAX1^6QrSsJ^cW!~1V^Au2gi^sBFOMO2*Mj(j^$qNJPN7m?h1-)W~m-n3DaD+gZjV4 z$o9!?b`2kQ>9mRivn=ZDWbA==G~efJpnB?q(|rHOTdG*^1>bU(*t@2fv4hqxje`*L ziiN{N8uLCR9XukSK=7gl52K3zeS9lc#*^}9}elX|UM3Wst)mZmbNffbJ(!j;K zt7hd8N08oZX>E->+oK=4o$E-u}+>}H-I<>e3&XxZNXpWv?+1|h^ z-quLYIEN-Z^j9s{qXQ$A06G?TCr>LEQwP~}upNfM!`Hx&CM~9W%-w#V5)$_-D~YtQ z$l&(uTYmE=f^}$AvZN+K5 zy;l1jijSTzraxaO@iy0UzfBeebC@WJEyp@5wDx7yUs{3oYaD?+iiHazyWn#k`e;uK z**g!oqZpN-{HoCXyXO{P&DuG*I~?J@@Y+7Jl;~Lj3BhLrVJJ{n3o0J?_mIjyZH7n8 z4PWo9(uQX@d>1oH^>V2Z^Xy=SPCH!4#ZHWbGjvD#CmaYp@I>f+^B5Oj5s7p8G~udi z+k;|e^19(ltv(FVgNLYa+HbERE8KCuH{jkvS9>UR5o$M*G_CjypHo!VxdRVfP!cIL zUBd=ju#~DhL0H36dB~AswQ#9wb6+r?DB^{sW!zl_bM?lI2v*A=`$m3U54&1O-5>3W z-i#3eo3be2x1+%gbJlY|a4!x`f7We(dA(}jkWIDzdtFdM-iVn67pwac6lA6Ta4*z1 z42^P<&J9p1K5v2AWo2~w6wDN?w$MJM_qb9cMj{ZX+8q+bVEThG%IgL6Jy?%yw^#3| zu-iSJA^+KJ2MdyK05Em9%8Cj;b2~}ebjOhKK~fz>#NJ?BZ+Xj~z!}`3DRN9pFwQ>n zX3dScqmCbEWG`M!cn0>L7nVk_Xk)BiPP|PA)NO?YqBX3I1mwh9v|l`i43CL1)mQ(*9ey!g-VRKZBDDqbmk$7O z$9t1dmGBz%*QnL;*tuRLeDiP*VM`#Zz|nZdWohJEFdOEkf&5esALZ>ywPYd2_p0cN zff;b_%TmtQfZRT@KVhug1kh}%uJ_4s9TusDe7|V)hE!T4=z%B@Xl9ky&KEuKT+mt* zbO7?$zqV&!g*h)S)j>HLS^AzYjSE$Wu~EP4)2?RS?f%JOSo7rwZ$B6AeRC@g9rJ4l z;-P~aG!IIIW!3AJw_bd*4Z$E^c16D)6fIBkUJDPHgv64!swpodoBKN4$}~r z_4~S+ncdT5CGXep?)lwI$b`NpiEF{Ta3T@8j(y(9M)~zyyw#9#(py)6Zr2po+ zwQPdip`dU7$_R}kRH%NiNSt*-FehjOQ6){<&Z`rcKzp(Ko7N2U=WK-#Y2p=mc@zw= z?SX)Shh8^yfcM0M>Yij8-IB?Sq|R7)<5&`FDiBYFw0n`{^z<{_k5Z3KTN9toYk70G zE(vN%X)G}Pe#F=XH`;;ItcQ_$6i>$RxRcz;0S9H#eIYD@^SZrLQo<_At7-fl87>LT>m zaJ7$7K>VTm#toph<@$PbNi-(ad=nrm^gdq9B@Y#G@wagVxA3^j#=MRd0O_Vr%+)FA zFv*@_%tx>5vXFMq{izE`)tsVRP+JqsBOo4QRft`e+-2hTLyyxANa&vMJK&u!!S;B>|`UtOK8ovH+F&&^tZm+`Z zmARxmCUjvt`9}c&jyems}7H~%QNlwQUD z-u5#E@IU?Y5||BNBKtJ_V02PM+NmB7Tw8MAGS-=e_pc>5i)pDk&I>N>;~C!|F*%d~ zNMM2^IJXGc`)h6L)givb=xKYqsynE&;5emfax}Ef_ne35H9uly=3Ql#^j8MswNe*N8Z{mL71AHAqiLdli;Y<%fS&^2%ZrD z!7U@cfwPb60vg+CIp$Shmmlj5IGVCx)aD9m!2$`@^|bMQ!gHN5-f%eXa19&zbpu9# zIu81seWHT^&Q;l1@U79ZBq6N4-~9)Mqv3%jVo2cwbb9>;CR01$mQIoz-umU zJB0Fm)l4jSEzLs%WluORG)}9=H-N8a^46$39u-|_W;#9(CWXfCZhmg=+i}F_)SLD_ zTGWe|*erzr?X_D&rrmvu=^v}AB<}k)c&SA&duE6aoCoTx|ItmaH|AUv3SFANYBfhp zXv^5fr&{Cuu|I3J9@=J7&1&jY$KSBOZCrn(v+{x?J4od=;2xJg^#ERp760nW=Bq*} zRLL43=d*si021DeQNi^)?1(6EN=!d;% zjc!K+)|}!yelLmcM-cDU?9WVBdMX>-y@_~A%X-RMYhH;NDIOB1>>Q)TkxH@qx7Q^` zb^L-5GX-u!8q#i~UeL}EGNg2(*I}6wKY=Py+h)GJy~I&~&37wvh|=D6dvLS`#(_Gv zjU%xL!_~kUIfu5#NSw=;aFMh@Q>F;HDXJ3Q40tRQ_qltVh;;dpL+xrM2E``6O|+y0 z@c@hZ@Dm=M=5leXvvY5uS_61Edp~C!J#<(`%AA^sb`;=A&ZlmO$V{C$N>CVu2(Mi0 zYRiFJ3cAV!&ZcHVJppLLO|aiiY;nHUCpN*ny-b-Q$ad?Wp)=>0+`^Sj)#seSMdI`c zE5UV|tm#9BUuEU9XU}eh^6CBS^pnJpVQ;`oy2=*Vd6gcCANT3i*Ivvt4&`pF4W6Z{ zMt0o;tp65up(e+MovjtqNGA4-=ZooK6J2K`g2Icg*?W`_hjsTJ z-ZChPw_Yr~v)P!Lx@|cQS_}X^i7^Qfi`Xoo#g1Gol<3dpuvDh#ZbV{pnLS{4KEX6F zsCb|{Y_H#Q1)$>kT*6hYyd%hxCd!=@nX5~H=x6cLz77j%fzd{?)2)Q4d3>KCmn-;U zO({#zbIk}SBefnJNw}-%O+nTq8KF9>*{J>wawlh6-fnzWq0O|lmfBc6-t`lfnI)yy zN4RSZN%1*H`9^MUE@?47jQ4RQ&C!^qK>3PJM-`Rl&_EbnZ<5H1e**i+tiIsU!Fcbq zT})0(yXTKogmekL9@LNFwI4X9Bwf$Ug^$R3LaUU1xiO}g+!Nh6g>cPfFpC@33Pz(5 zGr#N_)YT}uhvYzSJZsEYFOT$X`Y;SxKChAhvi$Bd593pg5`?ejL96Tc`NZbxh6U&9 zV#}UlIm#VXn&;a<#hT&anG4m+!I#%sqCTydj&!IC2y#L0X{x!&TF^DHo-_S14`3J)Ll zwO5{az|WTcoHU>-YVmIoyAX7XvVg=y&68_fT*rhyKOQavJ#4}wJTFs zU_BBM{WY#NN8(_E8ER3?C6}VknmOFHZY%uOMZ$YWyAQ09-=}&5wj%^hdY>B@v9LkW z!*m@MQDHJ;TAamDcOUg^SClsU_Fx>A#}2VP=NBSLBb#c?a}5ffPkJ!yO^7wNTWjLG zb`lpG-UazbD*zOa0e!UhO5>kQRJQEo)?{MVMG@Y1r8xAHyfkbTWv@erus7TWsWQd% zsmAWtm+t>WJ>l7oaPhAH0&iO3IPZ)3ERo^A0KKIq2*}^}T=I4sMY9L!TSSz4`wc?p z;=LUEn0ztK=dtzigQnV_*gYUE_^F~|{@Aqd>N&PF2)QDr+t2$_sk$?rDR(Y-MTD48 z%C!$yxH&Gz_qn4Yo6?~$$Gm)~Ed7L3;d9Om5o4_0k8f!8KDwGWciMM6&TWJ!b^WZA z5lz0X@HWVd`s?0AWs*oecw2{WsoNYEXe$?3o1+_7&H$^TU*YIHK$6dF+bd@TC@6 zN0dhP)bG0vHLl&^o@Z_5Q}j(q6YADhvIGeNYotB-Z_~J)EG*x%okUVq{&z>9!pC(h z1yUcY{GhATw~bl1CJ zLTa&;Q=Pe9o`WYo2ve0MU8nLpU4Oau4&|&ur+K)_+O{S6_m=i{n)>9H%cs=ilZx3^ z;hvy~=FVU?+$fG+H}P(J;MI>#F!PG3e$7vTGGjI0AG?&;%vgf%{`n~1%ijKD0Y(LJ zM2yw*-y|Nud=14uX;+o6cuY2a?rlP_#7Cu!9^KJS-rtBllo1>81rkPwZ(Rh3EmyXF zp-FoeDf0t{L8NX`G1hLxkmdV3mxx zs`nr78xY!rt8`*Qa@}Z11MZ71=AtqJ2Fj<47+>e~gzpT{>BdbEd98^0!gF`(Cx1xnV+jPK8!Pi#l2=Ce zS}7(ySiC>;dbR(U)oOM*?^Woz>Ee?wMb9df((9PCAn@!>x$e&UK&A%9yHj})441E` zmpV+!7L!}KTxT{1bS~ce&(`n0YSWzOt7|^HTgE=7y>qjJkAhvtr;VJ>@R;Sg6XLQ?t ziF#}$AKs9TdU$m)k~_FZBY%wdp;N~BMK~JIO7-||a?9cc* zxaZ#f;y!-Bxgq^<_5QBUcEakq5rO^kezj7^ZO%Y`Z$_#$H$G)Hl6nZ@4_^o5`DDb( z2ga+*Y+u z-YH`@)jxU>?$Nw#Oa^7>Zu|a-&wArh#KR(Dv6bmH!vsPbymaFv;Zi~vY? zVo1-ZkfxFWzvjLA*(BnC@L~LI`MzcCbCQp95(A^_XR9|RKM_a&KF-<0&AgM(iKVzA zd5UcPnK_SuuS64x-=bN0a~c6s8L|tsFT(vJh0x1_B+4PdJ^6djlDKWc>eA8ky-`IQ z)jN;(t9F)^eBKpldhj(-HEz@EXG2gS@Y^I`5#4}P|+r* zXH%YS+esy$kBHpTCJgN8?76@OQ$%J}iO8QbY@g%}9BAHiiRa zMt*oodsm!LgyD@%O{3!M5^N&!ZoldckiXM=td${bv-7p*Mq%$s{!o~_&no-j>b-}- zTXXD3aXof;8KFsWu4gvo-L*U4HIv>?<>y=c82j^KjxDY3rzn2ScA4;s=Xm)r?s)mWWU7Ti z^9KNvY-VA5pA=+I%F5gd~RfL)Q)5&aZj{mYjw7Q?jr5<}#cwYNqr0 zC?eY}CTdNYh$W7mN~=ERf}(eqt@#^Y*48(?_D(ChRTWo)o>lx+y_4XhHaHI{l~m1A z9;>AZPi4xS>=n0HEvJILn7dzlP8IqmDRemO{aVr3r|3&u^iXcm^(HkX~v z=uVd*UQYYKn7zhdYgq`CC?~n%-9MYO{HvL{qx)0&KFZ12KwPqpd~hm|V!CNSyDMyx zf@NQL$2=g?kI8_@oo4xE+j2r|zqZ3ixsYYArP(7VF=*iapV)eKkKaijDI{!K8CJ%U z_zVH_1mctv*w2xgbEcG4TUcR%?`edZhY`N4CfAl?u6pDGqsjdhN)2+SLScfwNeeC?H z-I?sTgp;ltGOl*?MyR$$4#|!og%@H z_j`A1+tZA{xd?l^jG7j63!`=;lKp~D)&;nOI@qM@+GGhJ72r1nBFX0blSBNGF3P>f z>wu^8_)MCWYmV*C+~}73+v1$#R@~ea#oKNBJFTmgl3RAma}`O4m$F7ZK_3Ml=u}&s zcE;=((eGuSqn|d@=_`iymM}>KHTb~f%1uS`tAKC?er4|JkPjV?gczZ1e~V^sIbzN@ zC(X=_rt-!;V#4UEc+1xybDBWG?Zu@%Lz6N2r?{;IQPx~fQ>1Nz+ z2wT+Dulg66&DxbKuDcN~YI%1e#J=GwZ)lpgD1R^}e%chZ)}O;dg_G4JuYF0+Pn)nG zJ1p*{n?%`}clsIPH}btK?F*jljol&dpa31e5%u!v`~u?BQ~Oaf3Qd;ZC+|i|zu(+q zKb1@NqvTPJqAKFHX6Jdw-bs7B_qzIK%$?!^h@xaGeyxB4QaXl)+z`2WHazKul=qTr zC3ALQ0A>lB=O6Qt8{OIoejMOdaHIbI5MJ7GCoD#cUNzbR?L^W-8f89CyPsy{ml`+g|x?`+tAi={?x7E^^9glfZ4P&$r+4qIHep8w(Mx7N0)WIWNZN zmA&6uT&ul%s=a>pxT)aHP}e}5uF|KAdXw>7_)#R3<)*DSdGoK;{&IA4`~KIJkMoZO z_HCuTTs9tTb~Sw2K`x_u>{frB(JsDyL}}l)Ag^t&KH>-Imiar(mu3mI`Xd;_!my9- z>sEb-O`jIN7-;+wKNl*Z#*l6PeqgkrjQGQQRm0;q{~P|!isJ%Y&x4cWg1)Jqd>1tq1--+VxzPXd3c|6Odulm7q6z6 z@8Fxc{a-HLP;X!%;V*4+G`2Ea*(G|3BQn8Ck+XeUACIBF%A_7}Q~5NCtV2npA;MME zW1JzIq@Lr+;rak)i*fCQ^>@2&8CrfeRXu*MT8jBKyY9VIUdrQ;^_psV+nadJEO=|G zdTZT5oA4QMtRs~LK`o6gv&_~x&vWOWeD=5Mptiiu_v&M89b;d7U|pkA=)*pM8#~(_ zAG~O~?h#04BO_*$%ul1+!|JvduF4^qn z)3yr{XD$Mc#!a*32jUj^LrAyd;*7idOlRuXKS-3dpi-SoVNBELluF#UF7&S~?=p^I zrE=$nzYu3qEgvcuxuVEwln9kjkzywctJZh)(5QwT2>+p=T7fYw-MjM&FIDl(xjguw zK=b=QM?B+?L#>tjN58_q_*Y5gRfE|wlxG1pyTwOfU zmH3I2g;Lw|7&tx-r=lyx$tXo+(?JkAUSHCI7mbk|Jg9uM2y_FOd( zie>Ocf2d+O#M?yhY1=p`U+6eeJxq`sk92%s9suJ$KtEe#qK~s~`876OY=r$#zjdxK zO>Xvz!-Yt+-*f-eMlrDPXZ+FA>?=B#RyQ09s>;elUE3!MD(3=%2%G3X+BG$8#BhDZ z{YUeXj#I&xF3jtVI5O^sfUtMav=W#1cDFaS`lEAb97}-rUE>Vle{*j>5`|+mcB-?^ z&)fIoo~ots^j&O6vh6iDJj+lWqTx#ER|9pt=1%mpDm?0%s(U!;tz@UjGSR`cf8IIT z|2OWK7lbQ+n@5YvPV9!F$I+crmy@ksrl@fkH8Qe|%S)wIEv9hT6yA>i>N2h-7PTL* z*?Mc#(z{Hkp6D9D422Ppf`q)>;4tg5B{VZXmp9^+WP5v@nDaUycgAmO;9RR!ex;^j zlElsF8!->Nao)D3x6P?j)ISPX`FuYvBsN(YLRAWhJZn4~=`t^|n<1C@l8@{Dx?dH^R$! z*uEnXm{^!`H$E??b(9^GPS{3MYG_RSbfccm8Y-W84hS9Bd{b@!`{_;XyoNHx1<{aN zIfG)5e!zqC{UG$f2>SBHxTc~yj)p6l^JpmJ@puZ1a)+?nkH5uM+KI!s4SCwj+kH6Z z*7UH41HJ=8DgeNY9FqUU%uE`+6J-s zI^L)b^U}|buaOA+0cw)5)O980L)aNmnj;tNY03}`U)H8PX(#%%+9^!mUzKp>%I3h9 z@BGoAlxMr?IKrRG_6CR)lK9p uP#ZM`-f7k|3!GjcZ~cr4yW1Ai4dzQGd+R0~nx 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

%Qd|*XYssfv5ScpVB2`hNKtfBKx|x`vGZX( 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 p&(wb#lK Date: Fri, 21 Aug 2020 09:47:50 +0200 Subject: [PATCH 109/656] Update design.md --- docs/dls/design.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/dls/design.md b/docs/dls/design.md index c8a94fad4d..23ba84024a 100644 --- a/docs/dls/design.md +++ b/docs/dls/design.md @@ -3,7 +3,7 @@ id: design title: Design --- -![header](../assets/dls/designheader.png) +![header](../assets/dls/designheader-updated.png) Much like Backstage Open Source, this is a _living_ document! We'll keep this updated as we evolve our practices! @@ -116,7 +116,7 @@ components. If you’d like to help build up our design system, you can also add components we’ve designed to the Storybook as well. **[Figma](https://www.figma.com/@backstage)** - we're stoked to be using Figma -Community to share our design assets. You can duplicate our component library +Community to share our design assets. You can duplicate our UI Kit and design your own plugin for Backstage. **[Discord](https://discord.gg/EBHEGzX)** - all design questions should be From 5bf548ac808428dcc530cc51625dd6d072d12b38 Mon Sep 17 00:00:00 2001 From: Sebastian Qvarfordt Date: Fri, 21 Aug 2020 10:31:30 +0200 Subject: [PATCH 110/656] Show progress bar when loading on techdocs (#2065) --- plugins/techdocs/src/reader/components/Reader.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/techdocs/src/reader/components/Reader.tsx b/plugins/techdocs/src/reader/components/Reader.tsx index 8e1e36595a..8ae3273e12 100644 --- a/plugins/techdocs/src/reader/components/Reader.tsx +++ b/plugins/techdocs/src/reader/components/Reader.tsx @@ -15,7 +15,7 @@ */ import React from 'react'; -import { useApi } from '@backstage/core'; +import { useApi, Progress } from '@backstage/core'; import { useShadowDom } from '..'; import { useAsync } from 'react-use'; import { techdocsStorageApiRef } from '../../api'; @@ -131,5 +131,10 @@ export const Reader = ({ entityId }: Props) => { return ; } - return

; + return ( + <> + {loading ? : null} +
+ + ); }; From 6e3cb6c874b66f30c22b019fef6b0cb8f1ded953 Mon Sep 17 00:00:00 2001 From: "toban@dfds.com" Date: Fri, 21 Aug 2020 10:51:37 +0200 Subject: [PATCH 111/656] =removing support for loading certs via file paths, adding host factory module, removing config section --- app-config.yaml | 7 -- .../src/service/lib/ServiceBuilderImpl.ts | 87 ++----------------- .../src/service/lib/hostFactory.ts | 56 +++++++++++- 3 files changed, 60 insertions(+), 90 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index 0e94367aa1..a0233991f8 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -13,13 +13,6 @@ backend: database: client: sqlite3 connection: ':memory:' - # https: - # certificate: - # size: 2048 - # algorithm: sha256 - # days: 30 - # attributes: - # commonName: 'dfds.com' proxy: '/circleci/api': diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index e75ae8069f..899db248d6 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -21,7 +21,6 @@ import express, { Router } from 'express'; import helmet from 'helmet'; import * as http from 'http'; import * as https from 'https'; -import * as fs from 'fs'; import stoppable from 'stoppable'; import { Logger } from 'winston'; import { useHotCleanup } from '../../hot'; @@ -38,10 +37,7 @@ import { readHttpsSettings, HttpsSettings, } from './config'; -import { - createHttpServer, - createHttpsServer, -} from './hostFactory'; +import { createHttpServer, createHttpsServer } from './hostFactory'; const DEFAULT_PORT = 7000; // '' is express default, which listens to all interfaces @@ -149,83 +145,16 @@ export class ServiceBuilderImpl implements ServiceBuilder { reject(e); }); - let server: http.Server; - - if (httpsSettings) { - logger.info('Initializing https server'); - - const credentials: { key: string; cert: string } = { - key: '', - cert: '', - }; - const signingOptions: any = httpsSettings?.certificate; - - if (signingOptions?.algorithm !== undefined) { - logger.info('Generating self-signed certificate with attributes'); - - const certificateAttributes: Array = Object.entries( - signingOptions.attributes, - ).map(([name, value]) => ({ name, value })); - - // TODO: Create a type def for selfsigned. - const signatures = require('selfsigned').generate( - certificateAttributes, - { - algorithm: signingOptions?.algorithm, - keySize: signingOptions?.size || 2048, - days: signingOptions?.days || 30, - }, - ); - - logger.info( - 'Bootstrapping key and cert from self-signed certificate', - ); - - credentials.key = signatures.private; - credentials.cert = signatures.cert; - } else { - if (fs.existsSync(signingOptions?.key)) { - if (fs.lstatSync(signingOptions?.key).isFile()) { - logger.info('Bootstrapping key from file'); - - credentials.key = fs.readFileSync(signingOptions?.key).toString(); - } - } else { - logger.info('Bootstrapping key from config'); - - credentials.key = signingOptions?.key; - } - - if (fs.existsSync(signingOptions?.cert)) { - if (fs.lstatSync(signingOptions?.cert).isFile()) { - logger.info('Bootstrapping cert from file'); - - credentials.cert = fs - .readFileSync(signingOptions?.cert) - .toString(); - } - } else { - logger.info('Bootstrapping cert from config'); - - credentials.cert = signingOptions?.cert; - } - } - - if (credentials.key === '' || credentials.cert === '') { - throw new Error('Invalid credentials'); - } - - server = https.createServer(credentials, app) as http.Server; - } else { - logger.info('Initializing http server'); - - server = createHttpServer(app); - } + const server: http.Server = httpsSettings + ? createHttpsServer(app, httpsSettings, logger) + : createHttpServer(app, logger); const stoppableServer = stoppable( server.listen(port, host, () => { - logger.info(`Listening on ${host}:${port}`); - }), 0); + logger.info(`Listening on ${host}:${port}`); + }), + 0, + ); useHotCleanup(this.module, () => stoppableServer.stop((e: any) => { diff --git a/packages/backend-common/src/service/lib/hostFactory.ts b/packages/backend-common/src/service/lib/hostFactory.ts index 9b850431fb..778601e3c4 100644 --- a/packages/backend-common/src/service/lib/hostFactory.ts +++ b/packages/backend-common/src/service/lib/hostFactory.ts @@ -16,6 +16,8 @@ import express from 'express'; import * as http from 'http'; import * as https from 'https'; +import { Logger } from 'winston'; +import { HttpsSettings } from './config'; /** * Reads some base options out of a config object. @@ -31,11 +33,57 @@ import * as https from 'https'; * } * ``` */ -export function createHttpServer(app: express.Express): http.Server { +export function createHttpServer( + app: express.Express, + logger: Logger, +): http.Server { + logger.info('Initializing http server'); + return http.createServer(app); } +export function createHttpsServer( + app: express.Express, + httpsSettings: HttpsSettings, + logger: Logger, +): http.Server { + logger.info('Initializing https server'); -export function createHttpsServer(app: express.Express): http.Server { - return https.createServer(app); -} \ No newline at end of file + const credentials: { key: string; cert: string } = { + key: '', + cert: '', + }; + + const signingOptions: any = httpsSettings?.certificate; + + if (signingOptions?.algorithm !== undefined) { + logger.info('Generating self-signed certificate with attributes'); + + const certificateAttributes: Array = Object.entries( + signingOptions.attributes, + ).map(([name, value]) => ({ name, value })); + + // TODO: Create a type def for selfsigned. + const signatures = require('selfsigned').generate(certificateAttributes, { + algorithm: signingOptions?.algorithm, + keySize: signingOptions?.size || 2048, + days: signingOptions?.days || 30, + }); + + logger.info('Bootstrapping self-signed certificate'); + + credentials.key = signatures.private; + credentials.cert = signatures.cert; + } else { + logger.info('Bootstrapping cert from config'); + + credentials.key = signingOptions?.key; + credentials.cert = signingOptions?.cert; + } + + if (credentials.key === '' || credentials.cert === '') { + throw new Error('Invalid credentials'); + } + + return https.createServer(credentials, app) as http.Server; +} From f66eb57c10bf63bee4eeebd70f89565142c8ece0 Mon Sep 17 00:00:00 2001 From: "toban@dfds.com" Date: Fri, 21 Aug 2020 10:58:17 +0200 Subject: [PATCH 112/656] =add inline documentation --- .../src/service/lib/hostFactory.ts | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/packages/backend-common/src/service/lib/hostFactory.ts b/packages/backend-common/src/service/lib/hostFactory.ts index 778601e3c4..8fab2fd4ab 100644 --- a/packages/backend-common/src/service/lib/hostFactory.ts +++ b/packages/backend-common/src/service/lib/hostFactory.ts @@ -20,34 +20,37 @@ import { Logger } from 'winston'; import { HttpsSettings } from './config'; /** - * Reads some base options out of a config object. + * Creates a Http server instance based on an Express application. * - * @param config The root of a backend config object - * @returns A base options object + * @param app The Express application object + * @param logger Optional Winston logger object + * @returns A Http server instance * - * @example - * ```json - * { - * baseUrl: "http://localhost:7000", - * listen: "0.0.0.0:7000" - * } - * ``` */ export function createHttpServer( app: express.Express, - logger: Logger, + logger?: Logger, ): http.Server { - logger.info('Initializing http server'); + logger?.info('Initializing http server'); return http.createServer(app); } +/** + * Creates a Https server instance based on an Express application. + * + * @param app The Express application object + * @param httpsSettings HttpsSettings for self-signed certificate generation + * @param logger Optional Winston logger object + * @returns A Https server instance + * + */ export function createHttpsServer( app: express.Express, httpsSettings: HttpsSettings, - logger: Logger, + logger?: Logger, ): http.Server { - logger.info('Initializing https server'); + logger?.info('Initializing https server'); const credentials: { key: string; cert: string } = { key: '', @@ -57,7 +60,7 @@ export function createHttpsServer( const signingOptions: any = httpsSettings?.certificate; if (signingOptions?.algorithm !== undefined) { - logger.info('Generating self-signed certificate with attributes'); + logger?.info('Generating self-signed certificate with attributes'); const certificateAttributes: Array = Object.entries( signingOptions.attributes, @@ -70,12 +73,12 @@ export function createHttpsServer( days: signingOptions?.days || 30, }); - logger.info('Bootstrapping self-signed certificate'); + logger?.info('Bootstrapping self-signed certificate'); credentials.key = signatures.private; credentials.cert = signatures.cert; } else { - logger.info('Bootstrapping cert from config'); + logger?.info('Bootstrapping cert from config'); credentials.key = signingOptions?.key; credentials.cert = signingOptions?.cert; From d8947239ad187725d002876c3375d3c48cc13607 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Fri, 21 Aug 2020 11:01:46 +0200 Subject: [PATCH 113/656] fix(core): bump react-syntax-highlighter to unbreak build --- packages/core/package.json | 2 +- yarn.lock | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 7333e0ce2a..3e33fec7a1 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -50,7 +50,7 @@ "react-router": "6.0.0-beta.0", "react-router-dom": "6.0.0-beta.0", "react-sparklines": "^1.7.0", - "react-syntax-highlighter": "^13.2.1", + "react-syntax-highlighter": "^13.5.1", "react-use": "^15.3.3" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index 1a56d05251..c3527d6df6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18209,14 +18209,14 @@ pretty-hrtime@^1.0.3: resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= -prismjs@^1.17.1: +prismjs@^1.17.1, prismjs@^1.21.0, prismjs@~1.21.0: version "1.21.0" resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz#36c086ec36b45319ec4218ee164c110f9fc015a3" integrity sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw== optionalDependencies: clipboard "^2.0.0" -prismjs@^1.20.0, prismjs@^1.8.4, prismjs@~1.20.0: +prismjs@^1.8.4: version "1.20.0" resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.20.0.tgz#9b685fc480a3514ee7198eac6a3bf5024319ff03" integrity sha512-AEDjSrVNkynnw6A+B1DsFkd6AVdTnp+/WoUixFRULlCLZVRZlVQMVWio/16jv7G1FscUxQxOQhWwApgbnxr6kQ== @@ -19070,16 +19070,16 @@ react-syntax-highlighter@^11.0.2: prismjs "^1.8.4" refractor "^2.4.1" -react-syntax-highlighter@^13.2.1: - version "13.2.1" - resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.2.1.tgz#3d5a3b655cd85ce06b9508e0365d01ef9b8560bb" - integrity sha512-O/AF/ll4I3Dp+2WuKbnF5yKG4b1BUncqcpTW6MIBDJPr2eGKqlNGS3Nv+lyCFtAIHx8N+/ktti8qH14Q5VjjcA== +react-syntax-highlighter@^13.5.1: + version "13.5.1" + resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.1.tgz#f21737cf6d582474a0f18b06b52613f4349c0e64" + integrity sha512-VVYTnFXF55WMRGdr3QNEzAzcypFZqH45kS7rqh90+AFeNGtui8/gV5AIOIJjwTsuP2UxcO9qvEq94Jq9BYFUhw== dependencies: "@babel/runtime" "^7.3.1" highlight.js "^10.1.1" lowlight "^1.14.0" - prismjs "^1.20.0" - refractor "^3.0.0" + prismjs "^1.21.0" + refractor "^3.1.0" react-test-renderer@^16.13.1: version "16.13.1" @@ -19411,14 +19411,14 @@ refractor@^2.4.1: parse-entities "^1.1.2" prismjs "~1.17.0" -refractor@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/refractor/-/refractor-3.0.0.tgz#7c8072eaf49dbc1b333e7acc64fb52a1c9b17c75" - integrity sha512-eCGK/oP4VuyW/ERqjMZRZHxl2QsztbkedkYy/SxqE/+Gh1gLaAF17tWIOcVJDiyGhar1NZy/0B9dFef7J0+FDw== +refractor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/refractor/-/refractor-3.1.0.tgz#b05a43c8a1b4fccb30001ffcbd5cd781f7f06f78" + integrity sha512-bN8GvY6hpeXfC4SzWmYNQGLLF2ZakRDNBkgCL0vvl5hnpMrnyURk8Mv61v6pzn4/RBHzSWLp44SzMmVHqMGNww== dependencies: hastscript "^5.0.0" parse-entities "^2.0.0" - prismjs "~1.20.0" + prismjs "~1.21.0" regenerate-unicode-properties@^8.2.0: version "8.2.0" From 5bffcb108d36939fe43e54f9330ab560702b4e5f Mon Sep 17 00:00:00 2001 From: "toban@dfds.com" Date: Fri, 21 Aug 2020 11:03:07 +0200 Subject: [PATCH 114/656] =removing unused imports --- packages/backend-common/src/service/lib/ServiceBuilderImpl.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index 899db248d6..4669c00e68 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -20,7 +20,6 @@ import cors from 'cors'; import express, { Router } from 'express'; import helmet from 'helmet'; import * as http from 'http'; -import * as https from 'https'; import stoppable from 'stoppable'; import { Logger } from 'winston'; import { useHotCleanup } from '../../hot'; From 15e334a584013ee22e9f5b4335427edaf723473f Mon Sep 17 00:00:00 2001 From: Raghunandan Date: Thu, 20 Aug 2020 16:40:25 +0200 Subject: [PATCH 115/656] Release v0.1.1-alpha.19 --- CHANGELOG.md | 2 ++ microsite/package.json | 2 +- packages/app/package.json | 44 ++++++++++++------------- packages/backend-common/package.json | 10 +++--- packages/backend/package.json | 28 ++++++++-------- packages/catalog-model/package.json | 6 ++-- packages/cli-common/package.json | 4 +-- packages/cli/package.json | 8 ++--- packages/config-loader/package.json | 4 +-- packages/config/package.json | 2 +- packages/core-api/package.json | 10 +++--- packages/core/package.json | 12 +++---- packages/create-app/package.json | 4 +-- packages/dev-utils/package.json | 10 +++--- packages/docgen/package.json | 2 +- packages/storybook/package.json | 4 +-- packages/techdocs-cli/package.json | 4 +-- packages/test-utils-core/package.json | 2 +- packages/test-utils/package.json | 10 +++--- packages/theme/package.json | 4 +-- plugins/api-docs/package.json | 16 ++++----- plugins/auth-backend/package.json | 8 ++--- plugins/catalog-backend/package.json | 10 +++--- plugins/catalog/package.json | 26 +++++++-------- plugins/circleci/package.json | 10 +++--- plugins/explore/package.json | 12 +++---- plugins/github-actions/package.json | 16 ++++----- plugins/gitops-profiles/package.json | 10 +++--- plugins/graphiql/package.json | 12 +++---- plugins/graphql/package.json | 6 ++-- plugins/identity-backend/package.json | 6 ++-- plugins/jenkins/package.json | 12 +++---- plugins/lighthouse/package.json | 12 +++---- plugins/newrelic/package.json | 10 +++--- plugins/proxy-backend/package.json | 8 ++--- plugins/register-component/package.json | 14 ++++---- plugins/rollbar-backend/package.json | 8 ++--- plugins/rollbar/package.json | 12 +++---- plugins/scaffolder-backend/package.json | 10 +++--- plugins/scaffolder/package.json | 16 ++++----- plugins/sentry-backend/package.json | 6 ++-- plugins/sentry/package.json | 10 +++--- plugins/tech-radar/package.json | 12 +++---- plugins/techdocs-backend/package.json | 10 +++--- plugins/techdocs/package.json | 18 +++++----- plugins/welcome/package.json | 10 +++--- 46 files changed, 237 insertions(+), 235 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99f03e3fa5..d295dc38e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ If you encounter issues while upgrading to a newer version, don't hesitate to re > Collect changes for the next release below +## v0.1.1-alpha.19 + ### @backstage/create-app - Many plugins have been added to the catalog and will for now be required to be added to separate apps as well. This will be solved as [#1536](https://github.com/spotify/backstage/issues/1536) gets sorted out, but for now you may need to install some plugins just to get pages to work. diff --git a/microsite/package.json b/microsite/package.json index dd8957245a..bcf28d7fe5 100644 --- a/microsite/package.json +++ b/microsite/package.json @@ -1,5 +1,5 @@ { - "version": "1.0.0", + "version": "0.1.1-alpha.19", "name": "backstage-microsite", "license": "Apache-2.0", "private": true, diff --git a/packages/app/package.json b/packages/app/package.json index 126913b32a..ad4aa3524c 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,29 +1,29 @@ { "name": "example-app", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": true, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/plugin-api-docs": "^0.1.1-alpha.18", - "@backstage/plugin-catalog": "^0.1.1-alpha.18", - "@backstage/plugin-circleci": "^0.1.1-alpha.18", - "@backstage/plugin-explore": "^0.1.1-alpha.18", - "@backstage/plugin-github-actions": "^0.1.1-alpha.18", - "@backstage/plugin-gitops-profiles": "^0.1.1-alpha.18", - "@backstage/plugin-graphiql": "^0.1.1-alpha.18", - "@backstage/plugin-jenkins": "^0.1.1-alpha.18", - "@backstage/plugin-lighthouse": "^0.1.1-alpha.18", - "@backstage/plugin-newrelic": "^0.1.1-alpha.18", - "@backstage/plugin-register-component": "^0.1.1-alpha.18", - "@backstage/plugin-rollbar": "^0.1.1-alpha.18", - "@backstage/plugin-scaffolder": "^0.1.1-alpha.18", - "@backstage/plugin-sentry": "^0.1.1-alpha.18", - "@backstage/plugin-tech-radar": "^0.1.1-alpha.18", - "@backstage/plugin-techdocs": "^0.1.1-alpha.18", - "@backstage/plugin-welcome": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/plugin-api-docs": "^0.1.1-alpha.19", + "@backstage/plugin-catalog": "^0.1.1-alpha.19", + "@backstage/plugin-circleci": "^0.1.1-alpha.19", + "@backstage/plugin-explore": "^0.1.1-alpha.19", + "@backstage/plugin-github-actions": "^0.1.1-alpha.19", + "@backstage/plugin-gitops-profiles": "^0.1.1-alpha.19", + "@backstage/plugin-graphiql": "^0.1.1-alpha.19", + "@backstage/plugin-jenkins": "^0.1.1-alpha.19", + "@backstage/plugin-lighthouse": "^0.1.1-alpha.19", + "@backstage/plugin-newrelic": "^0.1.1-alpha.19", + "@backstage/plugin-register-component": "^0.1.1-alpha.19", + "@backstage/plugin-rollbar": "^0.1.1-alpha.19", + "@backstage/plugin-scaffolder": "^0.1.1-alpha.19", + "@backstage/plugin-sentry": "^0.1.1-alpha.19", + "@backstage/plugin-tech-radar": "^0.1.1-alpha.19", + "@backstage/plugin-techdocs": "^0.1.1-alpha.19", + "@backstage/plugin-welcome": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@octokit/rest": "^18.0.0", diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 5cf2ee95e5..018c7616f4 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-common", "description": "Common functionality library for Backstage backends", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -29,9 +29,9 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/cli-common": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", - "@backstage/config-loader": "^0.1.1-alpha.18", + "@backstage/cli-common": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", + "@backstage/config-loader": "^0.1.1-alpha.19", "@types/cors": "^2.8.6", "@types/express": "^4.17.6", "compression": "^1.7.4", @@ -54,7 +54,7 @@ } }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/compression": "^1.7.0", "@types/http-errors": "^1.6.3", "@types/morgan": "^1.9.0", diff --git a/packages/backend/package.json b/packages/backend/package.json index c80fbc7c38..99f0cf3ece 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "dist/index.cjs.js", "types": "src/index.ts", "private": true, @@ -18,18 +18,18 @@ "migrate:create": "knex migrate:make -x ts" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", - "@backstage/plugin-auth-backend": "^0.1.1-alpha.18", - "@backstage/plugin-catalog-backend": "^0.1.1-alpha.18", - "@backstage/plugin-graphql-backend": "^0.1.1-alpha.18", - "@backstage/plugin-identity-backend": "^0.1.1-alpha.18", - "@backstage/plugin-proxy-backend": "^0.1.1-alpha.18", - "@backstage/plugin-rollbar-backend": "^0.1.1-alpha.18", - "@backstage/plugin-scaffolder-backend": "^0.1.1-alpha.18", - "@backstage/plugin-sentry-backend": "^0.1.1-alpha.18", - "@backstage/plugin-techdocs-backend": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", + "@backstage/plugin-auth-backend": "^0.1.1-alpha.19", + "@backstage/plugin-catalog-backend": "^0.1.1-alpha.19", + "@backstage/plugin-graphql-backend": "^0.1.1-alpha.19", + "@backstage/plugin-identity-backend": "^0.1.1-alpha.19", + "@backstage/plugin-proxy-backend": "^0.1.1-alpha.19", + "@backstage/plugin-rollbar-backend": "^0.1.1-alpha.19", + "@backstage/plugin-scaffolder-backend": "^0.1.1-alpha.19", + "@backstage/plugin-sentry-backend": "^0.1.1-alpha.19", + "@backstage/plugin-techdocs-backend": "^0.1.1-alpha.19", "@octokit/rest": "^18.0.0", "dockerode": "^3.2.0", "express": "^4.17.1", @@ -40,7 +40,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/dockerode": "^2.5.32", "@types/express": "^4.17.6", "@types/express-serve-static-core": "^4.17.5", diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index 248f2765e4..54b3d3a621 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/catalog-model", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.18", + "@backstage/config": "^0.1.1-alpha.19", "@types/json-schema": "^7.0.5", "@types/yup": "^0.28.2", "json-schema": "^0.2.5", @@ -29,7 +29,7 @@ "yup": "^0.29.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/express": "^4.17.6", "@types/jest": "^26.0.7", "@types/lodash": "^4.14.151", diff --git a/packages/cli-common/package.json b/packages/cli-common/package.json index 092a2a5167..80cc665426 100644 --- a/packages/cli-common/package.json +++ b/packages/cli-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli-common", "description": "Common functionality used by cli, backend, and create-app", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "main": "src/index.ts", "types": "src/index.ts", @@ -29,7 +29,7 @@ "clean": "backstage-cli clean" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/jest": "^26.0.7", "@types/node": "^12.0.0" }, diff --git a/packages/cli/package.json b/packages/cli/package.json index 3c9f85ac30..e5a8eafc81 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli", "description": "CLI for developing Backstage plugins and apps", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public" @@ -29,9 +29,9 @@ "backstage-cli": "bin/backstage-cli" }, "dependencies": { - "@backstage/cli-common": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", - "@backstage/config-loader": "^0.1.1-alpha.18", + "@backstage/cli-common": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", + "@backstage/config-loader": "^0.1.1-alpha.19", "@hot-loader/react-dom": "^16.13.0", "@lerna/package-graph": "^3.18.5", "@lerna/project": "^3.18.0", diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json index a2d7bbbc59..f5873c3c9d 100644 --- a/packages/config-loader/package.json +++ b/packages/config-loader/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/config-loader", "description": "Config loading functionality used by Backstage backend, and CLI", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", @@ -30,7 +30,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.18", + "@backstage/config": "^0.1.1-alpha.19", "fs-extra": "^9.0.0", "yaml": "^1.9.2", "yup": "^0.29.1" diff --git a/packages/config/package.json b/packages/config/package.json index 9c8c81d31b..acbc690625 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/config", "description": "Config API used by Backstage core, backend, and CLI", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", diff --git a/packages/core-api/package.json b/packages/core-api/package.json index 9ce1290a73..7b2087630e 100644 --- a/packages/core-api/package.json +++ b/packages/core-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-api", "description": "Internal Core API used by Backstage plugins and apps", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", @@ -29,8 +29,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/config": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@types/react": "^16.9", @@ -41,8 +41,8 @@ "zen-observable": "^0.8.15" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/test-utils-core": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/test-utils-core": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/packages/core/package.json b/packages/core/package.json index 3e33fec7a1..5b59ee3dff 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core", "description": "Core API used by Backstage plugins and apps", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", @@ -29,9 +29,9 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.18", - "@backstage/core-api": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/config": "^0.1.1-alpha.19", + "@backstage/core-api": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -54,8 +54,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 6a1a3b60b5..ae62bc518a 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/create-app", "description": "Create app package for Backstage", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public" @@ -27,7 +27,7 @@ "start": "nodemon --" }, "dependencies": { - "@backstage/cli-common": "^0.1.1-alpha.18", + "@backstage/cli-common": "^0.1.1-alpha.19", "chalk": "^4.0.0", "commander": "^4.1.1", "fs-extra": "^9.0.0", diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 7eab350990..ba82447ea4 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/dev-utils", "description": "Utilities for developing Backstage plugins.", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", @@ -29,10 +29,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@testing-library/jest-dom": "^5.10.1", diff --git a/packages/docgen/package.json b/packages/docgen/package.json index 4b832afdfd..446f57f3dc 100644 --- a/packages/docgen/package.json +++ b/packages/docgen/package.json @@ -1,7 +1,7 @@ { "name": "docgen", "description": "Tool for generating API Documentation for itself", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": true, "homepage": "https://backstage.io", "repository": { diff --git a/packages/storybook/package.json b/packages/storybook/package.json index 3a928b044e..8660c0e8d8 100644 --- a/packages/storybook/package.json +++ b/packages/storybook/package.json @@ -1,6 +1,6 @@ { "name": "storybook", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "description": "Storybook build for core package", "private": true, "scripts": { @@ -14,7 +14,7 @@ ] }, "dependencies": { - "@backstage/theme": "^0.1.1-alpha.18" + "@backstage/theme": "^0.1.1-alpha.19" }, "devDependencies": { "@storybook/addon-actions": "^5.3.17", diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 2e5d1e3958..a5951fd770 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -1,7 +1,7 @@ { "name": "@techdocs/cli", "description": "CLI for running TechDocs locally.", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public" @@ -44,7 +44,7 @@ "ext": "ts" }, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "commander": "^5.1.0", "fs-extra": "^9.0.1", "http-proxy": "^1.18.1", diff --git a/packages/test-utils-core/package.json b/packages/test-utils-core/package.json index 638513af5c..821a94b1aa 100644 --- a/packages/test-utils-core/package.json +++ b/packages/test-utils-core/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/test-utils-core", "description": "Utilities to test Backstage core", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 35bbb7d0b0..e336835592 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/test-utils", "description": "Utilities to test Backstage plugins and apps.", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", @@ -29,10 +29,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/core-api": "^0.1.1-alpha.18", - "@backstage/test-utils-core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/core-api": "^0.1.1-alpha.19", + "@backstage/test-utils-core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", diff --git a/packages/theme/package.json b/packages/theme/package.json index f4eafa58ff..f98a2cb762 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/theme", "description": "material-ui theme for use with Backstage.", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", @@ -31,7 +31,7 @@ "@material-ui/core": "^4.9.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18" + "@backstage/cli": "^0.1.1-alpha.19" }, "files": [ "dist" diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index c8a6b5732d..342d0aa8ca 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-api-docs", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,10 +20,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/plugin-catalog": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/plugin-catalog": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@kyma-project/asyncapi-react": "^0.11.0", "@material-icons/font": "^1.0.2", "@material-ui/core": "^4.9.1", @@ -37,9 +37,9 @@ "swagger-ui-react": "^3.31.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 65111e599c..7771434750 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,8 +20,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", "@types/express": "^4.17.6", "body-parser": "^1.19.0", "compression": "^1.7.4", @@ -48,7 +48,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/body-parser": "^1.19.0", "@types/cookie-parser": "^1.4.2", "@types/jwt-decode": "2.2.1", diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 7dedbe62cd..5692ff992e 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,9 +22,9 @@ "mock-data:local": "./scripts/mock-data-local.sh" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^3.0.3", @@ -41,7 +41,7 @@ "yup": "^0.29.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/lodash": "^4.14.151", "@types/node-fetch": "^2.5.7", "@types/supertest": "^2.0.8", diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 44b3a7b7ee..1e10e91478 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,15 +21,15 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/plugin-api-docs": "^0.1.1-alpha.18", - "@backstage/plugin-github-actions": "^0.1.1-alpha.18", - "@backstage/plugin-jenkins": "^0.1.1-alpha.18", - "@backstage/plugin-scaffolder": "^0.1.1-alpha.18", - "@backstage/plugin-sentry": "^0.1.1-alpha.18", - "@backstage/plugin-techdocs": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/plugin-api-docs": "^0.1.1-alpha.19", + "@backstage/plugin-github-actions": "^0.1.1-alpha.19", + "@backstage/plugin-jenkins": "^0.1.1-alpha.19", + "@backstage/plugin-scaffolder": "^0.1.1-alpha.19", + "@backstage/plugin-sentry": "^0.1.1-alpha.19", + "@backstage/plugin-techdocs": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -42,9 +42,9 @@ "swr": "^0.3.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/react-hooks": "^3.3.0", diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 4fb7a28124..b70230364f 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-circleci", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "postpack": "backstage-cli postpack" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -36,8 +36,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/explore/package.json b/plugins/explore/package.json index e7783675ae..9b729d7a82 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-explore", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,9 +32,9 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index 8fcc4591d2..db35022fae 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-github-actions", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,11 +22,11 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/core-api": "^0.1.1-alpha.18", - "@backstage/plugin-catalog": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/core-api": "^0.1.1-alpha.19", + "@backstage/plugin-catalog": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -39,8 +39,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index 5815386014..a2a7900d52 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gitops-profiles", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,8 +32,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 27437d0318..94a755bb17 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphiql", "description": "Backstage plugin for browsing GraphQL APIs", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "private": false, "publishConfig": { "access": "public", @@ -31,8 +31,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -43,9 +43,9 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/graphql/package.json b/plugins/graphql/package.json index 02dc9d3608..f41a4540ec 100644 --- a/plugins/graphql/package.json +++ b/plugins/graphql/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-graphql-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", "@types/express": "^4.17.6", "apollo-server": "^2.16.0", "apollo-server-express": "^2.16.0", @@ -32,7 +32,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/supertest": "^2.0.8", "eslint-plugin-graphql": "^4.0.0", "msw": "^0.20.5", diff --git a/plugins/identity-backend/package.json b/plugins/identity-backend/package.json index c5c3bffc9b..8b16d85827 100644 --- a/plugins/identity-backend/package.json +++ b/plugins/identity-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-identity-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", "@types/express": "^4.17.6", "compression": "^1.7.4", "cors": "^2.8.5", @@ -33,7 +33,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "jest-fetch-mock": "^3.0.3" }, "files": [ diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index dce577801e..2e8b89bea3 100644 --- a/plugins/jenkins/package.json +++ b/plugins/jenkins/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-jenkins", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -35,8 +35,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index cbf4a77f7e..bcd34d32de 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-lighthouse", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -33,9 +33,9 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index 5b1b5d54ce..b6e066bbc0 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-newrelic", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -31,8 +31,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index 023fc81cf2..4a37ab8a45 100644 --- a/plugins/proxy-backend/package.json +++ b/plugins/proxy-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-proxy-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -19,8 +19,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^3.0.3", @@ -34,7 +34,7 @@ "yup": "^0.29.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/node-fetch": "^2.5.7", "@types/supertest": "^2.0.8", "@types/uuid": "^8.0.0", diff --git a/plugins/register-component/package.json b/plugins/register-component/package.json index 02fd3fe0ed..c13121de66 100644 --- a/plugins/register-component/package.json +++ b/plugins/register-component/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-register-component", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,10 +21,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/plugin-catalog": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/plugin-catalog": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -36,8 +36,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 4b4a45b9dd..a52abf91b9 100644 --- a/plugins/rollbar-backend/package.json +++ b/plugins/rollbar-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-rollbar-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,8 +20,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", "@types/express": "^4.17.6", "axios": "^0.19.2", "camelcase-keys": "^6.2.2", @@ -37,7 +37,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/supertest": "^2.0.8", "jest-fetch-mock": "^3.0.3", "supertest": "^4.0.2" diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index 1ca02cb528..5eeeacc505 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-rollbar", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -35,9 +35,9 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/react-hooks": "^3.3.0", diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index fc956c9832..7112d0f49d 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", "@octokit/rest": "^18.0.0", "@types/dockerode": "^2.5.32", "@types/express": "^4.17.6", @@ -43,7 +43,7 @@ "yaml": "^1.10.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@octokit/types": "^5.0.1", "@types/fs-extra": "^9.0.1", "@types/git-url-parse": "^9.0.0", diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index c0376a3594..8dec795c3d 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,10 +21,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/plugin-catalog": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/plugin-catalog": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -41,9 +41,9 @@ "swr": "^0.3.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/sentry-backend/package.json b/plugins/sentry-backend/package.json index e199dd2f1d..8850886493 100644 --- a/plugins/sentry-backend/package.json +++ b/plugins/sentry-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sentry-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", "@types/express": "^4.17.6", "axios": "^0.19.2", "compression": "^1.7.4", @@ -34,7 +34,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "jest-fetch-mock": "^3.0.3" }, "files": [ diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index 3a6cf54199..365a394331 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sentry", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -34,8 +34,8 @@ "timeago.js": "^4.0.2" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index b2a7be7341..2e788e31e8 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-radar", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/test-utils-core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/test-utils-core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -35,8 +35,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index 8a5a9fd10a..6a24ce3e8f 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-backend", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.18", - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/config": "^0.1.1-alpha.18", + "@backstage/backend-common": "^0.1.1-alpha.19", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/config": "^0.1.1-alpha.19", "@types/dockerode": "^2.5.34", "@types/express": "^4.17.6", "dockerode": "^3.2.1", @@ -35,7 +35,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", "@types/node-fetch": "^2.5.7", "supertest": "^4.0.2" }, diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 03f1d6053b..d5416c7329 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,12 +22,12 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.18", - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/core-api": "^0.1.1-alpha.18", - "@backstage/plugin-catalog": "^0.1.1-alpha.18", - "@backstage/test-utils": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/catalog-model": "^0.1.1-alpha.19", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/core-api": "^0.1.1-alpha.19", + "@backstage/plugin-catalog": "^0.1.1-alpha.19", + "@backstage/test-utils": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -40,8 +40,8 @@ "sanitize-html": "^1.27.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/welcome/package.json b/plugins/welcome/package.json index 2c0c838de8..b832c5d37a 100644 --- a/plugins/welcome/package.json +++ b/plugins/welcome/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-welcome", - "version": "0.1.1-alpha.18", + "version": "0.1.1-alpha.19", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -21,8 +21,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.18", - "@backstage/theme": "^0.1.1-alpha.18", + "@backstage/core": "^0.1.1-alpha.19", + "@backstage/theme": "^0.1.1-alpha.19", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,8 +32,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.18", - "@backstage/dev-utils": "^0.1.1-alpha.18", + "@backstage/cli": "^0.1.1-alpha.19", + "@backstage/dev-utils": "^0.1.1-alpha.19", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", From 613c06bdd6101b45ce3feb3329cde22796f631d9 Mon Sep 17 00:00:00 2001 From: Sebastian Qvarfordt Date: Fri, 21 Aug 2020 12:11:03 +0200 Subject: [PATCH 116/656] Techdocs: Updates preparers to make it work in actual usecases (#1957) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feature(techdocs): JIT generation of techdocs * Fix linting issues * Add Techdocs tab to entity page * Added missing dep * Added missing dep * Removed duplicate dep * Better tab navigation * Update label on entity page to say docs * Fix lint issue * Move building of docs from entity to a function * feature(techdocs): JIT generation of techdocs * Fix linting issues * Add Techdocs tab to entity page * Added missing dep * Added missing dep * Removed duplicate dep * Better tab navigation * Update label on entity page to say docs * Fix lint issue * Move building of docs from entity to a function * attempt to add back react as a dep * Fixed failing test * fix(techdocs): Hopefully fixed tests * Fixed another failing test * Initial apiRef for techdocs storage * Cleaned up some code in reader * test(headertabs): add tests to HeaderTabs component * fix(headertabs): change tab mock id * fix(techdocs-generator): fix problem with macOS symlink to tmp folder * fix(lint): remove unused configApiRef * wip * Ongoing cleanups * Cleanups and fix tests * Initial github preparer. Doesn't work properly yet * Updated dir preparer to handle github managed-by-location and added github preparer * Removed old file * Fixed feedback and added better logging to techdocs build process * Updated create-app template Co-authored-by: Fredrik Adelöw Co-authored-by: Emma Indal --- packages/backend/src/plugins/techdocs.ts | 17 +- .../packages/backend/src/plugins/techdocs.ts | 6 +- .../documented-component.yaml | 2 +- plugins/techdocs-backend/package.json | 2 + .../src/service/router.test.ts | 3 +- .../techdocs-backend/src/service/router.ts | 18 +- .../src/service/standaloneServer.ts | 6 +- .../src/techdocs/stages/generate/techdocs.ts | 44 +++-- .../src/techdocs/stages/prepare/dir.test.ts | 7 +- .../src/techdocs/stages/prepare/dir.ts | 79 ++++++++- .../src/techdocs/stages/prepare/github.ts | 71 ++++++++ .../src/techdocs/stages/prepare/helpers.ts | 12 +- .../src/techdocs/stages/prepare/index.ts | 1 + .../src/techdocs/stages/prepare/preparers.ts | 11 +- .../src/techdocs/stages/publish/local.test.ts | 7 +- .../src/techdocs/stages/publish/local.ts | 21 ++- yarn.lock | 160 +++++++++++++++++- 17 files changed, 413 insertions(+), 54 deletions(-) create mode 100644 plugins/techdocs-backend/src/techdocs/stages/prepare/github.ts diff --git a/packages/backend/src/plugins/techdocs.ts b/packages/backend/src/plugins/techdocs.ts index 812a56cd9f..7364cc4d83 100644 --- a/packages/backend/src/plugins/techdocs.ts +++ b/packages/backend/src/plugins/techdocs.ts @@ -20,22 +20,27 @@ import { Preparers, Generators, LocalPublish, - TechdocsGenerator + TechdocsGenerator, + GithubPreparer, } from '@backstage/plugin-techdocs-backend'; import { PluginEnvironment } from '../types'; import Docker from 'dockerode'; -export default async function createPlugin({ logger, config }: PluginEnvironment) { +export default async function createPlugin({ + logger, + config, +}: PluginEnvironment) { const generators = new Generators(); - const techdocsGenerator = new TechdocsGenerator(); + const techdocsGenerator = new TechdocsGenerator(logger); generators.register('techdocs', techdocsGenerator); - const directoryPreparer = new DirectoryPreparer(); const preparers = new Preparers(); - + const githubPreparer = new GithubPreparer(logger); + const directoryPreparer = new DirectoryPreparer(logger); preparers.register('dir', directoryPreparer); + preparers.register('github', githubPreparer); - const publisher = new LocalPublish(); + const publisher = new LocalPublish(logger); const dockerClient = new Docker(); diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts b/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts index 8c5144f50c..a7b713fcb6 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts @@ -14,15 +14,15 @@ export default async function createPlugin({ config, }: PluginEnvironment) { const generators = new Generators(); - const techdocsGenerator = new TechdocsGenerator(); + const techdocsGenerator = new TechdocsGenerator(logger); generators.register('techdocs', techdocsGenerator); - const directoryPreparer = new DirectoryPreparer(); + const directoryPreparer = new DirectoryPreparer(logger); const preparers = new Preparers(); preparers.register('dir', directoryPreparer); - const publisher = new LocalPublish(); + const publisher = new LocalPublish(logger); const dockerClient = new Docker(); diff --git a/plugins/techdocs-backend/examples/documented-component/documented-component.yaml b/plugins/techdocs-backend/examples/documented-component/documented-component.yaml index d5a1214b15..045ff89013 100644 --- a/plugins/techdocs-backend/examples/documented-component/documented-component.yaml +++ b/plugins/techdocs-backend/examples/documented-component/documented-component.yaml @@ -4,7 +4,7 @@ metadata: name: documented-component description: A Service with TechDocs documentation annotations: - backstage.io/techdocs-ref: 'dir:./' + backstage.io/techdocs-ref: 'github:https://github.com/spotify/backstage/blob/master/plugins/techdocs-backend/examples/documented-component' spec: type: service lifecycle: experimental diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index 8a5a9fd10a..0ce09ba473 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -30,8 +30,10 @@ "express": "^4.17.1", "express-promise-router": "^3.0.3", "fs-extra": "^9.0.1", + "git-url-parse": "^11.1.3", "knex": "^0.21.1", "node-fetch": "^2.6.0", + "nodegit": "^0.27.0", "winston": "^3.2.1" }, "devDependencies": { diff --git a/plugins/techdocs-backend/src/service/router.test.ts b/plugins/techdocs-backend/src/service/router.test.ts index b28010e059..c266f98677 100644 --- a/plugins/techdocs-backend/src/service/router.test.ts +++ b/plugins/techdocs-backend/src/service/router.test.ts @@ -24,12 +24,13 @@ import { createRouter } from './router'; describe('createRouter', () => { let app: express.Express; + const logger = getVoidLogger(); beforeAll(async () => { const router = await createRouter({ preparers: new Preparers(), generators: new Generators(), - publisher: new LocalPublish(), + publisher: new LocalPublish(logger), logger: getVoidLogger(), dockerClient: new Docker(), config: ConfigReader.fromConfigs([]), diff --git a/plugins/techdocs-backend/src/service/router.ts b/plugins/techdocs-backend/src/service/router.ts index e11e3bb57f..f93d182edc 100644 --- a/plugins/techdocs-backend/src/service/router.ts +++ b/plugins/techdocs-backend/src/service/router.ts @@ -45,18 +45,34 @@ export async function createRouter({ publisher, config, dockerClient, + logger, }: RouterOptions): Promise { const router = Router(); + const getEntityId = (entity: Entity) => { + return `${entity.kind}:${entity.metadata.namespace ?? ''}:${ + entity.metadata.name + }`; + }; + const buildDocsForEntity = async (entity: Entity) => { const preparer = preparers.get(entity); const generator = generators.get(entity); + logger.info(`[TechDocs] Running preparer on entity ${getEntityId(entity)}`); + const preparedDir = await preparer.prepare(entity); + + logger.info( + `[TechDocs] Running generator on entity ${getEntityId(entity)}`, + ); const { resultDir } = await generator.run({ - directory: await preparer.prepare(entity), + directory: preparedDir, dockerClient, }); + logger.info( + `[TechDocs] Running publisher on entity ${getEntityId(entity)}`, + ); await publisher.publish({ entity, directory: resultDir, diff --git a/plugins/techdocs-backend/src/service/standaloneServer.ts b/plugins/techdocs-backend/src/service/standaloneServer.ts index 76de973875..93233af4c0 100644 --- a/plugins/techdocs-backend/src/service/standaloneServer.ts +++ b/plugins/techdocs-backend/src/service/standaloneServer.ts @@ -41,14 +41,14 @@ export async function startStandaloneServer( logger.debug('Creating application...'); const preparers = new Preparers(); - const directoryPreparer = new DirectoryPreparer(); + const directoryPreparer = new DirectoryPreparer(logger); preparers.register('dir', directoryPreparer); const generators = new Generators(); - const techdocsGenerator = new TechdocsGenerator(); + const techdocsGenerator = new TechdocsGenerator(logger); generators.register('techdocs', techdocsGenerator); - const publisher = new LocalPublish(); + const publisher = new LocalPublish(logger); const dockerClient = new Docker(); diff --git a/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts b/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts index 32b811af78..96449a0bd6 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts @@ -13,17 +13,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +import fs from 'fs-extra'; +import path from 'path'; +import os from 'os'; +import { Logger } from 'winston'; + import { GeneratorBase, GeneratorRunOptions, GeneratorRunResult, } from './types'; import { runDockerContainer } from './helpers'; -import fs from 'fs-extra'; -import path from 'path'; -import os from 'os'; export class TechdocsGenerator implements GeneratorBase { + private readonly logger: Logger; + + constructor(logger: Logger) { + this.logger = logger; + } + public async run({ directory, logStream, @@ -36,18 +45,23 @@ export class TechdocsGenerator implements GeneratorBase { path.join(tmpdirResolvedPath, 'techdocs-tmp-'), ); - await runDockerContainer({ - imageName: 'spotify/techdocs', - args: ['build', '-d', '/result'], - logStream, - docsDir: directory, - resultDir, - dockerClient, - }); - - console.log( - `[TechDocs]: Successfully generated docs from ${directory} into ${resultDir}`, - ); + try { + await runDockerContainer({ + imageName: 'spotify/techdocs', + args: ['build', '-d', '/result'], + logStream, + docsDir: directory, + resultDir, + dockerClient, + }); + this.logger.info( + `[TechDocs]: Successfully generated docs from ${directory} into ${resultDir}`, + ); + } catch (error) { + this.logger.debug( + `[TechDocs]: Failed to generate docs from ${directory} into ${resultDir}`, + ); + } return { resultDir }; } diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.test.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.test.ts index 8a99a8b59a..fed7a0e107 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.test.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.test.ts @@ -14,6 +14,9 @@ * limitations under the License. */ import { DirectoryPreparer } from './dir'; +import { getVoidLogger } from '@backstage/backend-common'; + +const logger = getVoidLogger(); const createMockEntity = (annotations: {}) => { return { @@ -30,7 +33,7 @@ const createMockEntity = (annotations: {}) => { describe('directory preparer', () => { it('should merge managed-by-location and techdocs-ref when techdocs-ref is relative', async () => { - const directoryPreparer = new DirectoryPreparer(); + const directoryPreparer = new DirectoryPreparer(logger); const mockEntity = createMockEntity({ 'backstage.io/managed-by-location': @@ -44,7 +47,7 @@ describe('directory preparer', () => { }); it('should merge managed-by-location and techdocs-ref when techdocs-ref is absolute', async () => { - const directoryPreparer = new DirectoryPreparer(); + const directoryPreparer = new DirectoryPreparer(logger); const mockEntity = createMockEntity({ 'backstage.io/managed-by-location': diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.ts index e61a3e48ac..1560c2ea8e 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.ts @@ -13,26 +13,95 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import fs from 'fs-extra'; +import os from 'os'; import { PreparerBase } from './types'; import { Entity } from '@backstage/catalog-model'; import path from 'path'; import { parseReferenceAnnotation } from './helpers'; +import { InputError } from '@backstage/backend-common'; +import { Clone } from 'nodegit'; +import parseGitUrl from 'git-url-parse'; +import { Logger } from 'winston'; export class DirectoryPreparer implements PreparerBase { - prepare(entity: Entity): Promise { - const { location: managedByLocation } = parseReferenceAnnotation( + private readonly logger: Logger; + + constructor(logger: Logger) { + this.logger = logger; + } + + private async cloneGithubRepo(entity: Entity) { + const { type, target } = parseReferenceAnnotation( 'backstage.io/managed-by-location', entity, ); - const { location: techdocsLocation } = parseReferenceAnnotation( + + if (type !== 'github') { + throw new InputError(`Wrong target type: ${type}, should be 'github'`); + } + + const parsedGitLocation = parseGitUrl(target); + const repositoryTmpPath = path.join( + os.tmpdir(), + 'backstage-repo', + parsedGitLocation.source, + parsedGitLocation.owner, + parsedGitLocation.name, + parsedGitLocation.ref, + ); + if (fs.existsSync(repositoryTmpPath)) { + return repositoryTmpPath; + } + const repositoryCheckoutUrl = parsedGitLocation.toString('https'); + + this.logger.debug( + `[TechDocs] Checking out repository ${repositoryCheckoutUrl} to ${repositoryTmpPath}`, + ); + + fs.mkdirSync(repositoryTmpPath, { recursive: true }); + await Clone.clone(repositoryCheckoutUrl, repositoryTmpPath, {}); + + return repositoryTmpPath; + } + + private async resolveManagedByLocationToDir(entity: Entity) { + const { type, target } = parseReferenceAnnotation( + 'backstage.io/managed-by-location', + entity, + ); + + this.logger.debug( + `[TechDocs] Building docs for entity with type 'dir' and managed-by-location '${type}'`, + ); + switch (type) { + case 'github': { + const parsedGitLocation = parseGitUrl(target); + const repoLocation = await this.cloneGithubRepo(entity); + + return path.dirname( + path.join(repoLocation, parsedGitLocation.filepath), + ); + } + case 'file': + return path.dirname(target); + default: + throw new InputError(`Unable to resolve location type ${type}`); + } + } + + async prepare(entity: Entity): Promise { + const { target } = parseReferenceAnnotation( 'backstage.io/techdocs-ref', entity, ); - const managedByLocationDirectory = path.dirname(managedByLocation); + const managedByLocationDirectory = await this.resolveManagedByLocationToDir( + entity, + ); return new Promise(resolve => { - resolve(path.resolve(managedByLocationDirectory, techdocsLocation)); + resolve(path.resolve(managedByLocationDirectory, target)); }); } } diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/github.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/github.ts new file mode 100644 index 0000000000..27ee277f02 --- /dev/null +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/github.ts @@ -0,0 +1,71 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 fs from 'fs-extra'; +import path from 'path'; +import os from 'os'; +import { Entity } from '@backstage/catalog-model'; +import { InputError } from '@backstage/backend-common'; +import { PreparerBase } from './types'; +import parseGitUrl from 'git-url-parse'; +import { Clone } from 'nodegit'; +import { parseReferenceAnnotation } from './helpers'; +import { Logger } from 'winston'; + +export class GithubPreparer implements PreparerBase { + private readonly logger: Logger; + + constructor(logger: Logger) { + this.logger = logger; + } + + async prepare(entity: Entity): Promise { + const { type, target } = parseReferenceAnnotation( + 'backstage.io/techdocs-ref', + entity, + ); + + if (type !== 'github') { + throw new InputError(`Wrong target type: ${type}, should be 'github'`); + } + + const parsedGitLocation = parseGitUrl(target); + const repositoryTmpPath = path.join( + os.tmpdir(), + 'backstage-repo', + parsedGitLocation.source, + parsedGitLocation.owner, + parsedGitLocation.name, + parsedGitLocation.ref, + ); + + if (fs.existsSync(repositoryTmpPath)) { + this.logger.debug( + `[TechDocs] Found repository already checked out at ${repositoryTmpPath}`, + ); + return path.join(repositoryTmpPath, parsedGitLocation.filepath); + } + const repositoryCheckoutUrl = parsedGitLocation.toString('https'); + + this.logger.debug( + `[TechDocs] Checking out repository ${repositoryCheckoutUrl} to ${repositoryTmpPath}`, + ); + + fs.mkdirSync(repositoryTmpPath, { recursive: true }); + await Clone.clone(repositoryCheckoutUrl, repositoryTmpPath, {}); + + return path.join(repositoryTmpPath, parsedGitLocation.filepath); + } +} diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/helpers.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/helpers.ts index 1fd86805ca..3b3388d58d 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/helpers.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/helpers.ts @@ -18,8 +18,8 @@ import { InputError } from '@backstage/backend-common'; import { RemoteProtocol } from './types'; export type ParsedLocationAnnotation = { - protocol: RemoteProtocol; - location: string; + type: RemoteProtocol; + target: string; }; export const parseReferenceAnnotation = ( @@ -36,19 +36,19 @@ export const parseReferenceAnnotation = ( // split on the first colon for the protocol and the rest after the first split // is the location. - const [protocol, location] = annotation.split(/:(.+)/) as [ + const [type, target] = annotation.split(/:(.+)/) as [ RemoteProtocol?, string?, ]; - if (!protocol || !location) { + if (!type || !target) { throw new InputError( `Failure to parse either protocol or location for entity: ${entity.metadata.name}`, ); } return { - protocol, - location, + type, + target, }; }; diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/index.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/index.ts index 9f928e7413..535b56f327 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/index.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/index.ts @@ -14,5 +14,6 @@ * limitations under the License. */ export { DirectoryPreparer } from './dir'; +export { GithubPreparer } from './github'; export { Preparers } from './preparers'; export type { PreparerBuilder } from './types'; diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/preparers.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/preparers.ts index 1d5b689d8b..1c8fadd145 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/preparers.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/preparers.ts @@ -26,13 +26,16 @@ export class Preparers implements PreparerBuilder { } get(entity: Entity): PreparerBase { - const { protocol } = parseReferenceAnnotation('backstage.io/techdocs-ref', entity); - const preparer = this.preparerMap.get(protocol); + const { type } = parseReferenceAnnotation( + 'backstage.io/techdocs-ref', + entity, + ); + const preparer = this.preparerMap.get(type); if (!preparer) { - throw new Error(`No preparer registered for type: "${protocol}"`); + throw new Error(`No preparer registered for type: "${type}"`); } return preparer; } -} \ No newline at end of file +} diff --git a/plugins/techdocs-backend/src/techdocs/stages/publish/local.test.ts b/plugins/techdocs-backend/src/techdocs/stages/publish/local.test.ts index 1ed8be3898..55e0a547e9 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/publish/local.test.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/publish/local.test.ts @@ -13,9 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { LocalPublish } from './local'; import fs from 'fs-extra'; import path from 'path'; +import { getVoidLogger } from '@backstage/backend-common'; +import { LocalPublish } from './local'; const createMockEntity = (annotations = {}) => { return { @@ -30,9 +31,11 @@ const createMockEntity = (annotations = {}) => { }; }; +const logger = getVoidLogger(); + describe('local publisher', () => { it('should publish generated documentation dir', async () => { - const publisher = new LocalPublish(); + const publisher = new LocalPublish(logger); const mockEntity = createMockEntity(); diff --git a/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts b/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts index 73a7d5a758..be9e1876d8 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts @@ -13,12 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { PublisherBase } from './types'; -import { Entity } from '@backstage/catalog-model'; -import path from 'path'; import fs from 'fs-extra'; +import path from 'path'; +import { Logger } from 'winston'; +import { Entity } from '@backstage/catalog-model'; +import { PublisherBase } from './types'; export class LocalPublish implements PublisherBase { + private readonly logger: Logger; + + constructor(logger: Logger) { + this.logger = logger; + } + publish({ entity, directory, @@ -37,16 +44,22 @@ export class LocalPublish implements PublisherBase { '../../../../static/docs/', entity.kind, entityNamespace, - entity.metadata.name + entity.metadata.name, ); if (!fs.existsSync(publishDir)) { + this.logger.info( + `[TechDocs]: Could not find ${publishDir}, creates the directory.`, + ); fs.mkdirSync(publishDir, { recursive: true }); } return new Promise((resolve, reject) => { fs.copy(directory, publishDir, err => { if (err) { + this.logger.debug( + `[TechDocs]: Failed to copy docs from ${directory} to ${publishDir}`, + ); reject(err); } diff --git a/yarn.lock b/yarn.lock index c3527d6df6..f9e0a21696 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3419,6 +3419,11 @@ resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== +"@sindresorhus/is@^2.0.0": + version "2.1.1" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" + integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== + "@sinonjs/commons@^1.7.0": version "1.7.1" resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.1.tgz#da5fd19a5f71177a53778073978873964f49acf1" @@ -4302,6 +4307,13 @@ dependencies: defer-to-connect "^1.0.1" +"@szmarczak/http-timer@^4.0.0": + version "4.0.5" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" + integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== + dependencies: + defer-to-connect "^2.0.0" + "@testing-library/cypress@^6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@testing-library/cypress/-/cypress-6.0.0.tgz#935f7716e0e495f02fd753a42621e4d350097dce" @@ -4467,6 +4479,16 @@ "@types/connect" "*" "@types/node" "*" +"@types/cacheable-request@^6.0.1": + version "6.0.1" + resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" + integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + "@types/cheerio@^0.22.8": version "0.22.21" resolved "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.21.tgz#5e37887de309ba11b2e19a6e14cad7874b31a8a3" @@ -4739,6 +4761,11 @@ resolved "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b" integrity sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ== +"@types/http-cache-semantics@*": + version "4.0.0" + resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" + integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== + "@types/http-errors@^1.6.3": version "1.8.0" resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.0.tgz#682477dbbbd07cd032731cb3b0e7eaee3d026b69" @@ -4833,6 +4860,13 @@ resolved "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== +"@types/keyv@*", "@types/keyv@^3.1.1": + version "3.1.1" + resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" + integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== + dependencies: + "@types/node" "*" + "@types/koa-compose@*": version "3.2.5" resolved "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" @@ -5150,6 +5184,13 @@ dependencies: "@types/node" "*" +"@types/responselike@*": + version "1.0.0" + resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + "@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" @@ -7389,6 +7430,14 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cacheable-lookup@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz#87be64a18b925234875e10a9bb1ebca4adce6b38" + integrity sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg== + dependencies: + "@types/keyv" "^3.1.1" + keyv "^4.0.0" + cacheable-request@^2.1.1: version "2.1.4" resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" @@ -7415,6 +7464,19 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" +cacheable-request@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" + integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^2.0.0" + cachedir@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" @@ -9100,6 +9162,13 @@ decompress-response@^4.2.0: dependencies: mimic-response "^2.0.0" +decompress-response@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz#7849396e80e3d1eba8cb2f75ef4930f76461cb0f" + integrity sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw== + dependencies: + mimic-response "^2.0.0" + decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" @@ -9215,6 +9284,11 @@ defer-to-connect@^1.0.1: resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +defer-to-connect@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" + integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== + 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" @@ -11630,6 +11704,13 @@ git-url-parse@^11.1.2: dependencies: git-up "^4.0.0" +git-url-parse@^11.1.3: + version "11.1.3" + resolved "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.1.3.tgz#03625b6fc09905e9ad1da7bb2b84be1bf9123143" + integrity sha512-GPsfwticcu52WQ+eHp0IYkAyaOASgYdtsQDIt4rUp6GbiNt1P9ddrh3O0kQB0eD4UJZszVqNT3+9Zwcg40fywA== + dependencies: + git-up "^4.0.0" + gitconfiglocal@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" @@ -11853,6 +11934,27 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" +got@^10.7.0: + version "10.7.0" + resolved "https://registry.npmjs.org/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" + integrity sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg== + dependencies: + "@sindresorhus/is" "^2.0.0" + "@szmarczak/http-timer" "^4.0.0" + "@types/cacheable-request" "^6.0.1" + cacheable-lookup "^2.0.0" + cacheable-request "^7.0.1" + decompress-response "^5.0.0" + duplexer3 "^0.1.4" + get-stream "^5.0.0" + lowercase-keys "^2.0.0" + mimic-response "^2.1.0" + p-cancelable "^2.0.0" + p-event "^4.0.0" + responselike "^2.0.0" + to-readable-stream "^2.0.0" + type-fest "^0.10.0" + got@^7.0.0: version "7.1.0" resolved "https://registry.npmjs.org/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" @@ -14292,6 +14394,11 @@ json-buffer@3.0.0: resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -14547,6 +14654,13 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" +keyv@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.0.1.tgz#9fe703cb4a94d6d11729d320af033307efd02ee6" + integrity sha512-xz6Jv6oNkbhrFCvCP7HQa8AaII8y8LRpoSm661NOKLr4uHuBwhX4epXrPQgF3+xdJnN4Esm5X0xwY4bOlALOtw== + dependencies: + json-buffer "3.0.1" + killable@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" @@ -15733,7 +15847,7 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== -mimic-response@^2.0.0: +mimic-response@^2.0.0, mimic-response@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== @@ -16323,6 +16437,21 @@ nodegit@0.26.5: request-promise-native "^1.0.5" tar-fs "^1.16.3" +nodegit@^0.27.0: + version "0.27.0" + resolved "https://registry.npmjs.org/nodegit/-/nodegit-0.27.0.tgz#4e8cc236f60e1c97324a5acff99056fe116a6ebe" + integrity sha512-E9K4gPjWiA0b3Tx5lfWCzG7Cvodi2idl3V5UD2fZrOrHikIfrN7Fc2kWLtMUqqomyoToYJLeIC8IV7xb1CYRLA== + dependencies: + fs-extra "^7.0.0" + got "^10.7.0" + json5 "^2.1.0" + lodash "^4.17.14" + nan "^2.14.0" + node-gyp "^4.0.0" + node-pre-gyp "^0.13.0" + ramda "^0.25.0" + tar-fs "^1.16.3" + nodemon@^2.0.2: version "2.0.4" resolved "https://registry.npmjs.org/nodemon/-/nodemon-2.0.4.tgz#55b09319eb488d6394aa9818148c0c2d1c04c416" @@ -16870,6 +16999,11 @@ p-cancelable@^1.0.0: resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== +p-cancelable@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" + integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== + 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" @@ -16889,6 +17023,13 @@ p-event@^2.1.0: dependencies: p-timeout "^2.0.1" +p-event@^4.0.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== + dependencies: + p-timeout "^3.1.0" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -19745,6 +19886,13 @@ responselike@1.0.2, responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" +responselike@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" + integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + dependencies: + lowercase-keys "^2.0.0" + restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" @@ -21906,6 +22054,11 @@ to-readable-stream@^1.0.0: resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== +to-readable-stream@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8" + integrity sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w== + to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" @@ -22204,6 +22357,11 @@ type-detect@4.0.8: resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz#7f06b2b9fbfc581068d1341ffabd0349ceafc642" + integrity sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw== + type-fest@^0.11.0: version "0.11.0" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" From b9683dc2369b5fde8a2d8bf54703d748be081f62 Mon Sep 17 00:00:00 2001 From: Raghunandan Date: Fri, 21 Aug 2020 12:27:03 +0200 Subject: [PATCH 117/656] Commit lock file --- yarn.lock | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index c3527d6df6..140bd5dcdc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1544,6 +1544,42 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@backstage/core@0.1.1-alpha.18": + version "0.1.1-alpha.18" + resolved "https://registry.npmjs.org/@backstage/core/-/core-0.1.1-alpha.18.tgz#a8384b6fa65af17ee76166f2e0e4922356856ec1" + integrity sha512-7I0eaTfF30xyX4CD/bFUnXXy22zQzQbqSFFYIGLm5j/XFi3IRb6WANoFMs1hvB/BPI/rojX9oN51PfuHBS6xHg== + dependencies: + "@backstage/config" "^0.1.1-alpha.18" + "@backstage/core-api" "^0.1.1-alpha.18" + "@backstage/theme" "^0.1.1-alpha.18" + "@material-ui/core" "^4.9.1" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.45" + "@types/react" "^16.9" + "@types/react-sparklines" "^1.7.0" + classnames "^2.2.6" + clsx "^1.1.0" + lodash "^4.17.15" + material-table "1.62.x" + prop-types "^15.7.2" + rc-progress "^3.0.0" + react "^16.12.0" + react-dom "^16.12.0" + react-helmet "6.1.0" + react-hook-form "^5.7.2" + react-router "6.0.0-beta.0" + react-router-dom "6.0.0-beta.0" + react-sparklines "^1.7.0" + react-syntax-highlighter "^13.2.1" + react-use "^15.3.3" + +"@backstage/theme@0.1.1-alpha.18": + version "0.1.1-alpha.18" + resolved "https://registry.npmjs.org/@backstage/theme/-/theme-0.1.1-alpha.18.tgz#40adb3e798054d75ccf57c81e5fe3cb6e32cfac5" + integrity sha512-dDTUGH/fxRGtwnR6NCK44ojlfNyFQJKVlax2CNIB/JA43+2c5G2ipDvJ8MhxDeTwwNeO+HJj1AF0AqoJcc1QdQ== + dependencies: + "@material-ui/core" "^4.9.1" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -15446,6 +15482,22 @@ markdown-toc@^1.2.0: repeat-string "^1.6.1" strip-color "^0.1.0" +material-table@1.62.x: + version "1.62.0" + resolved "https://registry.npmjs.org/material-table/-/material-table-1.62.0.tgz#117793ebf16ab0fccbb6f8a670d849a7be0b5995" + integrity sha512-+3tnk32lXtkXeKM7k/hZ82jpSzlXU5CsWXqJHq4Tl0Un7ycjK2Kef6EMPqeE3i58vKNqbIvbrFf/ESH0D/Qwig== + dependencies: + "@date-io/date-fns" "^1.1.0" + "@material-ui/pickers" "^3.2.2" + classnames "^2.2.6" + date-fns "^2.0.0-alpha.27" + debounce "^1.2.0" + fast-deep-equal "2.0.1" + filefy "0.1.10" + prop-types "^15.6.2" + react-beautiful-dnd "^13.0.0" + react-double-scrollbar "0.0.15" + material-table@1.68.0: version "1.68.0" resolved "https://registry.npmjs.org/material-table/-/material-table-1.68.0.tgz#275c3d9a885c40ae4bc5a7461c00e877f92397b9" @@ -19070,7 +19122,7 @@ react-syntax-highlighter@^11.0.2: prismjs "^1.8.4" refractor "^2.4.1" -react-syntax-highlighter@^13.5.1: +react-syntax-highlighter@^13.2.1, react-syntax-highlighter@^13.5.1: version "13.5.1" resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.1.tgz#f21737cf6d582474a0f18b06b52613f4349c0e64" integrity sha512-VVYTnFXF55WMRGdr3QNEzAzcypFZqH45kS7rqh90+AFeNGtui8/gV5AIOIJjwTsuP2UxcO9qvEq94Jq9BYFUhw== From 4d17c1fd94666c8114899d357c044755107d6b60 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 21 Aug 2020 13:24:43 +0200 Subject: [PATCH 118/656] cli: fix jest transform pattern termination --- packages/cli/config/jest.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cli/config/jest.js b/packages/cli/config/jest.js index 77d3a84e82..d95dd21489 100644 --- a/packages/cli/config/jest.js +++ b/packages/cli/config/jest.js @@ -37,8 +37,8 @@ async function getConfig() { // TODO: jest is working on module support, it's possible that we can remove this in the future transform: { '\\.esm\\.js$': require.resolve('jest-esm-transformer'), - '\\.(js|jsx|ts|tsx)': require.resolve('ts-jest'), - '\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg)': require.resolve( + '\\.(js|jsx|ts|tsx)$': require.resolve('ts-jest'), + '\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg)$': require.resolve( './jestFileTransform.js', ), }, From f43063d463f30bf66c021b3c95e76fe8f50f4d7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Fri, 21 Aug 2020 13:28:54 +0200 Subject: [PATCH 119/656] fix dependency and lockfile --- packages/app/package.json | 2 +- yarn.lock | 66 +++++---------------------------------- 2 files changed, 8 insertions(+), 60 deletions(-) diff --git a/packages/app/package.json b/packages/app/package.json index ad4aa3524c..d6598b9954 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -28,7 +28,7 @@ "@material-ui/icons": "^4.9.1", "@octokit/rest": "^18.0.0", "@roadiehq/backstage-plugin-github-pull-requests": "0.3.0", - "@roadiehq/backstage-plugin-travis-ci": "^0.1.3", + "@roadiehq/backstage-plugin-travis-ci": "^0.1.4", "history": "^5.0.0", "prop-types": "^15.7.2", "react": "^16.12.0", diff --git a/yarn.lock b/yarn.lock index 140bd5dcdc..ec6343107a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1544,42 +1544,6 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" -"@backstage/core@0.1.1-alpha.18": - version "0.1.1-alpha.18" - resolved "https://registry.npmjs.org/@backstage/core/-/core-0.1.1-alpha.18.tgz#a8384b6fa65af17ee76166f2e0e4922356856ec1" - integrity sha512-7I0eaTfF30xyX4CD/bFUnXXy22zQzQbqSFFYIGLm5j/XFi3IRb6WANoFMs1hvB/BPI/rojX9oN51PfuHBS6xHg== - dependencies: - "@backstage/config" "^0.1.1-alpha.18" - "@backstage/core-api" "^0.1.1-alpha.18" - "@backstage/theme" "^0.1.1-alpha.18" - "@material-ui/core" "^4.9.1" - "@material-ui/icons" "^4.9.1" - "@material-ui/lab" "4.0.0-alpha.45" - "@types/react" "^16.9" - "@types/react-sparklines" "^1.7.0" - classnames "^2.2.6" - clsx "^1.1.0" - lodash "^4.17.15" - material-table "1.62.x" - prop-types "^15.7.2" - rc-progress "^3.0.0" - react "^16.12.0" - react-dom "^16.12.0" - react-helmet "6.1.0" - react-hook-form "^5.7.2" - react-router "6.0.0-beta.0" - react-router-dom "6.0.0-beta.0" - react-sparklines "^1.7.0" - react-syntax-highlighter "^13.2.1" - react-use "^15.3.3" - -"@backstage/theme@0.1.1-alpha.18": - version "0.1.1-alpha.18" - resolved "https://registry.npmjs.org/@backstage/theme/-/theme-0.1.1-alpha.18.tgz#40adb3e798054d75ccf57c81e5fe3cb6e32cfac5" - integrity sha512-dDTUGH/fxRGtwnR6NCK44ojlfNyFQJKVlax2CNIB/JA43+2c5G2ipDvJ8MhxDeTwwNeO+HJj1AF0AqoJcc1QdQ== - dependencies: - "@material-ui/core" "^4.9.1" - "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -3367,13 +3331,13 @@ react-router-dom "6.0.0-beta.0" react-use "^15.3.3" -"@roadiehq/backstage-plugin-travis-ci@^0.1.3": - version "0.1.3" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-0.1.3.tgz#597882bb6db119b9c8970f15cc506c5d70ba2c41" - integrity sha512-xTnc71VtQSp7qfiE/p92U2/FEAvsG32BHIELebYZGCIt+ZqY/fSiXZSGsOXFDlg9adTu0e8ro6HWnknXCdo2pw== +"@roadiehq/backstage-plugin-travis-ci@^0.1.4": + version "0.1.4" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-0.1.4.tgz#ddbb2ba5b9d47f474462ecbc8c769759578e8526" + integrity sha512-T1eJ0huhwZcRHjrDKWoAzlKBv8UbhXgrvE7wuHD7dCcmfQdln0jbn7cskOpTnVmrzGXWKQ6mDyKX3LfdEPYbAw== dependencies: - "@backstage/core" "0.1.1-alpha.18" - "@backstage/theme" "0.1.1-alpha.18" + "@backstage/core" "^0.1.1-alpha.18" + "@backstage/theme" "^0.1.1-alpha.18" "@material-ui/core" "^4.9.1" "@material-ui/icons" "^4.9.1" "@material-ui/lab" "4.0.0-alpha.45" @@ -15482,22 +15446,6 @@ markdown-toc@^1.2.0: repeat-string "^1.6.1" strip-color "^0.1.0" -material-table@1.62.x: - version "1.62.0" - resolved "https://registry.npmjs.org/material-table/-/material-table-1.62.0.tgz#117793ebf16ab0fccbb6f8a670d849a7be0b5995" - integrity sha512-+3tnk32lXtkXeKM7k/hZ82jpSzlXU5CsWXqJHq4Tl0Un7ycjK2Kef6EMPqeE3i58vKNqbIvbrFf/ESH0D/Qwig== - dependencies: - "@date-io/date-fns" "^1.1.0" - "@material-ui/pickers" "^3.2.2" - classnames "^2.2.6" - date-fns "^2.0.0-alpha.27" - debounce "^1.2.0" - fast-deep-equal "2.0.1" - filefy "0.1.10" - prop-types "^15.6.2" - react-beautiful-dnd "^13.0.0" - react-double-scrollbar "0.0.15" - material-table@1.68.0: version "1.68.0" resolved "https://registry.npmjs.org/material-table/-/material-table-1.68.0.tgz#275c3d9a885c40ae4bc5a7461c00e877f92397b9" @@ -19122,7 +19070,7 @@ react-syntax-highlighter@^11.0.2: prismjs "^1.8.4" refractor "^2.4.1" -react-syntax-highlighter@^13.2.1, react-syntax-highlighter@^13.5.1: +react-syntax-highlighter@^13.5.1: version "13.5.1" resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.1.tgz#f21737cf6d582474a0f18b06b52613f4349c0e64" integrity sha512-VVYTnFXF55WMRGdr3QNEzAzcypFZqH45kS7rqh90+AFeNGtui8/gV5AIOIJjwTsuP2UxcO9qvEq94Jq9BYFUhw== From 9b655c8f713c031092ee744922347b1112527205 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 21 Aug 2020 14:47:17 +0200 Subject: [PATCH 120/656] chore(deps): bump @material-icons/font from 1.0.3 to 1.0.4 (#2063) Bumps [@material-icons/font](https://github.com/material-icons/material-icons) from 1.0.3 to 1.0.4. - [Release notes](https://github.com/material-icons/material-icons/releases) - [Commits](https://github.com/material-icons/material-icons/commits) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4329ae46ca..38855bb50d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2874,9 +2874,9 @@ write-file-atomic "^2.3.0" "@material-icons/font@^1.0.2": - version "1.0.3" - resolved "https://registry.npmjs.org/@material-icons/font/-/font-1.0.3.tgz#f722e5a69a03f20ef47d015cb69420bebeeaabe5" - integrity sha512-aIRd0Z9b/HJ/O24KOaP7dNsXypMnXhpWrpLVYvQB/JesVqXYSbioYND200sR+C14a0LSCp+qWnWCnSXmN1hWGw== + version "1.0.4" + resolved "https://registry.npmjs.org/@material-icons/font/-/font-1.0.4.tgz#4bfc59dcaba90f6d71e4aeffd1ebb2ea6119c844" + integrity sha512-tt80HS8dDtx/jj6fXWi6CycCZWC1AY3YOXjHwxShwe/jrW/fRVdw0C9JOGo0ij5/7y+uG0Rp0c4plu7J4Cq7EA== "@material-ui/core@^4.9.1": version "4.9.7" From 307106588491ffcd1008f07359d672168793a091 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 21 Aug 2020 14:47:45 +0200 Subject: [PATCH 121/656] chore(deps): bump swagger-ui-react from 3.31.1 to 3.32.4 (#2059) Bumps [swagger-ui-react](https://github.com/swagger-api/swagger-ui) from 3.31.1 to 3.32.4. - [Release notes](https://github.com/swagger-api/swagger-ui/releases) - [Commits](https://github.com/swagger-api/swagger-ui/compare/v3.31.1...v3.32.4) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 168 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 104 insertions(+), 64 deletions(-) diff --git a/yarn.lock b/yarn.lock index 38855bb50d..06324a67a3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1415,7 +1415,7 @@ pirates "^4.0.0" source-map-support "^0.5.16" -"@babel/runtime-corejs2@^7.10.4": +"@babel/runtime-corejs2@^7.10.4", "@babel/runtime-corejs2@^7.8.7": version "7.11.2" resolved "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.11.2.tgz#700a03945ebad0d31ba6690fc8a6bcc9040faa47" integrity sha512-AC/ciV28adSSpEkBglONBWq4/Lvm6GAZuxIoyVtsnUpZMl0bxLtoChEnYAkP+47KyOCayZanojtflUEUJtR/6Q== @@ -1423,14 +1423,6 @@ core-js "^2.6.5" regenerator-runtime "^0.13.4" -"@babel/runtime-corejs2@^7.8.7": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.10.3.tgz#81bc99a96bfcb6db3f0dcf73fdc577cc554d341b" - integrity sha512-enKvnR/kKFbZFgXYo165wtSA5OeiTlgsnU4jV3vpKRhfWUJjLS6dfVcjIPeRcgJbgEgdgu0I+UyBWqu6c0GumQ== - dependencies: - core-js "^2.6.5" - regenerator-runtime "^0.13.4" - "@babel/runtime-corejs3@^7.10.2": version "7.10.3" resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.3.tgz#931ed6941d3954924a7aa967ee440e60c507b91a" @@ -8484,6 +8476,11 @@ core-js-pure@^3.0.0, core-js-pure@^3.0.1: resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.4.tgz#4bf1ba866e25814f149d4e9aaa08c36173506e3a" integrity sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw== +core-js@^1.0.0: + version "1.2.7" + resolved "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= + core-js@^2.4.0, core-js@^2.5.7, core-js@^2.6.11, core-js@^2.6.5: version "2.6.11" resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" @@ -8567,6 +8564,15 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" +create-react-class@^15.5.1: + version "15.6.3" + resolved "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" + integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg== + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + object-assign "^4.1.1" + create-react-context@0.3.0, create-react-context@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c" @@ -10919,6 +10925,19 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" +fbjs@^0.8.9: + version "0.8.17" + resolved "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" + integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.18" + fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" @@ -12377,11 +12396,6 @@ highlight.js@~9.13.0: resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz#054586d53a6863311168488a0f58d6c505ce641e" integrity sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A== -highlight.js@~9.15.0, highlight.js@~9.15.1: - version "9.15.10" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz#7b18ed75c90348c045eef9ed08ca1319a2219ad2" - integrity sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw== - history@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/history/-/history-5.0.0.tgz#0cabbb6c4bbf835addb874f8259f6d25101efd08" @@ -13085,7 +13099,7 @@ into-stream@^3.1.0: from2 "^2.1.1" p-is-promise "^1.1.0" -invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: +invariant@^2.0.0, invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: version "2.2.4" resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -13579,7 +13593,7 @@ is-ssh@^1.3.0: dependencies: protocols "^1.1.0" -is-stream@^1.0.0, is-stream@^1.1.0: +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -13720,6 +13734,14 @@ isobject@^4.0.0: resolved "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== +isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + isomorphic-form-data@~2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isomorphic-form-data/-/isomorphic-form-data-2.0.0.tgz#9f6adf1c4c61ae3aefd8f110ab60fb9b143d6cec" @@ -14271,15 +14293,7 @@ js-tokens@^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.1, js-yaml@^3.8.3: - version "3.13.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^3.14.0, js-yaml@^3.8.1: +js-yaml@^3.13.1, js-yaml@^3.14.0, js-yaml@^3.8.1, js-yaml@^3.8.3: version "3.14.0" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== @@ -15058,7 +15072,7 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash-es@^4.17.11: +lodash-es@^4.17.11, lodash-es@^4.2.1: version "4.17.15" resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ== @@ -15302,7 +15316,7 @@ longest@^1.0.0: resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.0, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -15339,14 +15353,6 @@ lowercase-keys@^2.0.0: resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lowlight@1.12.1: - version "1.12.1" - resolved "https://registry.npmjs.org/lowlight/-/lowlight-1.12.1.tgz#014acf8dd73a370e02ff1cc61debcde3bb1681eb" - integrity sha512-OqaVxMGIESnawn+TU/QMV5BJLbUghUfjDWPAtFqDYDmDtr4FnB+op8xM+pR7nKlauHNUHXGt0VgWatFB8voS5w== - dependencies: - fault "^1.0.2" - highlight.js "~9.15.0" - lowlight@^1.14.0: version "1.14.0" resolved "https://registry.npmjs.org/lowlight/-/lowlight-1.14.0.tgz#83ebc143fec0f9e6c0d3deffe01be129ce56b108" @@ -16261,6 +16267,14 @@ node-fetch@2.6.0, node-fetch@^2.1.2, node-fetch@^2.2.0, node-fetch@^2.3.0, node- resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== +node-fetch@^1.0.1: + version "1.7.3" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + node-forge@0.9.0: version "0.9.0" resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" @@ -18439,6 +18453,13 @@ promise.series@^0.2.0: resolved "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" integrity sha1-LMfr6Vn8OmYZwEq029yeRS2GS70= +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + promise@^8.0.3: version "8.1.0" resolved "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" @@ -19052,7 +19073,7 @@ react-inspector@^4.0.0: is-dom "^1.0.9" prop-types "^15.6.1" -react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: +react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: version "16.13.1" resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -19072,7 +19093,7 @@ react-lazylog@^4.5.2: text-encoding-utf-8 "^1.0.1" whatwg-fetch "^2.0.4" -react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: +react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== @@ -19121,18 +19142,17 @@ react-popper@^1.3.6: typed-styles "^0.0.7" warning "^4.0.2" -react-redux@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/react-redux/-/react-redux-5.1.2.tgz#b19cf9e21d694422727bf798e934a916c4080f57" - integrity sha512-Ns1G0XXc8hDyH/OcBHOxNgQx9ayH3SPxBnFCOidGKSle8pKihysQw2rG/PmciUQRoclhVBO8HMhiRmGXnDja9Q== +react-redux@=4.4.10: + version "4.4.10" + resolved "https://registry.npmjs.org/react-redux/-/react-redux-4.4.10.tgz#ad57bd1db00c2d0aa7db992b360ce63dd0b80ec5" + integrity sha512-tjL0Bmpkj75Td0k+lXlF8Fc8a9GuXFv/3ahUOCXExWs/jhsKiQeTffdH0j5byejCGCRL4tvGFYlrwBF1X/Aujg== dependencies: - "@babel/runtime" "^7.1.2" + create-react-class "^15.5.1" hoist-non-react-statics "^3.3.0" - invariant "^2.2.4" - loose-envify "^1.1.0" - prop-types "^15.6.1" - react-is "^16.6.0" - react-lifecycles-compat "^3.0.0" + invariant "^2.0.0" + lodash "^4.17.11" + loose-envify "^1.4.0" + prop-types "^15.7.2" react-redux@^7.1.1: version "7.2.0" @@ -19189,16 +19209,16 @@ react-string-replace@^0.4.1: dependencies: lodash "^4.17.4" -react-syntax-highlighter@=12.2.1: - version "12.2.1" - resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-12.2.1.tgz#14d78352da1c1c3f93c6698b70ec7c706b83493e" - integrity sha512-CTsp0ZWijwKRYFg9xhkWD4DSpQqE4vb2NKVMdPAkomnILSmsNBHE0n5GuI5zB+PU3ySVvXvdt9jo+ViD9XibCA== +react-syntax-highlighter@=13.5.0: + version "13.5.0" + resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.0.tgz#c0f3fd826a52b2a6ce5786d4ce60c3e0665b65c0" + integrity sha512-2nKo8spFxe9shcjbdUiqxkrf/IMDqKUZLx7JVIxEJ17P+fYFGL4CRsZZC66UPeQ2o/f29eKu31CrkKGCK1RHuA== dependencies: "@babel/runtime" "^7.3.1" - highlight.js "~9.15.1" - lowlight "1.12.1" - prismjs "^1.8.4" - refractor "^2.4.1" + highlight.js "^10.1.1" + lowlight "^1.14.0" + prismjs "^1.21.0" + refractor "^3.1.0" react-syntax-highlighter@^11.0.2: version "11.0.2" @@ -19535,7 +19555,17 @@ redux-immutable@3.1.0: dependencies: immutable "^3.8.1" -redux@^4.0.4, redux@^4.0.5: +redux@=3.7.2: + version "3.7.2" + resolved "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" + integrity sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A== + dependencies: + lodash "^4.2.1" + lodash-es "^4.2.1" + loose-envify "^1.1.0" + symbol-observable "^1.0.3" + +redux@^4.0.4: version "4.0.5" resolved "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== @@ -20411,7 +20441,7 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4: +setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= @@ -21568,9 +21598,9 @@ swagger-client@=3.10.12: url "~0.11.0" swagger-ui-react@^3.31.1: - version "3.31.1" - resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-3.31.1.tgz#1770cfa1dc390f79887d641ea35ee654f4bf7d80" - integrity sha512-bGpNzizMT/7N4LTdw6yx+t3rpsEoalrn0VIfhUzv9zXVrUTl+3AKPLHpLBr0r4NvzvaZLrYuSjkatnLfngJ4vg== + version "3.32.4" + resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-3.32.4.tgz#cc2cef0e2b9faff7c0dab111e9b4b9c87d0a01a2" + integrity sha512-AbdeBVIV6oM4pXKEsGY2Ijs1ySmdVYP4cHdZYu0kWghxKVqskocsfB+SsvRTh6mOxdZ2YNAEhc7RMdSqaWnGgw== dependencies: "@babel/runtime-corejs2" "^7.10.4" "@braintree/sanitize-url" "^4.0.0" @@ -21596,9 +21626,9 @@ swagger-ui-react@^3.31.1: react-immutable-pure-component "^1.1.1" react-inspector "^2.3.0" react-motion "^0.5.2" - react-redux "^5.1.2" - react-syntax-highlighter "=12.2.1" - redux "^4.0.5" + react-redux "=4.4.10" + react-syntax-highlighter "=13.5.0" + redux "=3.7.2" redux-immutable "3.1.0" remarkable "^2.0.1" reselect "^4.0.0" @@ -21616,7 +21646,7 @@ swr@^0.3.0: dependencies: fast-deep-equal "2.0.1" -symbol-observable@^1.0.4, symbol-observable@^1.1.0, symbol-observable@^1.2.0: +symbol-observable@^1.0.3, symbol-observable@^1.0.4, symbol-observable@^1.1.0, symbol-observable@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== @@ -22422,6 +22452,11 @@ typescript@^3.9.3: resolved "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== +ua-parser-js@^0.7.18: + version "0.7.21" + resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" + integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== + uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" @@ -23202,6 +23237,11 @@ whatwg-fetch@3.0.0, whatwg-fetch@^3.0.0: resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== +whatwg-fetch@>=0.10.0: + version "3.4.0" + resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz#e11de14f4878f773fbebcde8871b2c0699af8b30" + integrity sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ== + whatwg-fetch@^2.0.0, whatwg-fetch@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" From c6c3c94c18f73d72de35d3f1e5ac258b5a2bb5c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Fri, 21 Aug 2020 14:48:16 +0200 Subject: [PATCH 122/656] Camelcase GitHub and GitLab (#2034) * Camelcase GitHub and GitLab * GitLab * Code GitLab * GitHub in code * Fix auth naming * Update docs/features/software-templates/adding-templates.md Co-authored-by: Raghunandan Balachandran * Update docs/features/software-templates/extending/create-your-own-preparer.md Co-authored-by: Raghunandan Balachandran Co-authored-by: Raghunandan Balachandran --- docs/features/software-templates/adding-templates.md | 2 +- .../extending/create-your-own-preparer.md | 2 +- docs/features/software-templates/index.md | 2 +- docs/features/software-templates/installation.md | 2 +- docs/reference/utility-apis/README.md | 4 ++-- microsite/blog/2020-03-18-what-is-backstage.md | 2 +- packages/app/src/identityProviders.ts | 8 ++++---- packages/core-api/src/apis/definitions/auth.ts | 8 ++++---- packages/core/src/layout/Sidebar/UserSettings.tsx | 4 ++-- plugins/auth-backend/src/providers/github/provider.ts | 2 +- .../ingestion/processors/GitlabApiReaderProcessor.test.ts | 2 +- .../src/ingestion/processors/GitlabApiReaderProcessor.ts | 4 ++-- .../src/ingestion/processors/GitlabReaderProcessor.ts | 2 +- plugins/github-actions/src/api/GithubActionsApi.ts | 2 +- plugins/graphiql/src/lib/api/GraphQLEndpoints.ts | 2 +- .../src/scaffolder/stages/publish/github.test.ts | 2 +- 16 files changed, 25 insertions(+), 25 deletions(-) diff --git a/docs/features/software-templates/adding-templates.md b/docs/features/software-templates/adding-templates.md index 2ec4bdd6f3..b0405cab79 100644 --- a/docs/features/software-templates/adding-templates.md +++ b/docs/features/software-templates/adding-templates.md @@ -54,7 +54,7 @@ contains more information about the required fields. Once we have a `template.yaml` ready, we can then add it to the service catalog for use by the scaffolder. -Currently the catalog supports loading definitions from Github + Local Files. To +Currently the catalog supports loading definitions from GitHub + Local Files. To load from other places, not only will there need to be another preparer, but the support to load the location will also need to be added to the Catalog. diff --git a/docs/features/software-templates/extending/create-your-own-preparer.md b/docs/features/software-templates/extending/create-your-own-preparer.md index 739c516658..0b3fb31323 100644 --- a/docs/features/software-templates/extending/create-your-own-preparer.md +++ b/docs/features/software-templates/extending/create-your-own-preparer.md @@ -54,7 +54,7 @@ The `protocol` is set on the when added to the service catalog. You can see more about this `PreparerKey` here in [Register your own template](../adding-templates.md) -**note:** Currently the catalog supports loading definitions from Github + Local +**note:** Currently the catalog supports loading definitions from GitHub + Local Files, which translate into the two `PreparerKeys` `file` and `github`. To load from other places, not only will there need to be another preparer, but the support to load the location will also need to be added to the Catalog. diff --git a/docs/features/software-templates/index.md b/docs/features/software-templates/index.md index d9a86ee7aa..503fbb7a3d 100644 --- a/docs/features/software-templates/index.md +++ b/docs/features/software-templates/index.md @@ -34,7 +34,7 @@ internally. After filling in these variables, you'll get some more fields to fill out which are required for backstage usage. The owner, which is a `user` in the backstage -system, and the `storePath` which right now must be a Github Organisation and a +system, and the `storePath` which right now must be a GitHub Organisation and a non-existing github repository name in the format `organisation/reponame`. ![Enter backstage vars](../../assets/software-templates/template-picked-2.png) diff --git a/docs/features/software-templates/installation.md b/docs/features/software-templates/installation.md index 0508d1f3f7..73b4f20359 100644 --- a/docs/features/software-templates/installation.md +++ b/docs/features/software-templates/installation.md @@ -109,7 +109,7 @@ export default async function createPlugin({ logger }: PluginEnvironment) { preparers.register('file', filePreparer); preparers.register('github', githubPreparer); - // Create Github client with your access token from environment variables + // Create GitHub client with your access token from environment variables const githubClient = new Octokit({ auth: process.env.GITHUB_ACCESS_TOKEN }); const publisher = new GithubPublisher({ client: githubClient }); diff --git a/docs/reference/utility-apis/README.md b/docs/reference/utility-apis/README.md index fbfbbc475e..521628fd33 100644 --- a/docs/reference/utility-apis/README.md +++ b/docs/reference/utility-apis/README.md @@ -55,7 +55,7 @@ ApiRef: ## githubAuth -Provides authentication towards Github APIs +Provides authentication towards GitHub APIs Implemented types: [OAuthApi](./OAuthApi.md), [ProfileInfoApi](./ProfileInfoApi.md), @@ -67,7 +67,7 @@ ApiRef: ## gitlabAuth -Provides authentication towards Gitlab APIs +Provides authentication towards GitLab APIs Implemented types: [OAuthApi](./OAuthApi.md), [ProfileInfoApi](./ProfileInfoApi.md), diff --git a/microsite/blog/2020-03-18-what-is-backstage.md b/microsite/blog/2020-03-18-what-is-backstage.md index 942adc607f..8b0a0fcbe6 100644 --- a/microsite/blog/2020-03-18-what-is-backstage.md +++ b/microsite/blog/2020-03-18-what-is-backstage.md @@ -13,7 +13,7 @@ Two days ago, we released the open source version of [Backstage](https://backsta ## What’s the big infrastructure problem? -As companies grow, their infrastructure systems get messier. Consider a team that wants to deploy something to the cloud. While Spotify has many awesome engineers, not every engineer is well-versed in our chosen cloud-provider tooling. Yet everyone is required to know and understand Terraform, GCP/AWS/Azure CLIs, Gitlab CI, Prometheus, Kubernetes, Docker, various monitoring and alerting tools, and much, much more. Once other resources come into play (databases, queueing, etc.), each engineer requires even more tools and domain-specific knowledge (or “disciplinesâ€), from backend to machine learning, to mobile and data. +As companies grow, their infrastructure systems get messier. Consider a team that wants to deploy something to the cloud. While Spotify has many awesome engineers, not every engineer is well-versed in our chosen cloud-provider tooling. Yet everyone is required to know and understand Terraform, GCP/AWS/Azure CLIs, GitLab CI, Prometheus, Kubernetes, Docker, various monitoring and alerting tools, and much, much more. Once other resources come into play (databases, queueing, etc.), each engineer requires even more tools and domain-specific knowledge (or “disciplinesâ€), from backend to machine learning, to mobile and data. ## What’s the fix? diff --git a/packages/app/src/identityProviders.ts b/packages/app/src/identityProviders.ts index e80b1d6fea..ea5af8b505 100644 --- a/packages/app/src/identityProviders.ts +++ b/packages/app/src/identityProviders.ts @@ -30,14 +30,14 @@ export const providers = [ }, { id: 'gitlab-auth-provider', - title: 'Gitlab', - message: 'Sign In using Gitlab', + title: 'GitLab', + message: 'Sign In using GitLab', apiRef: gitlabAuthApiRef, }, { id: 'github-auth-provider', - title: 'Github', - message: 'Sign In using Github', + title: 'GitHub', + message: 'Sign In using GitHub', apiRef: githubAuthApiRef, }, { diff --git a/packages/core-api/src/apis/definitions/auth.ts b/packages/core-api/src/apis/definitions/auth.ts index a1a408fece..ffe44afb8a 100644 --- a/packages/core-api/src/apis/definitions/auth.ts +++ b/packages/core-api/src/apis/definitions/auth.ts @@ -222,7 +222,7 @@ export const googleAuthApiRef = createApiRef< }); /** - * Provides authentication towards Github APIs. + * Provides authentication towards GitHub APIs. * * See https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/ * for a full list of supported scopes. @@ -231,7 +231,7 @@ export const githubAuthApiRef = createApiRef< OAuthApi & ProfileInfoApi & BackstageIdentityApi & SessionStateApi >({ id: 'core.auth.github', - description: 'Provides authentication towards Github APIs', + description: 'Provides authentication towards GitHub APIs', }); /** @@ -252,7 +252,7 @@ export const oktaAuthApiRef = createApiRef< }); /** - * Provides authentication towards Gitlab APIs. + * Provides authentication towards GitLab APIs. * * See https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#limiting-scopes-of-a-personal-access-token * for a full list of supported scopes. @@ -261,7 +261,7 @@ export const gitlabAuthApiRef = createApiRef< OAuthApi & ProfileInfoApi & BackstageIdentityApi & SessionStateApi >({ id: 'core.auth.gitlab', - description: 'Provides authentication towards Gitlab APIs', + description: 'Provides authentication towards GitLab APIs', }); /** diff --git a/packages/core/src/layout/Sidebar/UserSettings.tsx b/packages/core/src/layout/Sidebar/UserSettings.tsx index e69d63186d..74fa5e173a 100644 --- a/packages/core/src/layout/Sidebar/UserSettings.tsx +++ b/packages/core/src/layout/Sidebar/UserSettings.tsx @@ -62,14 +62,14 @@ export function SidebarUserSettings() { )} {providers.includes('github') && ( )} {providers.includes('gitlab') && ( diff --git a/plugins/auth-backend/src/providers/github/provider.ts b/plugins/auth-backend/src/providers/github/provider.ts index e6ba56d2c3..b63acdfb20 100644 --- a/plugins/auth-backend/src/providers/github/provider.ts +++ b/plugins/auth-backend/src/providers/github/provider.ts @@ -74,7 +74,7 @@ export class GithubAuthProvider implements OAuthProviderHandlers { idToken: params.id_token, }; - // Github provides an id numeric value (123) + // GitHub provides an id numeric value (123) // as a fallback const id = passportProfile!.id; diff --git a/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.test.ts b/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.test.ts index cd46d97d13..c43c68591e 100644 --- a/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.test.ts +++ b/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.test.ts @@ -50,7 +50,7 @@ describe('GitlabApiReaderProcessor', () => { 'https://gitlab.com/groupA/teams/teamA/repoA/-/blob/branch/my/path/', url: null, err: - 'Incorrect url: https://gitlab.com/groupA/teams/teamA/repoA/-/blob/branch/my/path/, Error: Gitlab url does not end in .ya?ml', + 'Incorrect url: https://gitlab.com/groupA/teams/teamA/repoA/-/blob/branch/my/path/, Error: GitLab url does not end in .ya?ml', }, ]; diff --git a/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.ts b/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.ts index 6964640eb4..3e585bf2b3 100644 --- a/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.ts +++ b/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.ts @@ -77,7 +77,7 @@ export class GitlabApiReaderProcessor implements LocationProcessor { const branchAndfilePath = url.pathname.split('/-/blob/')[1]; if (!branchAndfilePath.match(/\.ya?ml$/)) { - throw new Error('Gitlab url does not end in .ya?ml'); + throw new Error('GitLab url does not end in .ya?ml'); } const [branch, ...filePath] = branchAndfilePath.split('/'); @@ -127,7 +127,7 @@ export class GitlabApiReaderProcessor implements LocationProcessor { return projectID; } catch (e) { - throw new Error(`Could not get Gitlab ProjectID for: ${target}, ${e}`); + throw new Error(`Could not get GitLab ProjectID for: ${target}, ${e}`); } } } diff --git a/plugins/catalog-backend/src/ingestion/processors/GitlabReaderProcessor.ts b/plugins/catalog-backend/src/ingestion/processors/GitlabReaderProcessor.ts index 211f325afe..9f308ee184 100644 --- a/plugins/catalog-backend/src/ingestion/processors/GitlabReaderProcessor.ts +++ b/plugins/catalog-backend/src/ingestion/processors/GitlabReaderProcessor.ts @@ -77,7 +77,7 @@ export class GitlabReaderProcessor implements LocationProcessor { blobKeyword !== 'blob' || !restOfPath.join('/').match(/\.yaml$/) ) { - throw new Error('Wrong Gitlab URL'); + throw new Error('Wrong GitLab URL'); } // Replace 'blob' with 'raw' diff --git a/plugins/github-actions/src/api/GithubActionsApi.ts b/plugins/github-actions/src/api/GithubActionsApi.ts index acdfb90cf3..9a95f21860 100644 --- a/plugins/github-actions/src/api/GithubActionsApi.ts +++ b/plugins/github-actions/src/api/GithubActionsApi.ts @@ -23,7 +23,7 @@ import { export const githubActionsApiRef = createApiRef({ id: 'plugin.githubactions.service', - description: 'Used by the Github Actions plugin to make requests', + description: 'Used by the GitHub Actions plugin to make requests', }); export type GithubActionsApi = { diff --git a/plugins/graphiql/src/lib/api/GraphQLEndpoints.ts b/plugins/graphiql/src/lib/api/GraphQLEndpoints.ts index ee0b4bfd4e..23a9e9e697 100644 --- a/plugins/graphiql/src/lib/api/GraphQLEndpoints.ts +++ b/plugins/graphiql/src/lib/api/GraphQLEndpoints.ts @@ -33,7 +33,7 @@ export type GithubEndpointConfig = { id: string; title: string; /** - * Github GraphQL API url, defaults to https://api.github.com/graphql + * GitHub GraphQL API url, defaults to https://api.github.com/graphql */ url?: string; /** diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts index 164ec316df..93493ab2cc 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts @@ -45,7 +45,7 @@ const { mockRemote: jest.Mocked; }; -describe('Github Publisher', () => { +describe('GitHub Publisher', () => { const publisher = new GithubPublisher({ client: new Octokit() }); beforeEach(() => { From f6f56aa7484b50f9c2293eddd91fc3d6ccaa73f7 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 21 Aug 2020 14:56:46 +0200 Subject: [PATCH 123/656] TechDocs: documentation template (#1954) * feat(docs-template): Add docs template to create a standalone docs project * fix(docs-template): add docs template to mock data * fix(docs-template): owner of template * add techdocs-ref to cookiecutter docs project * delete unused cookiecutter json file * update docs in default index.md file * rename from .yaml to .yml to be consistent to docs * update techdocs-ref to use github protocol --- .../docs-template/template.yaml | 29 +++++++++++++++++++ .../component-info.yaml | 12 ++++++++ .../docs/index.md | 28 ++++++++++++++++++ .../{{cookiecutter.component_id}}/mkdocs.yml | 8 +++++ .../scaffolder-backend/scripts/mock-data.sh | 1 + .../src/techdocs/stages/prepare/dir.ts | 3 +- .../src/techdocs/stages/prepare/github.ts | 3 +- 7 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 plugins/scaffolder-backend/sample-templates/docs-template/template.yaml create mode 100644 plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/component-info.yaml create mode 100644 plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/docs/index.md create mode 100644 plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/mkdocs.yml diff --git a/plugins/scaffolder-backend/sample-templates/docs-template/template.yaml b/plugins/scaffolder-backend/sample-templates/docs-template/template.yaml new file mode 100644 index 0000000000..01ebdadbce --- /dev/null +++ b/plugins/scaffolder-backend/sample-templates/docs-template/template.yaml @@ -0,0 +1,29 @@ +apiVersion: backstage.io/v1alpha1 +kind: Template +metadata: + name: docs-template + title: Documentation Template + description: Create a new standalone documentation project + tags: + - Experimental + - TechDocs + - MkDocs +spec: + owner: spotify/techdocs-core + templater: cookiecutter + type: documentation + path: '.' + + schema: + required: + - component_id + properties: + component_id: + title: Name + type: string + description: Unique name of the component + description: + title: Description + type: string + description: Description of the component + \ No newline at end of file diff --git a/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/component-info.yaml b/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/component-info.yaml new file mode 100644 index 0000000000..854b692fcf --- /dev/null +++ b/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/component-info.yaml @@ -0,0 +1,12 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: {{cookiecutter.component_id}} + description: {{cookiecutter.description}} + annotations: + github.com/project-slug: {{cookiecutter.storePath}} + backstage.io/techdocs-ref: github:https://github.com/{{cookiecutter.storePath}} +spec: + type: documentation + lifecycle: experimental + owner: {{cookiecutter.owner}} diff --git a/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/docs/index.md b/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/docs/index.md new file mode 100644 index 0000000000..5352ef7801 --- /dev/null +++ b/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/docs/index.md @@ -0,0 +1,28 @@ +## {{ cookiecutter.component_id }} + +{{ cookiecutter.description }} + +## Getting started + +Start write your documentation by adding more markdown (.md) files to this folder (/docs) or replace the content in this file. + +## Table of Contents + +The Table of Contents on the right is generated automatically based on the hierarchy +of headings. Only use one H1 (`#` in Markdown) per file. + +## Site navigation + +For new pages to appear in the left hand navigation you need edit the `mkdocs.yml` +file in root of your repo. The navigation can also link out to other sites. + +Alternatively, if there is no `nav` section in `mkdocs.yml`, a navigation section +will be created for you. However, you will not be able to use alternate titles for +pages, or include links to other sites. + +Note that MkDocs uses `mkdocs.yml`, not `mkdocs.yaml`, although both appear to work. +See also . + +## Support + +That's it. If you need support, reach out in [#docs-like-code](https://discord.com/channels/687207715902193673/714754240933003266) on Discord. diff --git a/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/mkdocs.yml b/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/mkdocs.yml new file mode 100644 index 0000000000..2126971502 --- /dev/null +++ b/plugins/scaffolder-backend/sample-templates/docs-template/{{cookiecutter.component_id}}/mkdocs.yml @@ -0,0 +1,8 @@ +site_name: {{cookiecutter.component_id}} +site_description: {{cookiecutter.description}} + +nav: + - Introduction: index.md + +plugins: + - techdocs-core diff --git a/plugins/scaffolder-backend/scripts/mock-data.sh b/plugins/scaffolder-backend/scripts/mock-data.sh index f18d4b4838..9a9b0b186b 100755 --- a/plugins/scaffolder-backend/scripts/mock-data.sh +++ b/plugins/scaffolder-backend/scripts/mock-data.sh @@ -4,6 +4,7 @@ for URL in \ 'react-ssr-template' \ 'springboot-grpc-template' \ 'create-react-app' \ + 'docs-template' \ ; do \ curl \ --location \ diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.ts index 1560c2ea8e..e108ac4ab9 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.ts @@ -43,7 +43,8 @@ export class DirectoryPreparer implements PreparerBase { const parsedGitLocation = parseGitUrl(target); const repositoryTmpPath = path.join( - os.tmpdir(), + // fs.realpathSync fixes a problem with macOS returning a path that is a symlink + fs.realpathSync(os.tmpdir()), 'backstage-repo', parsedGitLocation.source, parsedGitLocation.owner, diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/github.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/github.ts index 27ee277f02..aa8a4bb228 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/github.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/github.ts @@ -43,7 +43,8 @@ export class GithubPreparer implements PreparerBase { const parsedGitLocation = parseGitUrl(target); const repositoryTmpPath = path.join( - os.tmpdir(), + // fs.realpathSync fixes a problem with macOS returning a path that is a symlink + fs.realpathSync(os.tmpdir()), 'backstage-repo', parsedGitLocation.source, parsedGitLocation.owner, From 382491dc5af1ca2567a93a1be4b218b4b08a93e6 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 21 Aug 2020 14:25:09 +0200 Subject: [PATCH 124/656] plugins/catalog: switch CatalogClient to use DiscoveryApi --- packages/app/src/apis.ts | 8 +---- plugins/catalog/src/api/CatalogClient.test.ts | 33 ++++++++----------- plugins/catalog/src/api/CatalogClient.ts | 23 +++++-------- 3 files changed, 22 insertions(+), 42 deletions(-) diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index eb8cfb92af..c787ffc589 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -178,13 +178,7 @@ export const apis = (config: ConfigApi) => { }), ); - builder.add( - catalogApiRef, - new CatalogClient({ - apiOrigin: backendUrl, - basePath: '/catalog', - }), - ); + builder.add(catalogApiRef, new CatalogClient({ discoveryApi })); builder.add( scaffolderApiRef, diff --git a/plugins/catalog/src/api/CatalogClient.test.ts b/plugins/catalog/src/api/CatalogClient.test.ts index 7803f2e173..18f062db77 100644 --- a/plugins/catalog/src/api/CatalogClient.test.ts +++ b/plugins/catalog/src/api/CatalogClient.test.ts @@ -18,25 +18,21 @@ import { rest } from 'msw'; import { setupServer } from 'msw/node'; import { CatalogClient } from './CatalogClient'; import { Entity } from '@backstage/catalog-model'; +import { UrlPatternDiscovery } from '@backstage/core'; const server = setupServer(); +const mockBaseUrl = 'http://backstage:9191/i-am-a-mock-base'; +const discoveryApi = UrlPatternDiscovery.compile(mockBaseUrl); describe('CatalogClient', () => { beforeAll(() => server.listen()); afterEach(() => server.resetHandlers()); afterAll(() => server.close()); - const mockApiOrigin = 'http://backstage:9191'; - const mockBasePath = '/i-am-a-mock-base'; - let client = new CatalogClient({ - apiOrigin: mockApiOrigin, - basePath: mockBasePath, - }); + + let client = new CatalogClient({ discoveryApi }); beforeEach(() => { - client = new CatalogClient({ - apiOrigin: mockApiOrigin, - basePath: mockBasePath, - }); + client = new CatalogClient({ discoveryApi }); }); describe('getEntiies', () => { @@ -61,7 +57,7 @@ describe('CatalogClient', () => { beforeEach(() => { server.use( - rest.get(`${mockApiOrigin}${mockBasePath}/entities`, (_, res, ctx) => { + rest.get(`${mockBaseUrl}/entities`, (_, res, ctx) => { return res(ctx.json(defaultResponse)); }), ); @@ -75,15 +71,12 @@ describe('CatalogClient', () => { it('builds entity search filters properly', async () => { expect.assertions(2); server.use( - rest.get( - `${mockApiOrigin}${mockBasePath}/entities`, - (req, res, ctx) => { - expect(req.url.searchParams.toString()).toBe( - 'a=1&b=2&b=3&%C3%B6=%3D', - ); - return res(ctx.json([])); - }, - ), + rest.get(`${mockBaseUrl}/entities`, (req, res, ctx) => { + expect(req.url.searchParams.toString()).toBe( + 'a=1&b=2&b=3&%C3%B6=%3D', + ); + return res(ctx.json([])); + }), ); const entities = await client.getEntities({ diff --git a/plugins/catalog/src/api/CatalogClient.ts b/plugins/catalog/src/api/CatalogClient.ts index 3804315ace..d5ff033caa 100644 --- a/plugins/catalog/src/api/CatalogClient.ts +++ b/plugins/catalog/src/api/CatalogClient.ts @@ -20,24 +20,17 @@ import { LOCATION_ANNOTATION, } from '@backstage/catalog-model'; import { CatalogApi, EntityCompoundName } from './types'; +import { DiscoveryApi } from '@backstage/core'; export class CatalogClient implements CatalogApi { - private apiOrigin: string; - private basePath: string; + private readonly discoveryApi: DiscoveryApi; - constructor({ - apiOrigin, - basePath, - }: { - apiOrigin: string; - basePath: string; - }) { - this.apiOrigin = apiOrigin; - this.basePath = basePath; + constructor(options: { discoveryApi: DiscoveryApi }) { + this.discoveryApi = options.discoveryApi; } private async getRequired(path: string): Promise { - const url = `${this.apiOrigin}${this.basePath}${path}`; + const url = `${await this.discoveryApi.getBaseUrl('catalog')}${path}`; const response = await fetch(url); if (!response.ok) { @@ -50,7 +43,7 @@ export class CatalogClient implements CatalogApi { } private async getOptional(path: string): Promise { - const url = `${this.apiOrigin}${this.basePath}${path}`; + const url = `${await this.discoveryApi.getBaseUrl('catalog')}${path}`; const response = await fetch(url); if (!response.ok) { @@ -100,7 +93,7 @@ export class CatalogClient implements CatalogApi { async addLocation(type: string, target: string) { const response = await fetch( - `${this.apiOrigin}${this.basePath}/locations`, + `${await this.discoveryApi.getBaseUrl('catalog')}/locations`, { headers: { 'Content-Type': 'application/json', @@ -135,7 +128,7 @@ export class CatalogClient implements CatalogApi { async removeEntityByUid(uid: string): Promise { const response = await fetch( - `${this.apiOrigin}${this.basePath}/entities/by-uid/${uid}`, + `${await this.discoveryApi.getBaseUrl('catalog')}/entities/by-uid/${uid}`, { method: 'DELETE', }, From be837b7b361965aee91becb5e56ed2bda5127291 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 21 Aug 2020 14:28:23 +0200 Subject: [PATCH 125/656] plugins/scaffolder: switch ScaffolderApi to use DiscoveryApi --- packages/app/src/apis.ts | 8 +------- plugins/scaffolder/src/api.ts | 24 ++++++++---------------- 2 files changed, 9 insertions(+), 23 deletions(-) diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index c787ffc589..72dad858c7 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -180,13 +180,7 @@ export const apis = (config: ConfigApi) => { builder.add(catalogApiRef, new CatalogClient({ discoveryApi })); - builder.add( - scaffolderApiRef, - new ScaffolderApi({ - apiOrigin: backendUrl, - basePath: '/scaffolder/v1', - }), - ); + builder.add(scaffolderApiRef, new ScaffolderApi({ discoveryApi })); builder.add(gitOpsApiRef, new GitOpsRestApi('http://localhost:3008')); diff --git a/plugins/scaffolder/src/api.ts b/plugins/scaffolder/src/api.ts index 4a0d508a2b..3c42ed2ca4 100644 --- a/plugins/scaffolder/src/api.ts +++ b/plugins/scaffolder/src/api.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { createApiRef } from '@backstage/core'; +import { createApiRef, DiscoveryApi } from '@backstage/core'; import { TemplateEntityV1alpha1 } from '@backstage/catalog-model'; export const scaffolderApiRef = createApiRef({ @@ -23,18 +23,10 @@ export const scaffolderApiRef = createApiRef({ }); export class ScaffolderApi { - private apiOrigin: string; - private basePath: string; + private readonly discoveryApi: DiscoveryApi; - constructor({ - apiOrigin, - basePath, - }: { - apiOrigin: string; - basePath: string; - }) { - this.apiOrigin = apiOrigin; - this.basePath = basePath; + constructor(options: { discoveryApi: DiscoveryApi }) { + this.discoveryApi = options.discoveryApi; } /** @@ -46,7 +38,7 @@ export class ScaffolderApi { template: TemplateEntityV1alpha1, values: Record, ) { - const url = `${this.apiOrigin}${this.basePath}/jobs`; + const url = `${await this.discoveryApi.getBaseUrl('scaffolder')}/v1/jobs`; const response = await fetch(url, { method: 'POST', headers: { @@ -65,9 +57,9 @@ export class ScaffolderApi { } async getJob(jobId: string) { - const url = `${this.apiOrigin}${this.basePath}/job/${encodeURIComponent( - jobId, - )}`; + const url = `${await this.discoveryApi.getBaseUrl( + 'scaffolder', + )}/v1/job/${encodeURIComponent(jobId)}`; return fetch(url).then(x => x.json()); } } From 6f0c438519b7b3deae60440090d163a317d90740 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 21 Aug 2020 15:13:52 +0200 Subject: [PATCH 126/656] plugins/rollbar: switch RollbarClient to use DiscoveryApi --- packages/app/src/apis.ts | 8 +------- plugins/rollbar/src/api/RollbarClient.ts | 17 +++++------------ 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index 72dad858c7..0c409994cb 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -201,13 +201,7 @@ export const apis = (config: ConfigApi) => { ]), ); - builder.add( - rollbarApiRef, - new RollbarClient({ - apiOrigin: backendUrl, - basePath: '/rollbar', - }), - ); + builder.add(rollbarApiRef, new RollbarClient({ discoveryApi })); builder.add( techdocsStorageApiRef, diff --git a/plugins/rollbar/src/api/RollbarClient.ts b/plugins/rollbar/src/api/RollbarClient.ts index 5cabbcbc24..1862ad8270 100644 --- a/plugins/rollbar/src/api/RollbarClient.ts +++ b/plugins/rollbar/src/api/RollbarClient.ts @@ -20,20 +20,13 @@ import { RollbarProject, RollbarTopActiveItem, } from './types'; +import { DiscoveryApi } from '@backstage/core'; export class RollbarClient implements RollbarApi { - private apiOrigin: string; - private basePath: string; + private readonly discoveryApi: DiscoveryApi; - constructor({ - apiOrigin, - basePath, - }: { - apiOrigin: string; - basePath: string; - }) { - this.apiOrigin = apiOrigin; - this.basePath = basePath; + constructor(options: { discoveryApi: DiscoveryApi }) { + this.discoveryApi = options.discoveryApi; } async getAllProjects(): Promise { @@ -59,7 +52,7 @@ export class RollbarClient implements RollbarApi { } private async get(path: string): Promise { - const url = `${this.apiOrigin}${this.basePath}${path}`; + const url = `${await this.discoveryApi.getBaseUrl('rollbar')}${path}`; const response = await fetch(url); if (!response.ok) { From 2e50876160e54a2a622e56affec09c270f1dd133 Mon Sep 17 00:00:00 2001 From: Sebastian Qvarfordt Date: Fri, 21 Aug 2020 15:30:50 +0200 Subject: [PATCH 127/656] Throw error when failing to generate docs to prevent request loop (#2073) --- .../techdocs-backend/src/techdocs/stages/generate/techdocs.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts b/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts index 96449a0bd6..40cd7590b6 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/generate/techdocs.ts @@ -61,6 +61,9 @@ export class TechdocsGenerator implements GeneratorBase { this.logger.debug( `[TechDocs]: Failed to generate docs from ${directory} into ${resultDir}`, ); + throw new Error( + `Failed to generate docs from ${directory} into ${resultDir} with error ${error.message}`, + ); } return { resultDir }; From e9c937dd9f7c2ac4957ad0c31822b02d35f8a257 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Fri, 21 Aug 2020 15:46:10 +0200 Subject: [PATCH 128/656] Add docs template to default app templates (#2072) --- packages/create-app/templates/default-app/app-config.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/create-app/templates/default-app/app-config.yaml b/packages/create-app/templates/default-app/app-config.yaml index 49c3dc3691..0c3ec3ed80 100644 --- a/packages/create-app/templates/default-app/app-config.yaml +++ b/packages/create-app/templates/default-app/app-config.yaml @@ -54,3 +54,5 @@ catalog: target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/create-react-app/template.yaml - type: github target: https://github.com/spotify/cookiecutter-golang/blob/master/template.yaml + - type: github + target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/docs-template/template.yaml From 0afdba6ac175205d1040348bd0a4a5d930471483 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 21 Aug 2020 15:47:45 +0200 Subject: [PATCH 129/656] chore(deps): bump @rjsf/core from 2.2.2 to 2.3.0 (#2062) Bumps [@rjsf/core](https://github.com/rjsf-team/react-jsonschema-form) from 2.2.2 to 2.3.0. - [Release notes](https://github.com/rjsf-team/react-jsonschema-form/releases) - [Commits](https://github.com/rjsf-team/react-jsonschema-form/compare/v2.2.2...v2.3.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index 06324a67a3..5a42953413 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3279,9 +3279,9 @@ react-lifecycles-compat "^3.0.4" "@rjsf/core@^2.1.0": - version "2.2.2" - resolved "https://registry.npmjs.org/@rjsf/core/-/core-2.2.2.tgz#1ebb6fe47448998f3b54e2dea8d58de8a46014dc" - integrity sha512-4d6DHIiTJEkUq5vyl4LIxLGIYYKKnHcprf94oVchUtGQvRFjNUDFxeFQoyr90oaxcBMs2WDDcCgjcFaKVyfErg== + version "2.3.0" + resolved "https://registry.npmjs.org/@rjsf/core/-/core-2.3.0.tgz#334c73d2262ef1a8cda477e238067af7336c5599" + integrity sha512-OZKYHt9tjKhzOH4CvsPiCwepuIacqI++cNmnL2fsxh1IF+uEWGlo3NLDWhhSaBbOv9jps6a5YQcLbLtjNuSwug== dependencies: "@babel/runtime-corejs2" "^7.8.7" "@types/json-schema" "^7.0.4" @@ -5845,17 +5845,7 @@ ajv@^5.0.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5, ajv@^6.7.0: - version "6.12.2" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" - integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.10.1: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.1, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5, ajv@^6.7.0: version "6.12.3" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== From 3e10e5e3d8665edd3529615b1e4af4949dcb1f8f Mon Sep 17 00:00:00 2001 From: Nikita Dudnik Date: Fri, 21 Aug 2020 15:48:08 +0200 Subject: [PATCH 130/656] fix(microsite): animation for techdocs (#2070) --- microsite/pages/en/index.js | 18 ++++++++++++++---- microsite/static/img/techdocs2.gif | Bin 0 -> 89705 bytes 2 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 microsite/static/img/techdocs2.gif diff --git a/microsite/pages/en/index.js b/microsite/pages/en/index.js index d140a2036b..986db4b732 100644 --- a/microsite/pages/en/index.js +++ b/microsite/pages/en/index.js @@ -353,10 +353,20 @@ class Index extends React.Component { + + + + } /> diff --git a/microsite/static/img/techdocs2.gif b/microsite/static/img/techdocs2.gif new file mode 100644 index 0000000000000000000000000000000000000000..ba937581b3f71e6516d401b25f4260223a570a17 GIT binary patch literal 89705 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 m5vSPW?qKP{i8$?5eY^t&TNc Date: Fri, 21 Aug 2020 17:26:39 -0300 Subject: [PATCH 131/656] cli: Check "NODE_ENV" env var value for config files location --- packages/cli/src/commands/app/build.ts | 2 +- packages/cli/src/commands/app/serve.ts | 2 +- packages/cli/src/commands/backend/dev.ts | 2 +- packages/cli/src/commands/plugin/export.ts | 2 +- packages/cli/src/commands/plugin/serve.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/commands/app/build.ts b/packages/cli/src/commands/app/build.ts index 21d6924b15..5d499cbc2d 100644 --- a/packages/cli/src/commands/app/build.ts +++ b/packages/cli/src/commands/app/build.ts @@ -22,7 +22,7 @@ import { buildBundle } from '../../lib/bundler'; export default async (cmd: Command) => { const appConfigs = await loadConfig({ - env: 'production', + env: process.env.NODE_ENV ?? 'production', rootPaths: [paths.targetRoot, paths.targetDir], }); await buildBundle({ diff --git a/packages/cli/src/commands/app/serve.ts b/packages/cli/src/commands/app/serve.ts index a04e73dceb..c748d12a75 100644 --- a/packages/cli/src/commands/app/serve.ts +++ b/packages/cli/src/commands/app/serve.ts @@ -22,7 +22,7 @@ import { serveBundle } from '../../lib/bundler'; export default async (cmd: Command) => { const appConfigs = await loadConfig({ - env: 'development', + env: process.env.NODE_ENV ?? 'development', rootPaths: [paths.targetRoot, paths.targetDir], }); const waitForExit = await serveBundle({ diff --git a/packages/cli/src/commands/backend/dev.ts b/packages/cli/src/commands/backend/dev.ts index 91c08af201..08a1d74276 100644 --- a/packages/cli/src/commands/backend/dev.ts +++ b/packages/cli/src/commands/backend/dev.ts @@ -22,7 +22,7 @@ import { serveBackend } from '../../lib/bundler/backend'; export default async (cmd: Command) => { const appConfigs = await loadConfig({ - env: 'development', + env: process.env.NODE_ENV ?? 'development', rootPaths: [paths.targetRoot, paths.targetDir], }); const waitForExit = await serveBackend({ diff --git a/packages/cli/src/commands/plugin/export.ts b/packages/cli/src/commands/plugin/export.ts index 8f3c132285..8cbbe5b3ee 100644 --- a/packages/cli/src/commands/plugin/export.ts +++ b/packages/cli/src/commands/plugin/export.ts @@ -22,7 +22,7 @@ import { buildBundle } from '../../lib/bundler'; export default async (cmd: Command) => { const appConfigs = await loadConfig({ - env: 'production', + env: process.env.NODE_ENV ?? 'production', rootPaths: [paths.targetRoot, paths.targetDir], }); await buildBundle({ diff --git a/packages/cli/src/commands/plugin/serve.ts b/packages/cli/src/commands/plugin/serve.ts index a677bec918..8a04df8837 100644 --- a/packages/cli/src/commands/plugin/serve.ts +++ b/packages/cli/src/commands/plugin/serve.ts @@ -22,7 +22,7 @@ import { serveBundle } from '../../lib/bundler'; export default async (cmd: Command) => { const appConfigs = await loadConfig({ - env: 'development', + env: process.env.NODE_ENV ?? 'development', rootPaths: [paths.targetRoot, paths.targetDir], }); const waitForExit = await serveBundle({ From 9414db5ee7206aa5072c430e4497ae0fc53da22f Mon Sep 17 00:00:00 2001 From: Paul Pacheco Date: Fri, 21 Aug 2020 15:38:12 -0500 Subject: [PATCH 132/656] show how to use config when setting up api (#2075) Most API will require some configuration. So it would be more useful to show an example where the config is available when the API's are being wired up --- docs/api/utility-apis.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/api/utility-apis.md b/docs/api/utility-apis.md index ff8c91e178..b4c2fd161e 100644 --- a/docs/api/utility-apis.md +++ b/docs/api/utility-apis.md @@ -71,18 +71,23 @@ import { AlertApiForwarder, ErrorApiForwarder, ErrorAlerter, + ConfigApi } from '@backstage/core'; -const builder = ApiRegistry.builder(); -// The alert API is a self-contained implementation that shows alerts to the user. -const alertApi = builder.add(alertApiRef, new AlertApiForwarder()); +const apis = (config: ConfigApi) => { + const builder = ApiRegistry.builder(); -// The error API uses the alert API to send error notifications to the user. -builder.add(errorApiRef, new ErrorAlerter(alertApi, new ErrorApiForwarder())); + // The alert API is a self-contained implementation that shows alerts to the user. + const alertApi = builder.add(alertApiRef, new AlertApiForwarder()); + + // The error API uses the alert API to send error notifications to the user. + builder.add(errorApiRef, new ErrorAlerter(alertApi, new ErrorApiForwarder())); + return builder.build(); +} const app = createApp({ - apis: apiBuilder.build(), + apis, // ... other config }); ``` From d3db3a784997765295e9d72f3112b5c4688ea54c Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Fri, 21 Aug 2020 23:04:51 +0200 Subject: [PATCH 133/656] feat: IoC, DI, indirection, routes, tabs, catalog, app, github-actions --- packages/app/src/App.tsx | 15 +- packages/app/src/components/Root/Root.tsx | 2 +- .../app/src/components/catalog/Component.tsx | 82 +++++++++ .../app/src/components/catalog/index.tsx | 15 +- plugins/catalog/package.json | 1 + plugins/catalog/src/Router.tsx | 164 ++++++++++++++++++ .../EntityPageTabs/EntityPageTabs.tsx | 94 ++++++++++ .../src/components/EntityPageTabs}/index.ts | 3 +- plugins/catalog/src/hooks/useEntity.ts | 55 ++++++ plugins/catalog/src/index.ts | 3 + plugins/catalog/src/routes.ts | 6 +- plugins/github-actions/package.json | 1 + plugins/github-actions/src/Router.tsx | 34 ++++ .../WorkflowRunDetails/WorkflowRunDetails.tsx | 28 ++- .../WorkflowRunDetailsPage.tsx | 65 ------- .../WorkflowRunsPage/WorkflowRunsPage.tsx | 56 ------ .../WorkflowRunsTable/WorkflowRunsTable.tsx | 19 +- .../src/components/useProjectName.ts | 10 +- plugins/github-actions/src/index.ts | 2 + plugins/github-actions/src/plugin.ts | 17 +- 20 files changed, 494 insertions(+), 178 deletions(-) create mode 100644 packages/app/src/components/catalog/Component.tsx rename plugins/github-actions/src/components/WorkflowRunDetailsPage/index.ts => packages/app/src/components/catalog/index.tsx (60%) create mode 100644 plugins/catalog/src/Router.tsx create mode 100644 plugins/catalog/src/components/EntityPageTabs/EntityPageTabs.tsx rename plugins/{github-actions/src/components/WorkflowRunsPage => catalog/src/components/EntityPageTabs}/index.ts (91%) create mode 100644 plugins/catalog/src/hooks/useEntity.ts create mode 100644 plugins/github-actions/src/Router.tsx delete mode 100644 plugins/github-actions/src/components/WorkflowRunDetailsPage/WorkflowRunDetailsPage.tsx delete mode 100644 plugins/github-actions/src/components/WorkflowRunsPage/WorkflowRunsPage.tsx diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 993fd77978..cb0853a013 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -26,6 +26,11 @@ import * as plugins from './plugins'; import { apis } from './apis'; import { hot } from 'react-hot-loader/root'; import { providers } from './identityProviders'; +import { CatalogPlugin } from '@backstage/plugin-catalog'; +// import { ExplorePlugin } from '@backstage/plugin-explore'; +import { Route, Routes } from 'react-router'; + +import { EntityPage } from './components/catalog'; const app = createApp({ apis, @@ -46,8 +51,16 @@ const app = createApp({ const AppProvider = app.getProvider(); const AppRouter = app.getRouter(); -const AppRoutes = app.getRoutes(); +const AppRoutes = () => ( + + } + /> + {/* } /> */} + +); const App: FC<{}> = () => ( diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx index 1d32b6e16e..c6ce87444c 100644 --- a/packages/app/src/components/Root/Root.tsx +++ b/packages/app/src/components/Root/Root.tsx @@ -89,7 +89,7 @@ const Root: FC<{}> = ({ children }) => ( {/* Global nav, not org-specific */} - + diff --git a/packages/app/src/components/catalog/Component.tsx b/packages/app/src/components/catalog/Component.tsx new file mode 100644 index 0000000000..2d2aef9f79 --- /dev/null +++ b/packages/app/src/components/catalog/Component.tsx @@ -0,0 +1,82 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { + GitHubActionsPlugin, + GITHUB_ACTIONS_ANNOTATION, +} from '@backstage/plugin-github-actions'; +import { + useEntity, + EntityPageTabs as Tabs, + EntityMetadataCard, +} from '@backstage/plugin-catalog'; +import { Grid } from '@material-ui/core'; + +const OverviewPage = () => { + const entity = useEntity(); + return ( + + + + ); +}; + +// Just for illustration purposes, gonna live in plugin-circle-ci +const CIRCLE_CI_ANNOTATION = 'circle-ci-slug-dummy'; + +const DefaultEntity = () => { + const entity = useEntity(); + + const isCIAvailable = [ + entity!.metadata!.annotations?.[GITHUB_ACTIONS_ANNOTATION], + entity!.metadata!.annotations?.[CIRCLE_CI_ANNOTATION], + ].some(Boolean); + + return ( + + + + + {isCIAvailable && ( + + {entity!.metadata!.annotations?.[GITHUB_ACTIONS_ANNOTATION] && ( + + )} + + )} + + {/* eslint-disable-next-line no-console */} +
{console.log('was here /docs')}Docs tab contents
+
+
+ ); +}; + +const Service = () => ; +const Website = () => ; +const UnkownEntity = () =>
Unknown entity!
; + +export const ComponentEntity = () => { + const entity = useEntity(); + switch (entity.spec!.type) { + case 'service': + return ; + case 'website': + return ; + default: + return ; + } +}; diff --git a/plugins/github-actions/src/components/WorkflowRunDetailsPage/index.ts b/packages/app/src/components/catalog/index.tsx similarity index 60% rename from plugins/github-actions/src/components/WorkflowRunDetailsPage/index.ts rename to packages/app/src/components/catalog/index.tsx index 443bcacc88..9aaf1a568b 100644 --- a/plugins/github-actions/src/components/WorkflowRunDetailsPage/index.ts +++ b/packages/app/src/components/catalog/index.tsx @@ -13,5 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import React from 'react'; +import { useEntity } from '@backstage/plugin-catalog'; +import { ComponentEntity } from './Component'; -export { WorkflowRunDetailsPage } from './WorkflowRunDetailsPage'; +const UnkownEntityKind = () =>
Unknown entity kind!
; + +export const EntityPage = () => { + const entity = useEntity(); + switch (entity.kind) { + case 'Component': + return ; + default: + return ; + } +}; diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 1e10e91478..4768fdf985 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -36,6 +36,7 @@ "moment": "^2.26.0", "react": "^16.13.1", "react-dom": "^16.13.1", + "react-helmet": "6.1.0", "react-router": "6.0.0-beta.0", "react-router-dom": "6.0.0-beta.0", "react-use": "^15.3.3", diff --git a/plugins/catalog/src/Router.tsx b/plugins/catalog/src/Router.tsx new file mode 100644 index 0000000000..701b9d1045 --- /dev/null +++ b/plugins/catalog/src/Router.tsx @@ -0,0 +1,164 @@ +/* + * Copyright 2020 Spotify AB + * + * 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, { FC, useState } from 'react'; +import { CatalogPage } from './components/CatalogPage/CatalogPage'; +// import { EntityPage } from './components/EntityPage/EntityPage'; +import { Route, Routes, useParams, useNavigate } from 'react-router'; +import { entityRoute, rootRoute, entityRouteDefault } from './routes'; +import { useEntityFromUrl, EntityContext, useEntity } from './hooks/useEntity'; +import { + pageTheme, + PageTheme, + Page, + Header, + HeaderLabel, + Content, + Progress, +} from '@backstage/core'; +import { Entity } from '@backstage/catalog-model'; +import { FavouriteEntity } from './components/FavouriteEntity/FavouriteEntity'; +import { Box } from '@material-ui/core'; +import { EntityContextMenu } from './components/EntityContextMenu/EntityContextMenu'; +import { UnregisterEntityDialog } from './components/UnregisterEntityDialog/UnregisterEntityDialog'; +import { Alert } from '@material-ui/lab'; +// const EntityContext = React.createContext(null); +export const getPageTheme = (entity?: Entity): PageTheme => { + const themeKey = entity?.spec?.type?.toString() ?? 'home'; + return pageTheme[themeKey] ?? pageTheme.home; +}; + +const EntityPageTitle = ({ + entity, + title, +}: { + title: string; + entity: Entity | undefined; +}) => ( + + {title} + {entity && } + +); + +function headerProps( + kind: string, + namespace: string | undefined, + name: string, + entity: Entity | undefined, +): { headerTitle: string; headerType: string } { + return { + headerTitle: `${name}${namespace ? ` in ${namespace}` : ''}`, + headerType: (() => { + let t = kind.toLowerCase(); + if (entity && entity.spec && 'type' in entity.spec) { + t += ' — '; + t += (entity.spec as { type: string }).type.toLowerCase(); + } + return t; + })(), + }; +} +const EntityPageLayout = ({ children }: { children: React.ReactNode }) => { + const { entity, loading, error } = useEntityFromUrl(); + const { optionalNamespaceAndName, kind } = useParams() as { + optionalNamespaceAndName: string; + kind: string; + }; + const [name, namespace] = optionalNamespaceAndName.split(':').reverse(); + + const { headerTitle, headerType } = headerProps( + kind, + namespace, + name, + entity!, + ); + + const [confirmationDialogOpen, setConfirmationDialogOpen] = useState(false); + const navigate = useNavigate(); + const cleanUpAfterRemoval = async () => { + setConfirmationDialogOpen(false); + navigate('/'); + }; + + const showRemovalDialog = () => setConfirmationDialogOpen(true); + + return ( + +
} + pageTitleOverride={headerTitle} + type={headerType} + > + {entity && ( + <> + + + + + )} +
+ + {loading && } + + {entity && ( + + {children} + + )} + {error && ( + + {error.toString()} + + )} + setConfirmationDialogOpen(false)} + /> +
+ ); +}; + +export const CatalogPlugin = ({ EntityPage }) => ( + + } /> + + + + } + /> + + + + } + /> + +); + +export { EntityMetadataCard } from './components/EntityMetadataCard/EntityMetadataCard'; diff --git a/plugins/catalog/src/components/EntityPageTabs/EntityPageTabs.tsx b/plugins/catalog/src/components/EntityPageTabs/EntityPageTabs.tsx new file mode 100644 index 0000000000..f4f9308669 --- /dev/null +++ b/plugins/catalog/src/components/EntityPageTabs/EntityPageTabs.tsx @@ -0,0 +1,94 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { + useParams, + useNavigate, + PartialRouteObject, + matchRoutes, + RouteObject, + useRoutes, + Navigate, + RouteMatch, +} from 'react-router'; +import { Tab, HeaderTabs, Content } from '@backstage/core'; +import { Grid } from '@material-ui/core'; +import { Helmet } from 'react-helmet'; + +const getSelectedIndex = (matchedRoute: RouteMatch, tabs: Tab[]) => { + if (!matchedRoute) return 0; + const tabIndex = tabs.findIndex(t => t.id === matchedRoute.route.path); + return ~tabIndex ? tabIndex : 0; +}; +export const EntityPageTabs = ({ children }: { children: React.ReactNode }) => { + const routes: PartialRouteObject[] = []; + const tabs: Tab[] = []; + const params = useParams(); + const navigate = useNavigate(); + React.Children.forEach(children, child => { + if (!React.isValidElement(child)) { + // Skip conditionals resolved to falses/nulls/undefineds etc + return; + } + const pathAndId = + (child as JSX.Element).props.path + + ((child as JSX.Element).props.exact ? '' : '/*'); + routes.push({ + path: pathAndId, + element: (child as JSX.Element).props.children, + }); + tabs.push({ + id: pathAndId, + label: (child as JSX.Element).props.title, + }); + routes.push({ + path: '/*', + element: , + }); + }); + const [matchedRoute] = + matchRoutes(routes as RouteObject[], `/${params['*']}`) ?? []; + const selectedIndex = getSelectedIndex(matchedRoute, tabs); + const currentTab = tabs[selectedIndex]; + const title = currentTab.label; + + const onTabChange = (index: number) => navigate(tabs[index].id.slice(1, -2)); + + const currentRouteElement = useRoutes(routes); + + return ( + <> + + + + + {currentRouteElement} + + + + ); +}; +type TabProps = { + children: React.ReactNode; + title: string; + path: string; + exact?: boolean; +}; +EntityPageTabs.Tab = (_props: TabProps) => null; diff --git a/plugins/github-actions/src/components/WorkflowRunsPage/index.ts b/plugins/catalog/src/components/EntityPageTabs/index.ts similarity index 91% rename from plugins/github-actions/src/components/WorkflowRunsPage/index.ts rename to plugins/catalog/src/components/EntityPageTabs/index.ts index ef511763f7..83fc3d1095 100644 --- a/plugins/github-actions/src/components/WorkflowRunsPage/index.ts +++ b/plugins/catalog/src/components/EntityPageTabs/index.ts @@ -13,5 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -export { WorkflowRunsPage } from './WorkflowRunsPage'; +export { EntityPageTabs } from './EntityPageTabs'; diff --git a/plugins/catalog/src/hooks/useEntity.ts b/plugins/catalog/src/hooks/useEntity.ts new file mode 100644 index 0000000000..022be1126f --- /dev/null +++ b/plugins/catalog/src/hooks/useEntity.ts @@ -0,0 +1,55 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { useEffect, createContext, useContext } from 'react'; +import { useNavigate, useParams } from 'react-router'; +import { useApi, errorApiRef } from '@backstage/core'; +import { catalogApiRef } from '../api/types'; +import { useAsync } from 'react-use'; +import { Entity } from '@backstage/catalog-model'; + +const REDIRECT_DELAY = 2000; + +export const EntityContext = createContext((null as any) as Entity); +export const useEntityFromUrl = () => { + const { optionalNamespaceAndName, kind } = useParams(); + const [name, namespace] = optionalNamespaceAndName.split(':').reverse(); + const navigate = useNavigate(); + const errorApi = useApi(errorApiRef); + const catalogApi = useApi(catalogApiRef); + + const { value: entity, error, loading } = useAsync( + () => catalogApi.getEntityByName({ kind, namespace, name }), + [catalogApi, kind, namespace, name], + ); + + useEffect(() => { + if (!error && !loading && !entity) { + errorApi.post(new Error('Entity not found!')); + setTimeout(() => { + navigate('/'); + }, REDIRECT_DELAY); + } + }, [errorApi, navigate, error, loading, entity]); + + if (!name) { + navigate('/catalog'); + return { entity: null, loading: null, error: new Error('No name in url') }; + } + + return { entity, loading, error }; +}; + +export const useEntity = () => useContext(EntityContext); diff --git a/plugins/catalog/src/index.ts b/plugins/catalog/src/index.ts index 36fd69971d..ba8826aaa9 100644 --- a/plugins/catalog/src/index.ts +++ b/plugins/catalog/src/index.ts @@ -19,3 +19,6 @@ export * from './api/CatalogClient'; export * from './api/types'; export * from './routes'; export { useEntityCompoundName } from './components/useEntityCompoundName'; +export * from './Router'; +export { useEntity } from './hooks/useEntity'; +export { EntityPageTabs } from './components/EntityPageTabs'; diff --git a/plugins/catalog/src/routes.ts b/plugins/catalog/src/routes.ts index a8ff8df685..c3fd97564a 100644 --- a/plugins/catalog/src/routes.ts +++ b/plugins/catalog/src/routes.ts @@ -20,16 +20,16 @@ const NoIcon = () => null; export const rootRoute = createRouteRef({ icon: NoIcon, - path: '/', + path: '', title: 'Catalog', }); export const entityRoute = createRouteRef({ icon: NoIcon, - path: '/catalog/:kind/:optionalNamespaceAndName/:selectedTabId/*', + path: ':kind/:optionalNamespaceAndName/*', title: 'Entity', }); export const entityRouteDefault = createRouteRef({ icon: NoIcon, - path: '/catalog/:kind/:optionalNamespaceAndName', + path: ':kind/:optionalNamespaceAndName', title: 'Entity', }); diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index db35022fae..3386ed0db2 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -35,6 +35,7 @@ "moment": "^2.27.0", "react": "^16.13.1", "react-dom": "^16.13.1", + "react-router": "6.0.0-beta.0", "react-router-dom": "6.0.0-beta.0", "react-use": "^15.3.3" }, diff --git a/plugins/github-actions/src/Router.tsx b/plugins/github-actions/src/Router.tsx new file mode 100644 index 0000000000..b843c594b9 --- /dev/null +++ b/plugins/github-actions/src/Router.tsx @@ -0,0 +1,34 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { Entity } from '@backstage/catalog-model'; +import { Routes, Route } from 'react-router'; +import { rootRouteRef, buildRouteRef } from './plugin'; +import { WorkflowRunDetails } from './components/WorkflowRunDetails'; +import { WorkflowRunsTable } from './components/WorkflowRunsTable'; + +export const GitHubActionsPlugin = ({ entity }: { entity: Entity }) => ( + + } + /> + } + /> + +); diff --git a/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx b/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx index 8c445ca9f6..d8e3b02524 100644 --- a/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx +++ b/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx @@ -14,7 +14,6 @@ * limitations under the License. */ import React from 'react'; -import { useEntityCompoundName } from '@backstage/plugin-catalog'; import { useWorkflowRunsDetails } from './useWorkflowRunsDetails'; import { useWorkflowRunJobs } from './useWorkflowRunJobs'; import { useProjectName } from '../useProjectName'; @@ -35,13 +34,16 @@ import { LinearProgress, CircularProgress, Theme, - Link, + Breadcrumbs, + Link as MaterialLink, } from '@material-ui/core'; import { Jobs, Job, Step } from '../../api'; import moment from 'moment'; import { WorkflowRunStatus } from '../WorkflowRunStatus'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ExternalLinkIcon from '@material-ui/icons/Launch'; +import { Entity } from '@backstage/catalog-model'; +import { Link } from '@backstage/core'; const useStyles = makeStyles(theme => ({ root: { @@ -140,18 +142,8 @@ const JobListItem = ({ job, className }: { job: Job; className: string }) => { ); }; -export const WorkflowRunDetails = () => { - let entityCompoundName = useEntityCompoundName(); - if (!entityCompoundName.name) { - // TODO(shmidt-i): remove when is fully integrated - // into the entity view - entityCompoundName = { - kind: 'Component', - name: 'backstage', - namespace: 'default', - }; - } - const projectName = useProjectName(entityCompoundName); +export const WorkflowRunDetails = ({ entity }: { entity: Entity }) => { + const projectName = useProjectName(entity); const [owner, repo] = projectName.value ? projectName.value.split('/') : []; const details = useWorkflowRunsDetails(repo, owner); @@ -170,6 +162,10 @@ export const WorkflowRunDetails = () => { } return (
+ + Workflow runs + Workflow run details + @@ -211,10 +207,10 @@ export const WorkflowRunDetails = () => { {details.value?.html_url && ( - + Workflow runs on GitHub{' '} - + )} diff --git a/plugins/github-actions/src/components/WorkflowRunDetailsPage/WorkflowRunDetailsPage.tsx b/plugins/github-actions/src/components/WorkflowRunDetailsPage/WorkflowRunDetailsPage.tsx deleted file mode 100644 index ec9a3f484d..0000000000 --- a/plugins/github-actions/src/components/WorkflowRunDetailsPage/WorkflowRunDetailsPage.tsx +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { Typography, Grid, Breadcrumbs } from '@material-ui/core'; - -import React from 'react'; -import { - Link, - Page, - Header, - HeaderLabel, - Content, - ContentHeader, - SupportButton, - pageTheme, -} from '@backstage/core'; - -import { WorkflowRunDetails } from '../WorkflowRunDetails'; - -/** - * A component for Jobs visualization. Jobs are a property of a Workflow Run. - */ -export const WorkflowRunDetailsPage = () => { - return ( - -
- - -
- - - - This plugin allows you to view and interact with your builds within - the GitHub Actions environment. - - - - Workflow runs - Workflow run details - - - - - - - -
- ); -}; diff --git a/plugins/github-actions/src/components/WorkflowRunsPage/WorkflowRunsPage.tsx b/plugins/github-actions/src/components/WorkflowRunsPage/WorkflowRunsPage.tsx deleted file mode 100644 index b75a70f326..0000000000 --- a/plugins/github-actions/src/components/WorkflowRunsPage/WorkflowRunsPage.tsx +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { - Header, - HeaderLabel, - pageTheme, - Page, - Content, - ContentHeader, - SupportButton, -} from '@backstage/core'; -import { Grid } from '@material-ui/core'; -import React from 'react'; - -import { WorkflowRunsTable } from '../WorkflowRunsTable'; - -export const WorkflowRunsPage = () => { - return ( - -
- - -
- - - - This plugin allows you to view and interact with your builds within - the GitHub Actions environment. - - - - - - - - -
- ); -}; diff --git a/plugins/github-actions/src/components/WorkflowRunsTable/WorkflowRunsTable.tsx b/plugins/github-actions/src/components/WorkflowRunsTable/WorkflowRunsTable.tsx index a2a6ead9b5..7e971118fc 100644 --- a/plugins/github-actions/src/components/WorkflowRunsTable/WorkflowRunsTable.tsx +++ b/plugins/github-actions/src/components/WorkflowRunsTable/WorkflowRunsTable.tsx @@ -25,6 +25,7 @@ import SyncIcon from '@material-ui/icons/Sync'; import { buildRouteRef } from '../../plugin'; import { useEntityCompoundName } from '@backstage/plugin-catalog'; import { useProjectName } from '../useProjectName'; +import { Entity } from '@backstage/catalog-model'; export type WorkflowRun = { id: string; @@ -134,6 +135,7 @@ export const WorkflowRunsTableView: FC = ({ data={runs ?? []} onChangePage={onChangePage} onChangeRowsPerPage={onChangePageSize} + style={{ width: '100%' }} title={ @@ -146,25 +148,14 @@ export const WorkflowRunsTableView: FC = ({ ); }; -export const WorkflowRunsTable = () => { - let entityCompoundName = useEntityCompoundName(); - - if (!entityCompoundName.name) { - // TODO(shmidt-i): remove when is fully integrated - // into the entity view - entityCompoundName = { - kind: 'Component', - name: 'backstage', - namespace: 'default', - }; - } - - const { value: projectName, loading } = useProjectName(entityCompoundName); +export const WorkflowRunsTable = ({ entity }: { entity: Entity }) => { + const { value: projectName, loading } = useProjectName(entity); const [owner, repo] = (projectName ?? '/').split('/'); const [tableProps, { retry, setPage, setPageSize }] = useWorkflowRuns({ owner, repo, }); + return ( { - const catalogApi = useApi(catalogApiRef); +export const GITHUB_ACTIONS_ANNOTATION = 'github.com/project-slug'; +export const useProjectName = (entity: Entity) => { const { value, loading, error } = useAsync(async () => { - const entity = await catalogApi.getEntityByName(name); - return entity?.metadata.annotations?.['github.com/project-slug'] ?? ''; + return entity?.metadata.annotations?.[GITHUB_ACTIONS_ANNOTATION] ?? ''; }); return { value, loading, error }; }; diff --git a/plugins/github-actions/src/index.ts b/plugins/github-actions/src/index.ts index 4a69c363cd..f500685507 100644 --- a/plugins/github-actions/src/index.ts +++ b/plugins/github-actions/src/index.ts @@ -17,3 +17,5 @@ export { plugin } from './plugin'; export * from './api'; export { Widget } from './components/Widget'; +export { GitHubActionsPlugin } from './Router'; +export { GITHUB_ACTIONS_ANNOTATION } from './components/useProjectName'; diff --git a/plugins/github-actions/src/plugin.ts b/plugins/github-actions/src/plugin.ts index dbc366bd71..ead33b7959 100644 --- a/plugins/github-actions/src/plugin.ts +++ b/plugins/github-actions/src/plugin.ts @@ -15,28 +15,19 @@ */ import { createPlugin, createRouteRef } from '@backstage/core'; -import { WorkflowRunDetailsPage } from './components/WorkflowRunDetailsPage'; -import { WorkflowRunsPage } from './components/WorkflowRunsPage'; // TODO(freben): This is just a demo route for now export const rootRouteRef = createRouteRef({ - path: '/github-actions', + path: '', title: 'GitHub Actions', }); -export const projectRouteRef = createRouteRef({ - path: '/github-actions/:kind/:optionalNamespaceAndName/', - title: 'GitHub Actions for project', -}); + export const buildRouteRef = createRouteRef({ - path: '/github-actions/workflow-run/:id', + path: ':id', title: 'GitHub Actions Workflow Run', }); export const plugin = createPlugin({ id: 'github-actions', - register({ router }) { - router.addRoute(rootRouteRef, WorkflowRunsPage); - router.addRoute(projectRouteRef, WorkflowRunsPage); - router.addRoute(buildRouteRef, WorkflowRunDetailsPage); - }, + register() {}, }); From d224f9bba7c96a652e767043af3beea79fc8181d Mon Sep 17 00:00:00 2001 From: Mustansar Anwar ul Samad Date: Sat, 22 Aug 2020 10:04:17 +1200 Subject: [PATCH 134/656] Fix webpack sourcemap path for debugging --- packages/cli/src/lib/bundler/config.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 8049ce436d..be81b4bb59 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -198,6 +198,11 @@ export function createBackendConfig( chunkFilename: isDev ? '[name].chunk.js' : '[name].[chunkhash:8].chunk.js', + ...(isDev + ? { + devtoolModuleFilenameTemplate: 'file:///[absolute-resource-path]', + } + : {}), }, plugins: [ new StartServerPlugin('main.js'), From 5ed8e5d05cbbdab15a48d60af0b01243bde421fb Mon Sep 17 00:00:00 2001 From: Chris Simmons Date: Sat, 22 Aug 2020 12:26:06 +1200 Subject: [PATCH 135/656] simplified and cleaned up duplicate code --- .../src/providers/microsoft/provider.ts | 39 +++++-------------- 1 file changed, 10 insertions(+), 29 deletions(-) diff --git a/plugins/auth-backend/src/providers/microsoft/provider.ts b/plugins/auth-backend/src/providers/microsoft/provider.ts index 92f7a10dd8..5997d8e1a8 100644 --- a/plugins/auth-backend/src/providers/microsoft/provider.ts +++ b/plugins/auth-backend/src/providers/microsoft/provider.ts @@ -58,15 +58,13 @@ export class MicrosoftAuthProvider implements OAuthProviderHandlers { accessToken: string, params: any, rawProfile: any, - photoURL?: any, + photoURL: any, ): OAuthResponse { let passportProfile: passport.Profile = rawProfile; - if (photoURL) { - passportProfile = { - ...passportProfile, - photos: [{ value: photoURL }], - }; - } + passportProfile = { + ...passportProfile, + photos: [{ value: photoURL }], + }; const profile = makeProfileInfo(passportProfile, params.id_token); const providerInfo = { @@ -99,18 +97,8 @@ export class MicrosoftAuthProvider implements OAuthProviderHandlers { rawProfile: passport.Profile, done: PassportDoneCallback, ) => { - got - .get('https://graph.microsoft.com/v1.0/me/photos/48x48/$value', { - encoding: 'binary', - responseType: 'buffer', - headers: { - Authorization: `Bearer ${accessToken}`, - }, - }) - .then(photoData => { - const photoURL = `data:image/jpeg;base64,${Buffer.from( - photoData.body, - ).toString('base64')}`; + this.getUserPhoto(accessToken) + .then(photoURL => { const authResponse = MicrosoftAuthProvider.transformAuthResponse( accessToken, params, @@ -120,15 +108,7 @@ export class MicrosoftAuthProvider implements OAuthProviderHandlers { done(undefined, authResponse, { refreshToken }); }) .catch(error => { - console.log( - `Error retrieving user photo from Microsoft Graph API: ${error}`, - ); - const authResponse = MicrosoftAuthProvider.transformAuthResponse( - accessToken, - params, - rawProfile, - ); - done(undefined, authResponse, { refreshToken }); + throw new Error(`Error processing auth response: ${error}`); }); }, ); @@ -201,8 +181,9 @@ export class MicrosoftAuthProvider implements OAuthProviderHandlers { }) .catch(error => { console.log( - `Error retrieving user photo from Microsoft Graph API: ${error}`, + `Could not retrieve user profile photo from Microsoft Graph API: ${error}`, ); + // User profile photo is optional, ignore errors and resolve undefined resolve(); }); }); From 290d28d856095ae8b39f0111b40d4ef70cc6c3fc Mon Sep 17 00:00:00 2001 From: Raghunandan Date: Sat, 22 Aug 2020 10:05:21 +0200 Subject: [PATCH 136/656] Update microsite i18n json --- microsite/i18n/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/i18n/en.json b/microsite/i18n/en.json index d2593a13ce..698d86a26a 100644 --- a/microsite/i18n/en.json +++ b/microsite/i18n/en.json @@ -199,7 +199,7 @@ "title": "Backend plugin" }, "plugins/call-existing-api": { - "title": "Call existing API" + "title": "Call Existing API" }, "plugins/create-a-plugin": { "title": "Create a Backstage Plugin" From 950b316820c04518d30cf21ba10058052891df82 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 22 Aug 2020 10:08:06 +0200 Subject: [PATCH 137/656] cli: switch ts-jest to use isolatedModules --- packages/cli/config/jest.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/cli/config/jest.js b/packages/cli/config/jest.js index d95dd21489..cc7d45c139 100644 --- a/packages/cli/config/jest.js +++ b/packages/cli/config/jest.js @@ -37,7 +37,10 @@ async function getConfig() { // TODO: jest is working on module support, it's possible that we can remove this in the future transform: { '\\.esm\\.js$': require.resolve('jest-esm-transformer'), - '\\.(js|jsx|ts|tsx)$': require.resolve('ts-jest'), + '\\.(js|jsx|ts|tsx)$': [ + require.resolve('ts-jest'), + { isolatedModules: true }, + ], '\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg)$': require.resolve( './jestFileTransform.js', ), From e76d33e97df7195b521c13df22dde5ff05a99376 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Sat, 22 Aug 2020 10:37:02 +0200 Subject: [PATCH 138/656] fix: move catch-all route out of loop --- .../src/components/EntityPageTabs/EntityPageTabs.tsx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/plugins/catalog/src/components/EntityPageTabs/EntityPageTabs.tsx b/plugins/catalog/src/components/EntityPageTabs/EntityPageTabs.tsx index f4f9308669..2053c05b91 100644 --- a/plugins/catalog/src/components/EntityPageTabs/EntityPageTabs.tsx +++ b/plugins/catalog/src/components/EntityPageTabs/EntityPageTabs.tsx @@ -38,6 +38,7 @@ export const EntityPageTabs = ({ children }: { children: React.ReactNode }) => { const tabs: Tab[] = []; const params = useParams(); const navigate = useNavigate(); + React.Children.forEach(children, child => { if (!React.isValidElement(child)) { // Skip conditionals resolved to falses/nulls/undefineds etc @@ -54,11 +55,14 @@ export const EntityPageTabs = ({ children }: { children: React.ReactNode }) => { id: pathAndId, label: (child as JSX.Element).props.title, }); - routes.push({ - path: '/*', - element: , - }); }); + + // Add catch-all for incorrect sub-routes + routes.push({ + path: '/*', + element: , + }); + const [matchedRoute] = matchRoutes(routes as RouteObject[], `/${params['*']}`) ?? []; const selectedIndex = getSelectedIndex(matchedRoute, tabs); From a21cfcd062c2f2944197d4a36fbefb90b5971c22 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 22 Aug 2020 11:11:10 +0200 Subject: [PATCH 139/656] create-app: update template to use DiscoveryApi --- .../default-app/packages/app/src/apis.ts | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/packages/create-app/templates/default-app/packages/app/src/apis.ts b/packages/create-app/templates/default-app/packages/app/src/apis.ts index 35f3e076d6..4cc2ebe03a 100644 --- a/packages/create-app/templates/default-app/packages/app/src/apis.ts +++ b/packages/create-app/templates/default-app/packages/app/src/apis.ts @@ -6,6 +6,8 @@ import { ConfigApi, ErrorApiForwarder, ErrorAlerter, + discoveryApiRef, + UrlPatternDiscovery, oauthRequestApiRef, OAuthRequestManager, storageApiRef, @@ -24,6 +26,10 @@ export const apis = (config: ConfigApi) => { const builder = ApiRegistry.builder(); + const discoveryApi = builder.add( + discoveryApiRef, + UrlPatternDiscovery.compile(`${backendUrl}/{{ pluginId }}`), + ); const alertApi = builder.add(alertApiRef, new AlertApiForwarder()); const errorApi = builder.add( errorApiRef, @@ -33,21 +39,9 @@ export const apis = (config: ConfigApi) => { builder.add(storageApiRef, WebStorage.create({ errorApi })); builder.add(oauthRequestApiRef, new OAuthRequestManager()); - builder.add( - catalogApiRef, - new CatalogClient({ - apiOrigin: backendUrl, - basePath: '/catalog', - }), - ); + builder.add(catalogApiRef, new CatalogClient({ discoveryApi })); - builder.add( - scaffolderApiRef, - new ScaffolderApi({ - apiOrigin: backendUrl, - basePath: '/scaffolder/v1', - }), - ); + builder.add(scaffolderApiRef, new ScaffolderApi({ discoveryApi })); return builder.build(); }; From 257a3b52ed64d82230b270a2c04a9543fc1f42ec Mon Sep 17 00:00:00 2001 From: Omer Farooq Date: Sun, 23 Aug 2020 00:17:57 +1200 Subject: [PATCH 140/656] Add Azure ingestion processor --- .../src/ingestion/LocationReaders.ts | 2 + .../AzureApiReaderProcessor.test.ts | 84 +++++++++++ .../processors/AzureApiReaderProcessor.ts | 134 ++++++++++++++++++ .../RegisterComponentForm.tsx | 2 +- .../RegisterComponentPage.tsx | 13 +- 5 files changed, 233 insertions(+), 2 deletions(-) create mode 100644 plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.test.ts create mode 100644 plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.ts diff --git a/plugins/catalog-backend/src/ingestion/LocationReaders.ts b/plugins/catalog-backend/src/ingestion/LocationReaders.ts index 05f93815b8..29892bb2dc 100644 --- a/plugins/catalog-backend/src/ingestion/LocationReaders.ts +++ b/plugins/catalog-backend/src/ingestion/LocationReaders.ts @@ -31,6 +31,7 @@ import { GithubApiReaderProcessor } from './processors/GithubApiReaderProcessor' import { GitlabApiReaderProcessor } from './processors/GitlabApiReaderProcessor'; import { GitlabReaderProcessor } from './processors/GitlabReaderProcessor'; import { BitbucketApiReaderProcessor } from './processors/BitbucketApiReaderProcessor'; +import { AzureApiReaderProcessor } from './processors/AzureApiReaderProcessor'; import { UrlReaderProcessor } from './processors/UrlReaderProcessor'; import { LocationRefProcessor } from './processors/LocationEntityProcessor'; import { StaticLocationProcessor } from './processors/StaticLocationProcessor'; @@ -79,6 +80,7 @@ export class LocationReaders implements LocationReader { new GitlabApiReaderProcessor(), new GitlabReaderProcessor(), new BitbucketApiReaderProcessor(), + new AzureApiReaderProcessor(), new UrlReaderProcessor(), new YamlProcessor(), new EntityPolicyProcessor(entityPolicy), diff --git a/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.test.ts b/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.test.ts new file mode 100644 index 0000000000..35101b2607 --- /dev/null +++ b/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.test.ts @@ -0,0 +1,84 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { AzureApiReaderProcessor } from './AzureApiReaderProcessor'; + +describe('BitbucketApiReaderProcessor', () => { + it('should build raw api', () => { + const processor = new AzureApiReaderProcessor(); + const tests = [ + { + target: + 'https://dev.azure.com/org-name/project-name/_git/repo-name?path=my-template.yaml&version=GBmaster', + url: new URL( + 'https://dev.azure.com/org-name/project-name/_apis/sourceProviders/TfsGit/filecontents?repository=repo-name&commitOrBranch=master&path=my-template.yaml&api-version=6.0-preview.1', + ), + err: undefined, + }, + { + target: 'https://api.com/a/b/blob/master/path/to/c.yaml', + url: null, + err: + 'Incorrect url: https://api.com/a/b/blob/master/path/to/c.yaml, Error: Wrong Azure Devops URL or Invalid file path', + }, + { + target: 'com/a/b/blob/master/path/to/c.yaml', + url: null, + err: + 'Incorrect url: com/a/b/blob/master/path/to/c.yaml, TypeError: Invalid URL: com/a/b/blob/master/path/to/c.yaml', + }, + ]; + + for (const test of tests) { + if (test.err) { + expect(() => processor.buildRawUrl(test.target)).toThrowError(test.err); + } else if (test.url) { + expect(processor.buildRawUrl(test.target).toString()).toEqual( + test.url.toString(), + ); + } else { + throw new Error( + 'This should not have happened. Either err or url should have matched.', + ); + } + } + }); + + it('should return request options', () => { + const tests = [ + { + token: '0123456789', + expect: { + headers: { + Authorization: 'Basic OjAxMjM0NTY3ODk=', + }, + }, + }, + { + token: '', + expect: { + headers: {}, + }, + }, + ]; + + for (const test of tests) { + process.env.AZURE_PRIVATE_TOKEN = test.token; + const processor = new AzureApiReaderProcessor(); + expect(processor.getRequestOptions()).toEqual(test.expect); + } + }); +}); diff --git a/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.ts b/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.ts new file mode 100644 index 0000000000..41b4336b4f --- /dev/null +++ b/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.ts @@ -0,0 +1,134 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { LocationSpec } from '@backstage/catalog-model'; +import fetch, { RequestInit, HeadersInit } from 'node-fetch'; +import * as result from './results'; +import { LocationProcessor, LocationProcessorEmit } from './types'; + +export class AzureApiReaderProcessor implements LocationProcessor { + private privateToken: string = process.env.AZURE_PRIVATE_TOKEN || ''; + + getRequestOptions(): RequestInit { + const headers: HeadersInit = {}; + + if (this.privateToken !== '') { + headers.Authorization = `Basic ${Buffer.from( + `:${this.privateToken}`, + 'utf8', + ).toString('base64')}`; + } + + const requestOptions: RequestInit = { + headers, + }; + + return requestOptions; + } + + async readLocation( + location: LocationSpec, + optional: boolean, + emit: LocationProcessorEmit, + ): Promise { + if (location.type !== 'azure/api') { + return false; + } + + try { + const url = this.buildRawUrl(location.target); + + const response = await fetch(url.toString(), this.getRequestOptions()); + + if (response.ok) { + const data = await response.buffer(); + emit(result.data(location, data)); + } else { + const message = `${location.target} could not be read as ${url}, ${response.status} ${response.statusText}`; + if (response.status === 404) { + if (!optional) { + emit(result.notFoundError(location, message)); + } + } else { + emit(result.generalError(location, message)); + } + } + } catch (e) { + const message = `Unable to read ${location.type} ${location.target}, ${e}`; + emit(result.generalError(location, message)); + } + return true; + } + + // Converts + // from: https://dev.azure.com/{organization}/{project}/_git/reponame?path={path}&version=GB{commitOrBranch}&_a=contents + // to: https://dev.azure.com/{organization}/{project}/_apis/sourceProviders/{providerName}/filecontents?repository={repository}&commitOrBranch={commitOrBranch}&path={path}&api-version=6.0-preview.1 + + buildRawUrl(target: string): URL { + try { + const url = new URL(target); + + const [ + empty, + userOrOrg, + project, + srcKeyword, + repoName, + ] = url.pathname.split('/'); + + const path = url.searchParams.get('path') || ''; + const ref = url.searchParams.get('version')?.substr(2); + + if ( + url.hostname !== 'dev.azure.com' || + empty !== '' || + userOrOrg === '' || + project === '' || + srcKeyword !== '_git' || + repoName === '' || + path === '' || + ref === '' || + !path.match(/\.yaml$/) + ) { + throw new Error('Wrong Azure Devops URL or Invalid file path'); + } + + // transform to api + url.pathname = [ + empty, + userOrOrg, + project, + '_apis', + 'sourceProviders', + 'TfsGit', + 'filecontents', + ].join('/'); + + url.search = [ + `repository=${repoName}`, + `commitOrBranch=${ref}`, + `path=${path}`, + 'api-version=6.0-preview.1', + ].join('&'); + + url.protocol = 'https'; + + return url; + } catch (e) { + throw new Error(`Incorrect url: ${target}, ${e}`); + } + } +} diff --git a/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.tsx b/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.tsx index c1ea9c454d..a61469e969 100644 --- a/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.tsx +++ b/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.tsx @@ -71,7 +71,7 @@ const RegisterComponentForm: FC = ({ onSubmit, submitting }) => { name="componentLocation" required margin="normal" - helperText="Enter the full path to the component.yaml file in GitHub to start tracking your component. It must be in a public repo." + helperText="Enter the full path to the component.yaml file in Github, Gitlab, Bitbucket or Azure to start tracking your component. For private repo provide authentication information via config." inputRef={register({ required: true, validate: ComponentIdValidators, diff --git a/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx b/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx index 85d63fe2cb..be497e9aa7 100644 --- a/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx +++ b/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx @@ -79,7 +79,18 @@ const RegisterComponentPage: FC<{}> = () => { setFormState(FormStates.Submitting); const { componentLocation: target } = formData; try { - const data = await catalogApi.addLocation('github', target); + var typeMapping = [ + { url: /https:\/\/gitlab\.com\/.*/, type: 'gitlab' }, + { url: /https:\/\/bitbucket\.org\/.*/, type: 'bitbucket/api' }, + { url: /https:\/\/dev\.azure\.com\/.*/, type: 'azure/api' }, + { url: /.*/, type: 'github' }, + ]; + + var type = typeMapping.filter(function (item) { + return new RegExp(item.url).test(target); + })[0].type; + + const data = await catalogApi.addLocation(type, target); if (!isMounted()) return; From c33fc6c356227a1f5b034350630a879c413e85be Mon Sep 17 00:00:00 2001 From: Omer Farooq Date: Sun, 23 Aug 2020 00:41:58 +1200 Subject: [PATCH 141/656] Fix linting errors --- .../RegisterComponentPage/RegisterComponentPage.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx b/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx index be497e9aa7..1f0eb4fead 100644 --- a/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx +++ b/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx @@ -79,14 +79,14 @@ const RegisterComponentPage: FC<{}> = () => { setFormState(FormStates.Submitting); const { componentLocation: target } = formData; try { - var typeMapping = [ + const typeMapping = [ { url: /https:\/\/gitlab\.com\/.*/, type: 'gitlab' }, { url: /https:\/\/bitbucket\.org\/.*/, type: 'bitbucket/api' }, { url: /https:\/\/dev\.azure\.com\/.*/, type: 'azure/api' }, { url: /.*/, type: 'github' }, ]; - var type = typeMapping.filter(function (item) { + const type = typeMapping.filter(item => { return new RegExp(item.url).test(target); })[0].type; From 7e454952f7e623fde4ea0437ed98e08c9a6ac0b8 Mon Sep 17 00:00:00 2001 From: Omer Farooq Date: Sun, 23 Aug 2020 00:59:03 +1200 Subject: [PATCH 142/656] fix broken UI test --- .../RegisterComponentForm/RegisterComponentForm.test.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.test.tsx b/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.test.tsx index 01402ca19b..fd7a1cc0f8 100644 --- a/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.test.tsx +++ b/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.test.tsx @@ -30,14 +30,14 @@ const setup = (props?: Partial) => { ), }; }; -describe('RegisterComponentForm', () => { +fdescribe('RegisterComponentForm', () => { afterEach(() => cleanup()); it('should initially render a disabled button', async () => { const { rendered } = setup(); expect( await rendered.findByText( - 'Enter the full path to the component.yaml file in GitHub to start tracking your component. It must be in a public repo.', + 'Enter the full path to the component.yaml file in Github, Gitlab, Bitbucket or Azure to start tracking your component. For private repo provide authentication information via config.', ), ).toBeInTheDocument(); From 54b6a9cc06d17e3365096c3314c4e78e4bb87cca Mon Sep 17 00:00:00 2001 From: Omer Farooq Date: Sun, 23 Aug 2020 01:02:32 +1200 Subject: [PATCH 143/656] undo test focus --- .../RegisterComponentForm/RegisterComponentForm.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.test.tsx b/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.test.tsx index fd7a1cc0f8..d4d2cf4789 100644 --- a/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.test.tsx +++ b/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.test.tsx @@ -30,7 +30,7 @@ const setup = (props?: Partial) => { ), }; }; -fdescribe('RegisterComponentForm', () => { +describe('RegisterComponentForm', () => { afterEach(() => cleanup()); it('should initially render a disabled button', async () => { From f57f6a7402965d7c95eb0b73af2608f779770e99 Mon Sep 17 00:00:00 2001 From: Omer Farooq Date: Sun, 23 Aug 2020 14:26:39 +1200 Subject: [PATCH 144/656] modify ends with .yaml check to contains .yaml --- .../processors/AzureApiReaderProcessor.test.ts | 2 +- .../ingestion/processors/YamlProcessor.test.ts | 16 ++++++++++++++++ .../src/ingestion/processors/YamlProcessor.ts | 2 +- .../RegisterComponentPage.tsx | 4 +--- .../register-component/src/util/validate.test.ts | 3 ++- plugins/register-component/src/util/validate.ts | 4 ++-- 6 files changed, 23 insertions(+), 8 deletions(-) diff --git a/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.test.ts b/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.test.ts index 35101b2607..0ef111fcb1 100644 --- a/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.test.ts +++ b/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.test.ts @@ -16,7 +16,7 @@ import { AzureApiReaderProcessor } from './AzureApiReaderProcessor'; -describe('BitbucketApiReaderProcessor', () => { +describe('AzureApiReaderProcessor', () => { it('should build raw api', () => { const processor = new AzureApiReaderProcessor(); const tests = [ diff --git a/plugins/catalog-backend/src/ingestion/processors/YamlProcessor.test.ts b/plugins/catalog-backend/src/ingestion/processors/YamlProcessor.test.ts index 587793a6de..9f1ede3f9e 100644 --- a/plugins/catalog-backend/src/ingestion/processors/YamlProcessor.test.ts +++ b/plugins/catalog-backend/src/ingestion/processors/YamlProcessor.test.ts @@ -51,6 +51,22 @@ describe('YamlProcessor', () => { expect(never).not.toBeCalled(); }); + it('should process url that contains yaml', async () => { + const containsYamlLocationSpec = { + type: 'url', + target: 'http://example.com/component?path=test.yaml&c=1&d=2', + }; + + const buffer = Buffer.from([]); + const emit = jest.fn(); + + expect( + await processor.parseData(buffer, containsYamlLocationSpec, emit), + ).toBe(true); + + expect(emit).toBeCalled(); + }); + it('should process entity with yaml', async () => { const entity = { apiVersion: 'backstage.io/v1alpha1', diff --git a/plugins/catalog-backend/src/ingestion/processors/YamlProcessor.ts b/plugins/catalog-backend/src/ingestion/processors/YamlProcessor.ts index 6a2b5cf419..79ae55fae1 100644 --- a/plugins/catalog-backend/src/ingestion/processors/YamlProcessor.ts +++ b/plugins/catalog-backend/src/ingestion/processors/YamlProcessor.ts @@ -26,7 +26,7 @@ export class YamlProcessor implements LocationProcessor { location: LocationSpec, emit: LocationProcessorEmit, ): Promise { - if (!location.target.match(/\.ya?ml$/)) { + if (!location.target.match(/\.ya?ml/)) { return false; } diff --git a/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx b/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx index 1f0eb4fead..e61f904347 100644 --- a/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx +++ b/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx @@ -86,9 +86,7 @@ const RegisterComponentPage: FC<{}> = () => { { url: /.*/, type: 'github' }, ]; - const type = typeMapping.filter(item => { - return new RegExp(item.url).test(target); - })[0].type; + const type = typeMapping.filter(item => item.url.test(target))[0].type; const data = await catalogApi.addLocation(type, target); diff --git a/plugins/register-component/src/util/validate.test.ts b/plugins/register-component/src/util/validate.test.ts index d062655bd2..e4fc90699b 100644 --- a/plugins/register-component/src/util/validate.test.ts +++ b/plugins/register-component/src/util/validate.test.ts @@ -31,11 +31,12 @@ describe('ComponentIdValidators', () => { }); }); describe('yamlValidator', () => { - const errorMessage = "Must end with '.yaml'."; + const errorMessage = "Must contain '.yaml'."; test.each([ [true, '.yaml'], [true, 'http://example.com/blob/master/service.yaml'], [true, 'https://example.yaml'], + [true, 'https://example.com?path=abc.yaml&c=1'], [errorMessage, '.yml'], [errorMessage, 'http://example.com/blob/master/service'], [errorMessage, undefined], diff --git a/plugins/register-component/src/util/validate.ts b/plugins/register-component/src/util/validate.ts index 78d20995f5..8552872015 100644 --- a/plugins/register-component/src/util/validate.ts +++ b/plugins/register-component/src/util/validate.ts @@ -19,6 +19,6 @@ export const ComponentIdValidators = { (typeof value === 'string' && value.match(/^https:\/\//) !== null) || 'Must start with https://.', yamlValidator: (value: any) => - (typeof value === 'string' && value.match(/.yaml$/) !== null) || - "Must end with '.yaml'.", + (typeof value === 'string' && value.match(/.yaml/) !== null) || + "Must contain '.yaml'.", }; From d7a10bcf127788d797e2ee2a469d2a76100434f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Sun, 23 Aug 2020 09:39:53 +0200 Subject: [PATCH 145/656] Update README.md (#2083) --- README.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/README.md b/README.md index ee9e85fd7f..b5e8704548 100644 --- a/README.md +++ b/README.md @@ -29,16 +29,6 @@ For more information go to [backstage.io](https://backstage.io) or join our [Dis A detailed project roadmap, including already delivered milestones, is available [here](https://backstage.io/docs/overview/roadmap). -## Overview - -The Backstage platform consists of a number of different components: - -- **app** - Main web application that users interact with. It's built up by a number of different _Plugins_. This repo contains an example implementation of an app (located in `packages/app`) and you can easily get started with your own app by [creating one](docs/getting-started/create-an-app.md). -- [**plugins**](https://github.com/spotify/backstage/tree/master/plugins) - Each plugin is treated as a self-contained web app and can include almost any type of content. Plugins all use a common set of platform API's and reusable UI components. Plugins can fetch data either from the _backend_ or through any RESTful API exposed through the _proxy_. -- [**service catalog**](https://github.com/spotify/backstage/tree/master/packages/backend) - Service that holds the model of your software ecosystem, including organisational information and what team owns what software. The backend also has a Plugin model for extending its graph. -- [**proxy**](https://github.com/spotify/backstage/tree/master/plugins/proxy-backend) - Terminates HTTPS and exposes any RESTful API to Plugins. -- **identity** - A backend service that holds your organisation's metadata. - ## Getting Started There are two different ways to get started with Backstage, either by creating a standalone app, or by cloning this repo. Which method you use depends on what you're planning to do. From 5f1c74452acbb294e32e21f8e2889343253155e0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 23 Aug 2020 16:18:48 +0200 Subject: [PATCH 146/656] workflows: rename Frontend CI to just CI --- .github/workflows/{frontend.yml => ci.yml} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename .github/workflows/{frontend.yml => ci.yml} (98%) diff --git a/.github/workflows/frontend.yml b/.github/workflows/ci.yml similarity index 98% rename from .github/workflows/frontend.yml rename to .github/workflows/ci.yml index dc65b987a8..105642e284 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/ci.yml @@ -1,11 +1,11 @@ -name: Frontend CI +name: CI on: pull_request: paths-ignore: - 'microsite/**' jobs: - build: + verify: runs-on: ubuntu-latest strategy: From 1358739063eae124dce5ba11064b891a1ade68ed Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 23 Aug 2020 11:25:10 +0200 Subject: [PATCH 147/656] cli: move out e2e-test to separate package --- packages/cli/package.json | 7 +--- packages/e2e-test/.eslintrc.js | 7 ++++ packages/e2e-test/README.md | 24 +++++++++++++ packages/e2e-test/package.json | 35 +++++++++++++++++++ .../e2e-test => e2e-test/src}/.eslintrc.js | 0 .../{cli/e2e-test => e2e-test/src}/helpers.js | 0 .../cli-e2e-test.js => e2e-test/src/index.js} | 0 7 files changed, 67 insertions(+), 6 deletions(-) create mode 100644 packages/e2e-test/.eslintrc.js create mode 100644 packages/e2e-test/README.md create mode 100644 packages/e2e-test/package.json rename packages/{cli/e2e-test => e2e-test/src}/.eslintrc.js (100%) rename packages/{cli/e2e-test => e2e-test/src}/helpers.js (100%) rename packages/{cli/e2e-test/cli-e2e-test.js => e2e-test/src/index.js} (100%) diff --git a/packages/cli/package.json b/packages/cli/package.json index e5a8eafc81..0291e720d2 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -21,7 +21,6 @@ "build": "backstage-cli build --outputs cjs", "lint": "backstage-cli lint", "test": "backstage-cli test", - "test:e2e": "node e2e-test/cli-e2e-test.js", "clean": "backstage-cli clean", "start": "nodemon --" }, @@ -69,9 +68,7 @@ "jest-css-modules": "^2.1.0", "jest-esm-transformer": "^1.0.0", "mini-css-extract-plugin": "^0.9.0", - "node-fetch": "^2.6.0", "ora": "^4.0.3", - "pgtools": "^0.3.0", "raw-loader": "^4.0.1", "react": "^16.0.0", "react-dev-utils": "^10.2.1", @@ -118,9 +115,7 @@ "@types/webpack-dev-server": "^3.10.0", "del": "^5.1.0", "nodemon": "^2.0.2", - "tree-kill": "^1.2.2", - "ts-node": "^8.6.2", - "zombie": "^6.1.4" + "ts-node": "^8.6.2" }, "files": [ "asset-types", diff --git a/packages/e2e-test/.eslintrc.js b/packages/e2e-test/.eslintrc.js new file mode 100644 index 0000000000..69bec6cd2a --- /dev/null +++ b/packages/e2e-test/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: [require.resolve('@backstage/cli/config/eslint.backend')], + ignorePatterns: ['templates/**'], + rules: { + 'no-console': 0, + }, +}; diff --git a/packages/e2e-test/README.md b/packages/e2e-test/README.md new file mode 100644 index 0000000000..6cf50283c5 --- /dev/null +++ b/packages/e2e-test/README.md @@ -0,0 +1,24 @@ +# e2e-test + +End-to-end test for verifying Backstage packages. + +## Usage + +This package is only meant for usage within the Backstage monorepo. + +All packages need to be installed and built before running the test. In a fresh clone of this repo you first need to run the following from the repo root: + +```sh +yarn install +yarn tsc +yarn build +``` + +Once those tasks have completed, you can now run the test using `yarn start` inside this package. + +If you make changes to other packages you will need to rerun `yarn tsc && yarn build`. Changes to this package do not require a rebuild. + +## Documentation + +- [Backstage Readme](https://github.com/spotify/backstage/blob/master/README.md) +- [Backstage Documentation](https://github.com/spotify/backstage/blob/master/docs/README.md) diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json new file mode 100644 index 0000000000..d2f9dc9784 --- /dev/null +++ b/packages/e2e-test/package.json @@ -0,0 +1,35 @@ +{ + "name": "e2e-test", + "description": "E2E test for verifying Backstage packages", + "version": "0.0.0", + "private": true, + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/spotify/backstage", + "directory": "packages/e2e-test" + }, + "keywords": [ + "backstage" + ], + "license": "Apache-2.0", + "main": "src/index.js", + "scripts": { + "start": "ts-node .", + "lint": "backstage-cli lint", + "test": "backstage-cli test", + "test:e2e": "yarn start" + }, + "devDependencies": { + "@backstage/cli-common": "^0.1.1-alpha.19", + "@types/fs-extra": "^9.0.1", + "@types/node": "^13.7.2", + "fs-extra": "^9.0.0", + "handlebars": "^4.7.3", + "node-fetch": "^2.6.0", + "pgtools": "^0.3.0", + "tree-kill": "^1.2.2", + "ts-node": "^8.6.2", + "zombie": "^6.1.4" + } +} diff --git a/packages/cli/e2e-test/.eslintrc.js b/packages/e2e-test/src/.eslintrc.js similarity index 100% rename from packages/cli/e2e-test/.eslintrc.js rename to packages/e2e-test/src/.eslintrc.js diff --git a/packages/cli/e2e-test/helpers.js b/packages/e2e-test/src/helpers.js similarity index 100% rename from packages/cli/e2e-test/helpers.js rename to packages/e2e-test/src/helpers.js diff --git a/packages/cli/e2e-test/cli-e2e-test.js b/packages/e2e-test/src/index.js similarity index 100% rename from packages/cli/e2e-test/cli-e2e-test.js rename to packages/e2e-test/src/index.js From 9052dfc5bf7d4fba51ca17fd271a2b3885c6e14a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 23 Aug 2020 11:28:59 +0200 Subject: [PATCH 148/656] e2e-test: merge eslint rules --- packages/e2e-test/.eslintrc.js | 9 +++++++++ packages/e2e-test/src/.eslintrc.js | 29 ----------------------------- 2 files changed, 9 insertions(+), 29 deletions(-) delete mode 100644 packages/e2e-test/src/.eslintrc.js diff --git a/packages/e2e-test/.eslintrc.js b/packages/e2e-test/.eslintrc.js index 69bec6cd2a..ce2592e03b 100644 --- a/packages/e2e-test/.eslintrc.js +++ b/packages/e2e-test/.eslintrc.js @@ -3,5 +3,14 @@ module.exports = { ignorePatterns: ['templates/**'], rules: { 'no-console': 0, + 'import/no-extraneous-dependencies': [ + 'error', + { + devDependencies: true, + optionalDependencies: false, + peerDependencies: false, + bundledDependencies: false, + }, + ], }, }; diff --git a/packages/e2e-test/src/.eslintrc.js b/packages/e2e-test/src/.eslintrc.js deleted file mode 100644 index 274c7426b8..0000000000 --- a/packages/e2e-test/src/.eslintrc.js +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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. - */ - -module.exports = { - rules: { - 'import/no-extraneous-dependencies': [ - 'error', - { - devDependencies: true, - optionalDependencies: true, - peerDependencies: true, - bundledDependencies: true, - }, - ], - }, -}; From 0d240696ebad85b2e2e78b346d08d9e283dab565 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 23 Aug 2020 12:00:37 +0200 Subject: [PATCH 149/656] e2e-test: port to typscript --- packages/e2e-test/package.json | 4 +- .../e2e-test/src/{helpers.js => helpers.ts} | 48 ++++++------- packages/e2e-test/src/{index.js => index.ts} | 68 +++++++++++-------- packages/e2e-test/src/types.d.ts | 18 +++++ 4 files changed, 82 insertions(+), 56 deletions(-) rename packages/e2e-test/src/{helpers.js => helpers.ts} (84%) rename packages/e2e-test/src/{index.js => index.ts} (86%) create mode 100644 packages/e2e-test/src/types.d.ts diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index d2f9dc9784..389f4b6f93 100644 --- a/packages/e2e-test/package.json +++ b/packages/e2e-test/package.json @@ -13,9 +13,9 @@ "backstage" ], "license": "Apache-2.0", - "main": "src/index.js", + "main": "src/index.ts", "scripts": { - "start": "ts-node .", + "start": "yarn ts-node --transpile-only --compiler-options '{\"module\":\"CommonJS\"}' .", "lint": "backstage-cli lint", "test": "backstage-cli test", "test:e2e": "yarn start" diff --git a/packages/e2e-test/src/helpers.js b/packages/e2e-test/src/helpers.ts similarity index 84% rename from packages/e2e-test/src/helpers.js rename to packages/e2e-test/src/helpers.ts index 580f53cbe8..783b7e3988 100644 --- a/packages/e2e-test/src/helpers.js +++ b/packages/e2e-test/src/helpers.ts @@ -14,16 +14,21 @@ * limitations under the License. */ -const { spawn, execFile: execFileCb } = require('child_process'); -const { promisify } = require('util'); +import { + spawn, + execFile as execFileCb, + SpawnOptions, + ChildProcess, +} from 'child_process'; +import { promisify } from 'util'; const execFile = promisify(execFileCb); const EXPECTED_LOAD_ERRORS = /ECONNREFUSED|ECONNRESET|did not get to load all resources/; -function spawnPiped(cmd, options) { - function pipeWithPrefix(stream, prefix = '') { - return data => { +export function spawnPiped(cmd: string[], options?: SpawnOptions) { + function pipeWithPrefix(stream: NodeJS.WriteStream, prefix = '') { + return (data: Buffer) => { const prefixedMsg = data .toString('utf8') .trimRight() @@ -40,11 +45,11 @@ function spawnPiped(cmd, options) { child.on('error', handleError); const logPrefix = cmd.map(s => s.replace(/.+\//, '')).join(' '); - child.stdout.on( + child.stdout?.on( 'data', pipeWithPrefix(process.stdout, `[${logPrefix}].out: `), ); - child.stderr.on( + child.stderr?.on( 'data', pipeWithPrefix(process.stderr, `[${logPrefix}].err: `), ); @@ -52,7 +57,7 @@ function spawnPiped(cmd, options) { return child; } -async function runPlain(cmd, options) { +export async function runPlain(cmd: string[], options?: SpawnOptions) { try { const { stdout } = await execFile(cmd[0], cmd.slice(1), { ...options, @@ -70,8 +75,9 @@ async function runPlain(cmd, options) { } } -function handleError(err) { +export function handleError(err: Error & { code?: unknown }) { process.stdout.write(`${err.name}: ${err.stack || err.message}\n`); + if (typeof err.code === 'number') { process.exit(err.code); } else { @@ -85,7 +91,7 @@ function handleError(err) { * .cancel() is available * @returns {Promise} Promise of resolution */ -function waitFor(fn) { +export function waitFor(fn: () => boolean) { return new Promise(resolve => { const handle = setInterval(() => { if (fn()) { @@ -97,7 +103,7 @@ function waitFor(fn) { }); } -async function waitForExit(child) { +export async function waitForExit(child: ChildProcess) { if (child.exitCode !== null) { throw new Error(`Child already exited with code ${child.exitCode}`); } @@ -113,10 +119,10 @@ async function waitForExit(child) { ); } -async function waitForPageWithText( - browser, - path, - text, +export async function waitForPageWithText( + browser: any, + path: string, + text: string, { intervalMs = 1000, maxLoadAttempts = 240, maxFindTextAttempts = 3 } = {}, ) { let loadAttempts = 0; @@ -163,16 +169,6 @@ async function waitForPageWithText( } } -function print(msg) { +export function print(msg: string) { return process.stdout.write(`${msg}\n`); } - -module.exports = { - spawnPiped, - runPlain, - handleError, - waitFor, - waitForExit, - waitForPageWithText, - print, -}; diff --git a/packages/e2e-test/src/index.js b/packages/e2e-test/src/index.ts similarity index 86% rename from packages/e2e-test/src/index.js rename to packages/e2e-test/src/index.ts index c4004f7c46..a455964f44 100644 --- a/packages/e2e-test/src/index.js +++ b/packages/e2e-test/src/index.ts @@ -14,14 +14,14 @@ * limitations under the License. */ -const os = require('os'); -const fs = require('fs-extra'); -const fetch = require('node-fetch'); -const handlebars = require('handlebars'); -const killTree = require('tree-kill'); -const { resolve: resolvePath, join: joinPath } = require('path'); -const Browser = require('zombie'); -const { +import os from 'os'; +import fs from 'fs-extra'; +import fetch from 'node-fetch'; +import handlebars from 'handlebars'; +import killTree from 'tree-kill'; +import { resolve as resolvePath, join as joinPath } from 'path'; +import Browser from 'zombie'; +import { spawnPiped, runPlain, handleError, @@ -29,8 +29,8 @@ const { waitFor, waitForExit, print, -} = require('./helpers'); -const pgtools = require('pgtools'); +} from './helpers'; +import pgtools from 'pgtools'; async function main() { const rootDir = await fs.mkdtemp(resolvePath(os.tmpdir(), 'backstage-e2e-')); @@ -59,7 +59,7 @@ async function main() { /** * Builds a dist workspace that contains the cli and core packages */ -async function buildDistWorkspace(workspaceName, rootDir) { +async function buildDistWorkspace(workspaceName: string, rootDir: string) { const workspaceDir = resolvePath(rootDir, workspaceName); await fs.ensureDir(workspaceDir); @@ -121,13 +121,20 @@ async function buildDistWorkspace(workspaceName, rootDir) { /** * Pin the yarn version in a directory to the one we're using in the Backstage repo */ -async function pinYarnVersion(dir) { +async function pinYarnVersion(dir: string) { const repoRoot = resolvePath(__dirname, '../../..'); const yarnRc = await fs.readFile(resolvePath(repoRoot, '.yarnrc'), 'utf8'); const yarnRcLines = yarnRc.split('\n'); const yarnPathLine = yarnRcLines.find(line => line.startsWith('yarn-path')); - const [, localYarnPath] = yarnPathLine.match(/"(.*)"/); + if (!yarnPathLine) { + throw new Error(`Unable to find 'yarn-path' in ${yarnRc}`); + } + const match = yarnPathLine.match(/"(.*)"/); + if (!match) { + throw new Error(`Invalid 'yarn-path' in ${yarnRc}`); + } + const [, localYarnPath] = match; const yarnPath = resolvePath(repoRoot, localYarnPath); await fs.writeFile(resolvePath(dir, '.yarnrc'), `yarn-path "${yarnPath}"\n`); @@ -136,7 +143,12 @@ async function pinYarnVersion(dir) { /** * Creates a new app inside rootDir called test-app, using packages from the workspaceDir */ -async function createApp(appName, isPostgres, workspaceDir, rootDir) { +async function createApp( + appName: string, + isPostgres: boolean, + workspaceDir: string, + rootDir: string, +) { const child = spawnPiped( [ 'node', @@ -150,20 +162,20 @@ async function createApp(appName, isPostgres, workspaceDir, rootDir) { try { let stdout = ''; - child.stdout.on('data', data => { + child.stdout?.on('data', data => { stdout = stdout + data.toString('utf8'); }); await waitFor(() => stdout.includes('Enter a name for the app')); - child.stdin.write(`${appName}\n`); + child.stdin?.write(`${appName}\n`); await waitFor(() => stdout.includes('Select database for the backend')); if (!isPostgres) { // Simulate down arrow press - child.stdin.write(`\u001B\u005B\u0042`); + child.stdin?.write(`\u001B\u005B\u0042`); } - child.stdin.write(`\n`); + child.stdin?.write(`\n`); print('Waiting for app create script to be done'); await waitForExit(child); @@ -205,7 +217,7 @@ async function createApp(appName, isPostgres, workspaceDir, rootDir) { /** * This points dependency resolutions into the workspace for each package that is present there */ -async function overrideModuleResolutions(appDir, workspaceDir) { +async function overrideModuleResolutions(appDir: string, workspaceDir: string) { const pkgJsonPath = resolvePath(appDir, 'package.json'); const pkgJson = await fs.readJson(pkgJsonPath); @@ -231,19 +243,19 @@ async function overrideModuleResolutions(appDir, workspaceDir) { /** * Uses create-plugin command to create a new plugin in the app */ -async function createPlugin(pluginName, appDir) { +async function createPlugin(pluginName: string, appDir: string) { const child = spawnPiped(['yarn', 'create-plugin'], { cwd: appDir, }); try { let stdout = ''; - child.stdout.on('data', data => { + child.stdout?.on('data', (data: Buffer) => { stdout = stdout + data.toString('utf8'); }); await waitFor(() => stdout.includes('Enter an ID for the plugin')); - child.stdin.write(`${pluginName}\n`); + child.stdin?.write(`${pluginName}\n`); // await waitFor(() => stdout.includes('Enter the owner(s) of the plugin')); // child.stdin.write('@someuser\n'); @@ -266,7 +278,7 @@ async function createPlugin(pluginName, appDir) { /** * Start serving the newly created app and make sure that the create plugin is rendering correctly */ -async function testAppServe(pluginName, appDir) { +async function testAppServe(pluginName: string, appDir: string) { const startApp = spawnPiped(['yarn', 'start'], { cwd: appDir, }); @@ -302,7 +314,7 @@ async function testAppServe(pluginName, appDir) { } /** Creates PG databases (drops if exists before) */ -async function createDB(database) { +async function createDB(database: string) { const config = { host: process.env.POSTGRES_HOST, port: process.env.POSTGRES_PORT, @@ -321,7 +333,7 @@ async function createDB(database) { /** * Start serving the newly created backend and make sure that all db migrations works correctly */ -async function testBackendStart(appDir, isPostgres) { +async function testBackendStart(appDir: string, isPostgres: boolean) { if (isPostgres) { print('Creating DBs'); await Promise.all( @@ -343,10 +355,10 @@ async function testBackendStart(appDir, isPostgres) { let stdout = ''; let stderr = ''; - child.stdout.on('data', data => { + child.stdout?.on('data', (data: Buffer) => { stdout = stdout + data.toString('utf8'); }); - child.stderr.on('data', data => { + child.stderr?.on('data', (data: Buffer) => { stderr = stderr + data.toString('utf8'); }); let successful = false; @@ -384,4 +396,4 @@ async function testBackendStart(appDir, isPostgres) { } process.on('unhandledRejection', handleError); -main(process.argv.slice(2)).catch(handleError); +main().catch(handleError); diff --git a/packages/e2e-test/src/types.d.ts b/packages/e2e-test/src/types.d.ts new file mode 100644 index 0000000000..0ae86490ee --- /dev/null +++ b/packages/e2e-test/src/types.d.ts @@ -0,0 +1,18 @@ +/* + * Copyright 2020 Spotify AB + * + * 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. + */ + +declare module 'zombie'; +declare module 'pgtools'; From 831ce12b7d3b31325688fc001f4737aa3da078b9 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 23 Aug 2020 12:21:17 +0200 Subject: [PATCH 150/656] e2e-test: refactor dep detection and use cli-common to resolve paths --- packages/e2e-test/src/index.ts | 60 +++++++++++++--------------------- 1 file changed, 22 insertions(+), 38 deletions(-) diff --git a/packages/e2e-test/src/index.ts b/packages/e2e-test/src/index.ts index a455964f44..46992ab966 100644 --- a/packages/e2e-test/src/index.ts +++ b/packages/e2e-test/src/index.ts @@ -31,6 +31,9 @@ import { print, } from './helpers'; import pgtools from 'pgtools'; +import { findPaths } from '@backstage/cli-common'; + +const paths = findPaths(__dirname); async function main() { const rootDir = await fs.mkdtemp(resolvePath(os.tmpdir(), 'backstage-e2e-')); @@ -63,34 +66,22 @@ async function buildDistWorkspace(workspaceName: string, rootDir: string) { const workspaceDir = resolvePath(rootDir, workspaceName); await fs.ensureDir(workspaceDir); - // We grab the needed dependencies from the template packages - const appPkgTemplate = await fs.readFile( - resolvePath( - __dirname, - '../../create-app/templates/default-app/packages/app/package.json.hbs', - ), - 'utf8', - ); - const appPkg = JSON.parse( - handlebars.compile(appPkgTemplate)({ version: '0.0.0' }), - ); - const appDeps = Object.keys(appPkg.dependencies).filter(name => - name.startsWith('@backstage/'), - ); - - const backendPkgTemplate = await fs.readFile( - resolvePath( - __dirname, - '../../create-app/templates/default-app/packages/backend/package.json.hbs', - ), - 'utf8', - ); - const backendPkg = JSON.parse( - handlebars.compile(backendPkgTemplate)({ version: '0.0.0' }), - ); - const backendDeps = Object.keys(backendPkg.dependencies).filter(name => - name.startsWith('@backstage/'), - ); + // We grab the needed dependencies from the create app template + const createAppDeps: string[] = []; + for (const pkgPath of ['packages/app', 'packages/backend']) { + const path = paths.resolveOwnRoot( + 'packages/create-app/templates/default-app', + pkgPath, + 'package.json.hbs', + ); + const appPkgTemplate = await fs.readFile(path, 'utf8'); + const { dependencies: allDeps } = JSON.parse( + handlebars.compile(appPkgTemplate)({ version: '0.0.0' }), + ); + createAppDeps.push( + ...Object.keys(allDeps).filter(name => name.startsWith('@backstage/')), + ); + } print(`Preparing workspace`); await runPlain([ @@ -98,13 +89,8 @@ async function buildDistWorkspace(workspaceName: string, rootDir: string) { 'backstage-cli', 'build-workspace', workspaceDir, - '@backstage/cli', '@backstage/create-app', - '@backstage/core', - '@backstage/dev-utils', - '@backstage/test-utils', - ...appDeps, - ...backendDeps, + ...createAppDeps, ]); print('Pinning yarn version in workspace'); @@ -122,9 +108,7 @@ async function buildDistWorkspace(workspaceName: string, rootDir: string) { * Pin the yarn version in a directory to the one we're using in the Backstage repo */ async function pinYarnVersion(dir: string) { - const repoRoot = resolvePath(__dirname, '../../..'); - - const yarnRc = await fs.readFile(resolvePath(repoRoot, '.yarnrc'), 'utf8'); + const yarnRc = await fs.readFile(paths.resolveOwnRoot('.yarnrc'), 'utf8'); const yarnRcLines = yarnRc.split('\n'); const yarnPathLine = yarnRcLines.find(line => line.startsWith('yarn-path')); if (!yarnPathLine) { @@ -135,7 +119,7 @@ async function pinYarnVersion(dir: string) { throw new Error(`Invalid 'yarn-path' in ${yarnRc}`); } const [, localYarnPath] = match; - const yarnPath = resolvePath(repoRoot, localYarnPath); + const yarnPath = paths.resolveOwnRoot(localYarnPath); await fs.writeFile(resolvePath(dir, '.yarnrc'), `yarn-path "${yarnPath}"\n`); } From 0d09f12c4d51a0cbab012c4c86f0699c71993a2f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 23 Aug 2020 13:28:16 +0200 Subject: [PATCH 151/656] workflows: update e2e test workflows --- .github/workflows/{cli-win.yml => e2e-win.yml} | 14 ++++++++------ .github/workflows/{cli.yml => e2e.yml} | 14 +++++++------- 2 files changed, 15 insertions(+), 13 deletions(-) rename .github/workflows/{cli-win.yml => e2e-win.yml} (77%) rename .github/workflows/{cli.yml => e2e.yml} (87%) diff --git a/.github/workflows/cli-win.yml b/.github/workflows/e2e-win.yml similarity index 77% rename from .github/workflows/cli-win.yml rename to .github/workflows/e2e-win.yml index 4e7a186282..5f75f3d9c8 100644 --- a/.github/workflows/cli-win.yml +++ b/.github/workflows/e2e-win.yml @@ -1,12 +1,13 @@ -name: CLI Test Windows +name: E2E Test Windows -# Building on windows is really slow, so this workflow is separate from cli.yml and only builds on changes +# Building on windows is really slow, so this workflow is separate from e2e.yml and only builds on changes # to the cli itself. They're more likely to introduce issues on windows, compared to changes to core and yarn.lock. on: pull_request: paths: - - '.github/workflows/cli-win.yml' + - '.github/workflows/e2e-win.yml' - 'packages/cli/**' + - 'packages/e2e/**' - 'packages/create-app/**' jobs: @@ -42,6 +43,7 @@ jobs: - name: yarn install run: yarn install --frozen-lockfile - run: yarn tsc - - run: yarn build - - name: verify app and plugin creation - run: node ${{ github.workspace }}/packages/cli/e2e-test/cli-e2e-test.js + - name: yarn build + run: yarn build --ignore example-app --ignore example-backend --ignore @techdocs/cli --ignore backstage-microsite + - name: run E2E test + run: yarn workspace e2e-test start diff --git a/.github/workflows/cli.yml b/.github/workflows/e2e.yml similarity index 87% rename from .github/workflows/cli.yml rename to .github/workflows/e2e.yml index 158310b5ea..45b9d7e2d8 100644 --- a/.github/workflows/cli.yml +++ b/.github/workflows/e2e.yml @@ -1,11 +1,10 @@ -name: CLI Test +name: E2E Test Linux on: pull_request: paths-ignore: - 'microsite/**' - jobs: build: runs-on: ${{ matrix.os }} @@ -51,13 +50,14 @@ jobs: - name: yarn install run: yarn install --frozen-lockfile - run: yarn tsc - - run: yarn build - - name: verify app and plugin creation + - name: yarn build + run: yarn build --ignore example-app --ignore example-backend --ignore @techdocs/cli --ignore backstage-microsite + - name: run E2E test + run: | + sudo sysctl fs.inotify.max_user_watches=524288 + yarn workspace e2e-test start env: POSTGRES_HOST: localhost POSTGRES_PORT: ${{ job.services.postgres.ports[5432] }} POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres - run: | - sudo sysctl fs.inotify.max_user_watches=524288 - node ${{ github.workspace }}/packages/cli/e2e-test/cli-e2e-test.js From 5fc0ce3e375b62704dd92d2bd66abdd447eac75b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 23 Aug 2020 13:43:18 +0200 Subject: [PATCH 152/656] e2e-test: make waitFor time out --- packages/e2e-test/src/helpers.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/e2e-test/src/helpers.ts b/packages/e2e-test/src/helpers.ts index 783b7e3988..b59de75860 100644 --- a/packages/e2e-test/src/helpers.ts +++ b/packages/e2e-test/src/helpers.ts @@ -91,9 +91,14 @@ export function handleError(err: Error & { code?: unknown }) { * .cancel() is available * @returns {Promise} Promise of resolution */ -export function waitFor(fn: () => boolean) { - return new Promise(resolve => { +export function waitFor(fn: () => boolean, maxSeconds: number = 120) { + let count = 0; + return new Promise((resolve, reject) => { const handle = setInterval(() => { + if (count++ > maxSeconds * 10) { + reject(new Error('Timed out while waiting for condition')); + return; + } if (fn()) { clearInterval(handle); resolve(); From b73612df6476122043a9da08a29b2eba7b7d73fb Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 23 Aug 2020 14:56:05 +0200 Subject: [PATCH 153/656] e2e-test: add minimal test --- packages/e2e-test/src/helpers.test.ts | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 packages/e2e-test/src/helpers.test.ts diff --git a/packages/e2e-test/src/helpers.test.ts b/packages/e2e-test/src/helpers.test.ts new file mode 100644 index 0000000000..196241f9e0 --- /dev/null +++ b/packages/e2e-test/src/helpers.test.ts @@ -0,0 +1,33 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { waitFor } from './helpers'; + +describe('waitFor', () => { + it('should wait for true', async () => { + const fn = jest.fn().mockReturnValue(true); + await waitFor(fn); + expect(fn).toHaveBeenCalledTimes(1); + }); + + it('should time out', async () => { + const fn = jest.fn().mockReturnValue(false); + await expect(waitFor(fn, 1)).rejects.toThrow( + 'Timed out while waiting for condition', + ); + expect(fn).toHaveBeenCalled(); + }); +}); From e8e6deb0e46c48585a702837379900a133d7131f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 23 Aug 2020 15:33:15 +0200 Subject: [PATCH 154/656] e2e-test: switch to using ts-node register to pass options --- packages/e2e-test/package.json | 4 +-- .../e2e-test/src/{index.ts => e2e-test.ts} | 0 packages/e2e-test/src/index.js | 25 +++++++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) rename packages/e2e-test/src/{index.ts => e2e-test.ts} (100%) create mode 100644 packages/e2e-test/src/index.js diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index 389f4b6f93..8e6c730431 100644 --- a/packages/e2e-test/package.json +++ b/packages/e2e-test/package.json @@ -13,9 +13,9 @@ "backstage" ], "license": "Apache-2.0", - "main": "src/index.ts", + "main": "src/index.js", "scripts": { - "start": "yarn ts-node --transpile-only --compiler-options '{\"module\":\"CommonJS\"}' .", + "start": "node .", "lint": "backstage-cli lint", "test": "backstage-cli test", "test:e2e": "yarn start" diff --git a/packages/e2e-test/src/index.ts b/packages/e2e-test/src/e2e-test.ts similarity index 100% rename from packages/e2e-test/src/index.ts rename to packages/e2e-test/src/e2e-test.ts diff --git a/packages/e2e-test/src/index.js b/packages/e2e-test/src/index.js new file mode 100644 index 0000000000..90f8030a0e --- /dev/null +++ b/packages/e2e-test/src/index.js @@ -0,0 +1,25 @@ +/* + * Copyright 2020 Spotify AB + * + * 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. + */ + +require('ts-node').register({ + transpileOnly: true, + project: require('path').resolve(__dirname, '../../../tsconfig.json'), + compilerOptions: { + module: 'CommonJS', + }, +}); + +require('./e2e-test'); From 5b722c179fb43932cf6109a389dc8d6a57e209dd Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 23 Aug 2020 15:48:34 +0200 Subject: [PATCH 155/656] e2e-test: include local deps from plugin template --- packages/e2e-test/src/e2e-test.ts | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/packages/e2e-test/src/e2e-test.ts b/packages/e2e-test/src/e2e-test.ts index 46992ab966..7377655497 100644 --- a/packages/e2e-test/src/e2e-test.ts +++ b/packages/e2e-test/src/e2e-test.ts @@ -35,6 +35,12 @@ import { findPaths } from '@backstage/cli-common'; const paths = findPaths(__dirname); +const templatePackagePaths = [ + 'packages/cli/templates/default-plugin/package.json.hbs', + 'packages/create-app/templates/default-app/packages/app/package.json.hbs', + 'packages/create-app/templates/default-app/packages/backend/package.json.hbs', +]; + async function main() { const rootDir = await fs.mkdtemp(resolvePath(os.tmpdir(), 'backstage-e2e-')); print(`CLI E2E test root: ${rootDir}\n`); @@ -67,20 +73,18 @@ async function buildDistWorkspace(workspaceName: string, rootDir: string) { await fs.ensureDir(workspaceDir); // We grab the needed dependencies from the create app template - const createAppDeps: string[] = []; - for (const pkgPath of ['packages/app', 'packages/backend']) { - const path = paths.resolveOwnRoot( - 'packages/create-app/templates/default-app', - pkgPath, - 'package.json.hbs', - ); - const appPkgTemplate = await fs.readFile(path, 'utf8'); - const { dependencies: allDeps } = JSON.parse( - handlebars.compile(appPkgTemplate)({ version: '0.0.0' }), - ); - createAppDeps.push( - ...Object.keys(allDeps).filter(name => name.startsWith('@backstage/')), + const createAppDeps = new Set(); + for (const pkgJsonPath of templatePackagePaths) { + const path = paths.resolveOwnRoot(pkgJsonPath); + const pkgTemplate = await fs.readFile(path, 'utf8'); + const { dependencies = {}, devDependencies = {} } = JSON.parse( + handlebars.compile(pkgTemplate)({ version: '0.0.0' }), ); + + Array() + .concat(Object.keys(dependencies), Object.keys(devDependencies)) + .filter(name => name.startsWith('@backstage/')) + .forEach(dep => createAppDeps.add(dep)); } print(`Preparing workspace`); From 4e5422bd34275f82a479dbc48c5ba8e46b3b62d0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 23 Aug 2020 15:55:29 +0200 Subject: [PATCH 156/656] workflows: add Windows master build --- .github/workflows/master-win.yml | 47 ++++++++++++++++++++++++++++++++ .github/workflows/master.yml | 2 +- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/master-win.yml diff --git a/.github/workflows/master-win.yml b/.github/workflows/master-win.yml new file mode 100644 index 0000000000..074f944250 --- /dev/null +++ b/.github/workflows/master-win.yml @@ -0,0 +1,47 @@ +name: Master Build Windows + +on: + push: + branches: [master] + +jobs: + build: + runs-on: windows-latest + + strategy: + matrix: + node-version: [12.x] + + env: + CI: true + NODE_OPTIONS: --max-old-space-size=4096 + + steps: + - uses: actions/checkout@v2 + - name: find location of global yarn cache + id: yarn-cache + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: cache global yarn cache + uses: actions/cache@v2 + with: + path: ${{ steps.yarn-cache.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - name: cache node_modules + uses: actions/cache@v2 + with: + path: node_modules + key: ${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} + - name: use node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + registry-url: https://registry.npmjs.org/ # Needed for auth + + - name: yarn install + run: yarn install --frozen-lockfile + +# Tests are broken on Windows, disabled for now + # - name: test + # run: yarn lerna -- run test diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 3ef0c1fee3..805095ec53 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -1,4 +1,4 @@ -name: Master Build +name: Main Master Build on: push: From ed733cf02967d29a549c77d887f1276a83868bc6 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 23 Aug 2020 18:01:13 +0200 Subject: [PATCH 157/656] docsgen: fix link generation on windows --- packages/docgen/src/docgen/ApiDocGenerator.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/packages/docgen/src/docgen/ApiDocGenerator.ts b/packages/docgen/src/docgen/ApiDocGenerator.ts index bfe449155b..3edcfedb9c 100644 --- a/packages/docgen/src/docgen/ApiDocGenerator.ts +++ b/packages/docgen/src/docgen/ApiDocGenerator.ts @@ -15,7 +15,11 @@ */ import ts from 'typescript'; -import { relative } from 'path'; +import { + relative as relativePath, + sep as pathSep, + posix as posixPath, +} from 'path'; import { ExportedInstance, ApiDoc, @@ -25,6 +29,12 @@ import { TypeLink, } from './types'; +// Always use unix path separators for the relative file +// paths, since we'll be using those for HTTP URLs. +function relativeLink(basePath: string, filePath: string) { + return relativePath(basePath, filePath).split(pathSep).join(posixPath.sep); +} + /** * The ApiDocGenerator uses the typescript compiler API to build the data structure that * describes a Backstage API and all of it's related types. @@ -58,7 +68,7 @@ export default class ApiDocGenerator { const id = this.getObjectPropertyLiteral(info, 'id'); const description = this.getObjectPropertyLiteral(info, 'description'); - const file = relative(this.basePath, source.fileName); + const file = relativeLink(this.basePath, source.fileName); const { line } = source.getLineAndCharacterOfPosition( apiInstance.node.getStart(), ); @@ -111,7 +121,7 @@ export default class ApiDocGenerator { const name = (type.aliasSymbol || type.symbol).name; const [declaration] = (type.aliasSymbol || type.symbol).declarations; const sourceFile = declaration.getSourceFile(); - const file = relative(this.basePath, sourceFile.fileName); + const file = relativeLink(this.basePath, sourceFile.fileName); const { line } = sourceFile.getLineAndCharacterOfPosition( declaration.getStart(), ); @@ -234,7 +244,7 @@ export default class ApiDocGenerator { const { line } = sourceFile.getLineAndCharacterOfPosition( declaration.getStart(), ); - const file = relative(this.basePath, sourceFile.fileName); + const file = relativeLink(this.basePath, sourceFile.fileName); const typeInfo = { id: (symbol as any).id, name: symbol.name, From ed5a0e702821d36ef6ffec0ef0582c37869f90ec Mon Sep 17 00:00:00 2001 From: Andrew Thauer <6507159+andrewthauer@users.noreply.github.com> Date: Mon, 24 Aug 2020 00:34:16 -0400 Subject: [PATCH 158/656] docs: add wealthsimple to adopters list (#2090) --- ADOPTERS.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/ADOPTERS.md b/ADOPTERS.md index 7a96198529..dc02ad3b85 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -1,13 +1,14 @@ -| Organization | Contact | Description of Use | -| --------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | -| [Spotify](https://www.spotify.com) | [@stefanalund](https://github.com/stefanalund) | Main interface towards all of Spotify's infrastructure and technical documentation. | -| [bol.com](https://www.bol.com) | [@RoyJacobs](https://github.com/RoyJacobs) | Initial work being done to unify platform tooling. | -| [DFDS](https://www.dfds.com) | [@carlsendk](https://github.com/carlsendk) | V2 self-service platform. | -| [Roadie](https://roadie.io) | [@dtuite](https://github.com/dtuite) | Hosted, managed Backstage with easy set-up | -| [Roku](https://www.roku.com) | [@timurista](https://github.com/timurista) | Initial work on Cloud engineering service platform. | -| [SDA SE](https://sda.se) | [@Fox32](https://github.com/Fox32) | Central place for developing and sharing services in our insurance ecosystem. | -| [H-E-B](https://www.heb.com) | [@german-j-rodriguez](https://github.com/german-j-rodriguez) | Initial work on Engineering Portal service platform. | -| [American Airlines](https://www.aa.com) | [@paulpach](https://github.com/paulpach) | Central place for developers to develop and maintain applications | -| [Kiwi.com](https://kiwi.com) | [@aexvir](https://github.com/aexvir) | Replacing the frontend of [The Zoo](https://github.com/kiwicom/the-zoo), their service registry. | -| [Voi](https://www.voiscooters.com/) | [@K-Phoen](https://github.com/K-Phoen) | Developer portal, main gateway to our infrastructure, documentation and internal tooling. | -| [Talkdesk](https://www.talkdesk.com) | [@jaime-talkdesk](https://github.com/jaime-talkdesk) | Initial work for Engineering Portal and Self Provisioning to R&D | +| Organization | Contact | Description of Use | +| -------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| [Spotify](https://www.spotify.com) | [@stefanalund](https://github.com/stefanalund) | Main interface towards all of Spotify's infrastructure and technical documentation. | +| [bol.com](https://www.bol.com) | [@RoyJacobs](https://github.com/RoyJacobs) | Initial work being done to unify platform tooling. | +| [DFDS](https://www.dfds.com) | [@carlsendk](https://github.com/carlsendk) | V2 self-service platform. | +| [Roadie](https://roadie.io) | [@dtuite](https://github.com/dtuite) | Hosted, managed Backstage with easy set-up | +| [Roku](https://www.roku.com) | [@timurista](https://github.com/timurista) | Initial work on Cloud engineering service platform. | +| [SDA SE](https://sda.se) | [@Fox32](https://github.com/Fox32) | Central place for developing and sharing services in our insurance ecosystem. | +| [H-E-B](https://www.heb.com) | [@german-j-rodriguez](https://github.com/german-j-rodriguez) | Initial work on Engineering Portal service platform. | +| [American Airlines](https://www.aa.com) | [@paulpach](https://github.com/paulpach) | Central place for developers to develop and maintain applications | +| [Kiwi.com](https://kiwi.com) | [@aexvir](https://github.com/aexvir) | Replacing the frontend of [The Zoo](https://github.com/kiwicom/the-zoo), their service registry. | +| [Voi](https://www.voiscooters.com/) | [@K-Phoen](https://github.com/K-Phoen) | Developer portal, main gateway to our infrastructure, documentation and internal tooling. | +| [Talkdesk](https://www.talkdesk.com) | [@jaime-talkdesk](https://github.com/jaime-talkdesk) | Initial work for Engineering Portal and Self Provisioning to R&D | +| [Wealthsimple](https://www.wealthsimple.com) | [@andrewthauer](https://github.com/andrewthauer) | Developer portal, service catalog, documentation and tooling | From 9939dace2f2de5bcb0685f5d84bd472187d6020a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 24 Aug 2020 14:54:54 +0200 Subject: [PATCH 159/656] fix(e2e): attempt to unbreak e2e tests due to bad rollup-plugin-dts release --- packages/cli/package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 0291e720d2..b57ee8cb67 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -76,7 +76,7 @@ "recursive-readdir": "^2.2.2", "replace-in-file": "^6.0.0", "rollup": "2.23.x", - "rollup-plugin-dts": "^1.4.6", + "rollup-plugin-dts": "1.4.11", "rollup-plugin-esbuild": "^2.0.0", "rollup-plugin-image-files": "^1.4.2", "rollup-plugin-peer-deps-external": "^2.2.2", diff --git a/yarn.lock b/yarn.lock index 5a42953413..2ad2111e29 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20008,10 +20008,10 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rollup-plugin-dts@^1.4.6: - version "1.4.10" - resolved "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-1.4.10.tgz#0373c4284a2ba4d2d72df69c289271a816bc2736" - integrity sha512-bL6MBXc8lK7D5b/tYbHaglxs4ZxMQTQilGA6Xm9KQBEj4h9ZwIDlAsvDooGjJ/cOw23r3POTRtSCEyTHxtzHJg== +rollup-plugin-dts@1.4.11: + version "1.4.11" + resolved "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-1.4.11.tgz#aedf0b7bb91d51e20b755e2c18e840edfc7af7a1" + integrity sha512-yiScAMKgwH77b44a/IFGgjLsmwSlNfQhEM+eCb2uMrupQMPE1n/12wrnT431+v1u6wYMF1XuHqldh+v/7mTvYA== optionalDependencies: "@babel/code-frame" "^7.10.4" From 9bacbf14cb6eea3abb0a5fc38d7efe938d2297a5 Mon Sep 17 00:00:00 2001 From: Marc Bruggmann Date: Mon, 24 Aug 2020 15:12:33 +0200 Subject: [PATCH 160/656] Update the system model to focus more on the core entities. (#2011) * Update the system model to focus more on the core entities. Now that we have a way of labeling and annotating catalogue entities, we can focus the system model more on the entities themselves. I believe that also makes more sense as a model that is shared across many companies - it's easier to standardize on the core entities, and leave some room to implement further abstraction or categories to individual implementations. * Re-add system and domain conepts. --- .../software-model-core-entities.png | Bin 0 -> 17277 bytes .../features/software-catalog/system-model.md | 129 ++++++++++-------- 2 files changed, 71 insertions(+), 58 deletions(-) create mode 100644 docs/features/software-catalog/software-model-core-entities.png diff --git a/docs/features/software-catalog/software-model-core-entities.png b/docs/features/software-catalog/software-model-core-entities.png new file mode 100644 index 0000000000000000000000000000000000000000..b718b7527c3e5a8ac723f09d294457f8bda6ce44 GIT binary patch literal 17277 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 literal 0 HcmV?d00001 diff --git a/docs/features/software-catalog/system-model.md b/docs/features/software-catalog/system-model.md index 4b2884e097..435fe05b48 100644 --- a/docs/features/software-catalog/system-model.md +++ b/docs/features/software-catalog/system-model.md @@ -3,55 +3,24 @@ id: system-model title: System Model --- -We believe that a strong shared understanding and terminology around systems, -software and resources leads to a better Backstage experience. +We believe that a strong shared understanding and terminology around software +and resources leads to a better Backstage experience. _This description originates from [this RFC](https://github.com/spotify/backstage/issues/390). Note that some of the concepts are not yet supported in Backstage._ -## Concepts +## Core Entities -We model our technology using these five concepts (further explained below): +We model software in the Backstage catalogue using these three core entities +(further explained below): -- **Domains** are a high-level grouping of systems -- **Systems** encapsulate the implementation of APIs -- **APIs** are the boundaries between different components and systems -- **Components** are pieces of software +- **Components** are individual pieces of software +- **APIs** are the boundaries between different components - **Resources** are physical or virtual infrastructure needed to operate a - system + component -![Software Ecosystem Model_ Public Github version](https://user-images.githubusercontent.com/24575/77633084-39bcde80-6f4f-11ea-8251-f8df561a3652.png) - -### Domain - -While systems are the basic level of encapsulation for resources, components and -APIs, it is often useful to group a collection of systems that share -terminology, domain models, business purpose, or documentation, i.e. they form a -bounded context. - -For example, it would make sense if the different systems in the “Payments†-domain would come with some documentation on how to accept payments for a new -product or use-case, share the same entity types in their APIs, and integrate -well with each other. - -### System - -With increasing complexity in software, we believe that systems form an -important abstraction level to help us reason about software ecosystems. Systems -are a useful concept in that they allow us to ignore the implementation details -of a certain functionality for consumers, while allowing the owning team to make -changes as they see fit (leading to low coupling). - -A system, in this sense, is a collection of resources and components that -exposes one or several APIs. Components and resources in a system are typically -owned by the same team and are expected to co-evolve. As such, systems usually -consist of at most a handful of components. - -For example, a playlist management system might encapsulate a backend service to -update playlists, a backend service to query them, and a database to store them. -It could expose an RPC API, a daily snapshots dataset, and an event stream of -playlist updates. +![](system-model-core-entities.png) ### Component @@ -60,34 +29,78 @@ backend service or data pipeline (list not exhaustive). A component can be tracked in source control, or use some existing open source or commercial software. -A component can implement APIs for other components to consume. It might depend -on the resources of the system it belongs to, and APIs from other components or -other systems. All other aspects of the component, e.g. any code dependencies, -must be encapsulated. +A component can implement APIs for other components to consume. In turn it +might depend on APIs implemented by other components, or resources that are +attached to it at runtime. ### API -We believe APIs form an important (maybe the most important) abstraction that -allows large software ecosystems to scale. Thus, APIs are a first class citizen -in the Backstage model and the primary way to discover existing functionality in +APIs form an important (maybe the most important) abstraction that allows large +software ecosystems to scale. Thus, APIs are a first class citizen in the +Backstage model and the primary way to discover existing functionality in the ecosystem. -APIs are implemented by components and form boundaries between components and -systems. They might be defined using an RPC IDL (eg Protobuf, GraphQL, ...), a -data schema (eg Avro, TFRecord, ...), or as code interfaces. In any case, APIs -exposed by components need to be in a known machine-readable format so we can +APIs are implemented by components and form boundaries between components. They +might be defined using an RPC IDL (eg Protobuf, GraphQL, ...), a data schema +(eg Avro, TFRecord, ...), or as code interfaces. In any case, APIs exposed by +components need to be in a known machine-readable format so we can build further tooling and analysis on top. -Some APIs might be exposed by the system, making them available for any other -Spotify component to consume. Those public APIs must be documented and humanly -discoverable in Backstage. +APIs have a visibility: they are either public (making them available for any +other component to consume), restricted (only available to a whitelisted set of +consumers), or private (only available within their system). As public APIs are +going to be the primary way interaction between components, Backstage supports +documenting, indexing and searching all APIs so we can browse them as +developers. ### Resource -Resources are the infrastructure a system needs to operate, like BigTable -databases, Pub/Sub topics, S3 buckets or CDNs. Modelling them together with -components and systems will better allow us to visualize resource footprint, and -create tooling around them. +Resources are the infrastructure a component needs to operate at runtime, like +BigTable databases, Pub/Sub topics, S3 buckets or CDNs. Modelling them together +with components and systems will better allow us to visualize resource +footprint, and create tooling around them. + +## Ecosystem Modeling + +A large catalogue of components, APIs and resources can be highly granular +and hard to understand as a whole. It might thus be convenient to further +categorize these entities using the following (optional) concepts: +* **Systems** are a collection of entities that cooperate to perform some + function +* **Domains** relate entities and systems to part of the business + +### System + +With increasing complexity in software, systems form an important abstraction +level to help us reason about software ecosystems. Systems are a useful concept +in that they allow us to ignore the implementation details of a certain +functionality for consumers, while allowing the owning team to make changes as +they see fit (leading to low coupling). + +A system, in this sense, is a collection of resources and components that +exposes one or several public APIs. The main benefit of modelling a system is +that it hides its resources and private APIs between the components for any +consumers. This means that as the owner, you can evolve the implementation, in +terms of components and resources, without your consumers being able to notice. +Typically, a system will consist of at most a handful of components (see +Domain for a grouping of systems). + +For example, a playlist management system might encapsulate a backend service +to update playlists, a backend service to query them, and a database to store +them. It could expose an RPC API, a daily snapshots dataset, and an event +stream of playlist updates. + +### Domain +While systems are the basic level of encapsulation for related entities, it is +often useful to group a collection of systems that share terminology, domain +models, metrics, KPIs, business purpose, or documentation, i.e. they form a +bounded context. + +For example, it would make sense if the different systems in the “Payments†+domain would come with some documentation on how to accept payments for a new +product or use-case, share the same entity types in their APIs, and integrate +well with each other. Other domains could be “Content Ingestionâ€, “Ads†or +“Searchâ€. ## Current status From b5ada28f261f0de18a07aa6821d9749dcb441573 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Mon, 24 Aug 2020 15:52:44 +0200 Subject: [PATCH 161/656] Added techdocs-ref to backstage entity --- catalog-info.yaml | 1 + plugins/github-actions/scripts/sample.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/catalog-info.yaml b/catalog-info.yaml index 86b67f95cd..4221ee6dc6 100644 --- a/catalog-info.yaml +++ b/catalog-info.yaml @@ -7,6 +7,7 @@ metadata: annotations: github.com/project-slug: spotify/backstage backstage.io/github-actions-id: spotify/backstage + backstage.io/techdocs-ref: github:https://github.com/spotify/backstage.git spec: type: library owner: Spotify diff --git a/plugins/github-actions/scripts/sample.yaml b/plugins/github-actions/scripts/sample.yaml index d582bf9c35..7d9de50463 100644 --- a/plugins/github-actions/scripts/sample.yaml +++ b/plugins/github-actions/scripts/sample.yaml @@ -5,6 +5,7 @@ metadata: description: backstage.io annotations: github.com/project-slug: 'spotify/backstage' + backstage.io/techdocs-ref: github:https://github.com/spotify/backstage.git spec: type: website lifecycle: production From 889e1fd4bb929228aedb04f9bf34768acbf87145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Mon, 24 Aug 2020 16:37:51 +0200 Subject: [PATCH 162/656] Docs: strategies for adopting Backstage (#2092) * Adopting guidelines * More updates * Tactics * Add metrics * Add MTTR --- docs/README.md | 1 + docs/assets/pop.png | Bin 0 -> 103686 bytes docs/overview/adopting.md | 144 ++++++++++++++++++++++++++++++++++++++ docs/plugins/index.md | 2 +- microsite/i18n/en.json | 5 +- microsite/sidebars.json | 3 +- mkdocs.yml | 1 + 7 files changed, 153 insertions(+), 3 deletions(-) create mode 100644 docs/assets/pop.png create mode 100644 docs/overview/adopting.md diff --git a/docs/README.md b/docs/README.md index b9e79a9e0a..55e178b691 100644 --- a/docs/README.md +++ b/docs/README.md @@ -12,6 +12,7 @@ better yet, a pull request. - [Architecture and terminology](overview/architecture-terminology.md) - [Roadmap](overview/roadmap.md) - [Vision](overview/vision.md) + - [Strategies for adopting](overview/adopting.md) - Getting started - [Running Backstage locally](getting-started/index.md) - [Installation](getting-started/installation.md) diff --git a/docs/assets/pop.png b/docs/assets/pop.png new file mode 100644 index 0000000000000000000000000000000000000000..441126f33c08cda5006dcfd913f76b027904bbd5 GIT binary patch literal 103686 zcmagF1z42Z+CL0KN+Xie-AKdG(v5V3(%s!6C@n1wlG5EUU=Y&Xp>#J$&3q60J^O6; z+53NeUKcRV%zD;ZcgOFJP*ah`L?c0igM-7Amy=S5gG0=Og99a@A_MP8R8U93!J%#1 zNJ^^7OG;9zxjI?e*jvEC$wefmqG)Q&5rmI)>`>()J&%9vi&uaruCNWCWGqcbOZABE z%@fW2@2jZMjLg)!GUifJ-D9}#YbXg=-{pcX;c@XjNLk-Sem7jjwcM<@TJ{y%Tlb%v zv&!i>0$WwUK;kN|BBY3`x!}^Ce-hvteM^w@UhazsytlZtXk}OYx0H88KYrxF)$Cj! zUFM;Pxq9e8>6Ubw*gjYAk|2+ofoRKMD5 zR;3!f5vrk9L-0|MVG9h@vJ!Bu@^pnR;H<0SIf%r_a zSWpY6D`_j9E5A66fM(nY(#ze=-)!z^9zXIg;84yUVF&Op-E$cAjMvRf>rCzMBV zJpZ}nEB}qa8dh~>w1ITCLAt{z*w8CYu}4snIhGAMLvN0JVwHT*cW`p|=hm1Bv6`AZ!6O)x^UIEK17 zK_8sDI6|N}9Ig19yI1h*0`e`2g?K~PmJultNWz^-J>rg(sXb3>9V{pI9S$7eKQxbM z$gY!loMu0tEaUFnCxA0V$6;{l>E!~gu4}+CQds)SI29j$-%)8)%H-aVRP}!ehsy}h zn~QWFjQb2_x{F)@!D|)sPU0D=Bv>9U3hwC+1Ky7LBVG9E*Zyj#e4z)qr29y>-4f1- zqzEyqPXtidL+o<#+(U13u`yn!niBcLnc*P*pyZMYsizF+L#%zhPX%6obS;^uMwRW=t9P&LcKn?Sp+x;;Z#VDjTw@poq2eBhe^b6w$#Io+zY9?WnqAwT% zh_T^>pM?dU4u_qsDmxP!KB5SJy6Se!+x+w})Z{Y_W3amTix_qx9~=@pi#iYfc6R?g55*t)DKk-T48O+%|6&GPKK z+T(iiH=Ak-k_AUqg`n2Z|z2b@LJmxx#|iSs_FNn6t|Qer&rdB-fp{Sk#T{ez65A}h@_ zF2`dEoE0WUMk3~BW+_J0C)12cOr%=P<)c-{5d{jhwATpb#%A+*8kEmFP1P zI{G8bnSAhC!u_-F-rc>3|7e}xr@78psa>vSuh#zQmwrU9`Nywn`UOd4nx*cBJK^Ij z7O!hR)mCvS`XsxCoyu<*Z{XrbMrJ8|P$*J}|4x<6!aSnoQd(3BEhU{2p1LpH(n4Wm zjKuwx`njmQSn~zDI`UMtt);C}15d;A1{zy3+b_GNyRo}9yNXjRld5G`FJ5SBFej!< zuoaQ#U#f}OZQDNMX(oBfyUXKf8*Mv0em=c!OJF^1=V=!>{n6&yuF%e5%y!bZBxbsC zGIrGXV~6bR$ICK3+qy-o8Y}!kFyCG_R=L?Hyiaw8RuGl8;dhnUj=7a`Ud4w#OFF)q zB2FDV9S*)$=i%o}H`zC!dxsmV3zN}F8w`EqifGReKKooV9CJ$US*y{P&n&GiiOiaZ ztCx@SaL3*`CfU{xl}uUB>aKWapP;Sjuldm<;c@%_egPc|vAl%QD?k zsm`!YzYb;7+>PVR{!HO)fj}3%Rl4G?0A2Ilio|8FKCUfjgNH?8h6uU(hk4| z0&T9IRlNP_FSE>y?3SD)8y+?2Sxs1<`Np1Peiby>tOs;^&phL$fra0S$`t#oW0q0f zl7XM1Ut>Vny#q?EWbhZ;xAbrMW3^)qdqrZsG8t9QGWi4=zyThfE(Ag|g4iuYZM1Fs zt~-TgV_$Zp&j%`rbSP$~DvJ%pS_IqVmttG)e>fgw9|rc_UmMo7EVgL5p$KD$=#t+G z-w4}e_h*awUiuJw*R(Ttko!ILacjr+7Bka*Hcs@GxGKOt;HxNuzf8cAzs^nLue>|Z zJ=z`kPV3(6Zs48*i3s@^WQ!1vkOfLbX+(Va`uXcd#0xHuGoZ|**&_BIM5>UK)HM56=j*dJ7{7i9wAkdFM@HL)b!H z%NF^#L10&H@~w5w_RsBG&P~qR57WAZvjwy1vtt5~=7i?XUxFtrYgKgC45*LOAG<`< zM4&vDCHTcL+iCi&pNUEAlU3f_=R))<)^X#cn(gyfh2P4*^(J!myY#188_AIdFVZ$@1V_t%Tn6z7~m--46^(Ji0j#?$a$#&_yamXNAk!()0jMhB;P zYhPVoj~j0pLzw`2QEtJr0yV7eX-^dHwTl z8T0VzWndiC_&A_f=534+e;~{16GOIoHdeMf^{?!$H=#?|7Glv(3QLnO_6^&uxIOEf z-9`wi*iaNT6t794~Oc!nsqMA&YJXn|7LYpNU^Q&0v%WaBJhKGb8NoNCX zEdI>9UOW5q&35kmR#!tJ%YM6;yN7Ixx7V`WabA~5hjt}A6|75fOF4Bg8!daS1=aH$ zTP$k|M&aWIecdImXQ!)SB&q4?lHj+Ic0cs>4n}_ze94l%i{+Wpn>i>eo+czmlC_XE zxy!tB8>xA3R?)lDyBElLZ87ucd&Fzxl9zg4oM|96RZMxG_RNp_r!B8G@gVbe`T^fp zHNV+hOnkF?XLULpoiijNG)`^n;}PrSnCs!PcYk)W0l$FjJ8eBtd<>*vqd(DL8>FS zlgVE8%F-0xgj+HHr=}yUt>LpaVy~6Offjzxpdp08(ARIjV=GeZ2$$Xs{cO4s-RhjU z54=B!%O_uN4@Y+rpq{ zc1DC{!Vo`G(pbg0ShfIxueOD*yrr@-95e756%PKb4ICoy3Lf|&0e;}%5E8=SP=LRW zfgh<{(4U_oX67RN`5Kh;@I?s?NqKqTuZEecg@vP=wUc`cPfR25s2LkgU3Xn&C9s*3 z1N%#Jr&kv2-VV+WOW=gP!N5xg3-_0l-VXMTZeVW_>OZ~#23|kB%|T81$5-6#M5uL@ z)hH#MTrDX1*q^aKqZUP@q@)yfHMaz-OUe9aIq*LbYHN3QXD|ncmzNj27dN|;s}%>Q zpr9bfGcFD;E;isBY;Hb|?k~OB9NlRC?;(FaN6Ny@%+> z_e}VY@BibIzjpj>rS4xVIXMOXw)D4;{&%UCn}w^SlLN4)yXar6`Om(;fB2t;!W<7* z|BV#?N9RA@1qdyQCd~0)rir2jh&7?Y!HL7kOG#*Y!|yLWY9I1|{yO1rHB#iKe$}d+ z6iIv+XcG=iv>boJ{eg?-jQa`A!23dj#(^mw?&eE5De6y2&*e1r>u1M5=YGVG4=_3W zW&~ZiYPwE$i>q7qOF25d5hm}w$~?Nc78YCa%RCd!Db$QnrsWt{uv3fJTgSBb@_@^C zT~6=hazPpggq&F}QmR!(PkevVPgY@|xHDc@F~y4eFQ*k|bv|8}_xX9!yOCC$lfrE^ zoXLR8wQ7D~R3(8x{3`nB95Q3#RPid}pSx17a)!Kq4bp43j#nb$SHap}p{PH{Man$i zRxebLAJDE??}kSx@QopnQ0+thw<}*gve$(e*S^J09eTHm;bElVkETvxjHZd}A|` zrSd&AEzQ-h&T^VL<$tB(K}h)U`UVCPTSmk<9%Ru>Hm--&%jJ=PUW=XoT1*M&7#Cd!%g-JtZzTSZ)fWljxS*Mcp4CMU$UsxN`ht%k_ zKyM}!n}mPVj(08b;*j_XxN%N>6h}&Shp+rwzr*;Xq$hT~|Hh&aMAS?Hm*+*wY1AXb z*=$xL*)eG1Db7(#?r4m;N%7W8knU#@2gx55l6EkMfTu>*H% zv|*7Ic;$$y*QggBw^(5R+pViXewX|4vOUr9g;kx*VPRn}ui`GSyi$`Q2njg9`Z5fKIrazCY53L#5Hlm(Pb)&{W0 z-uKl!$&J()61{)b#O%kq*U(!oW+8*l`^~2YsSBL&42m`Xe@3=z3bfGVkT@ojyR(GP zLi$3b7b#PdmzP%yyyREqel#ZeJ(c4K)tc*HY@HN~^Utr3(!dsx!u)=XnIe9C^IsAh zAv6doDcTLTQ?&UeVlDX|c1%XC^$qF&BA2Vyf0)W<(-0;9bzDL3)!?=7KevMu3;!^) znaOlB{Px!WYGnn~S0_|O4!%xereiZ`NI*fsc)!bQE7177 zPv9Tw;H_aga=645I7p<|=>F*m0Rfn#n->rXg6}CT3`VUUiR?ygk)jM#|1@=;1bst8 z$;Fm~?};ah6&+P#v+77(mJJC39W-8J5Q`6#u`6C_vS%uco>ry(rz&(gf~q(S=+~mP zmBsewEt<-c8O16AsrbXj3U+FA++6&tEQS=I*BWKnw!`_8VaNSUn1ES1gAZ>%i89}K1cyF9w! z{#xz0GI#fE^uIl5auI}(sqXd%Cu-rwIJLjvs;gaZ1$&hLoAQNxK()U;6yhE|Uv4|< zS@%}~M-(Hd=)bV|o)pjLu%NJlLjL}HGKLV|g`G?k5q3=U~pb(3Bmbd?(Q2J)A8D2jU$jTRhMZ_LWR!XAmEEUIT zmTT_Zk?DrQfn4weES2zlYsRK{6AGMm8C0{AqS#v*R}YI-vJ$E~Z^;rz0@a{DwoET@Or|-(6qd5e@ zb1YW12T2D~`2GldXBa9%gF8CH{gmGkqqQt>xaDTIY{Ws#_q@b@q48kR4#vQ1JNe#r zs`R>QlNW^gRgIFLLDq8k0~L3Uzxui0rxG~$;*aF;COd?g#sRkqZI=f_5 z7;Az9t<(9PvRU@e~Gq2zkw@9*0<6Gb~96JGf@=Wmdb84k5P@dxE+#gH&dAm zyq5<5`6!xL#1(YcE3&eU2U}QyP9u;!89M|Sx10FD&;oUQPXbXZyHkFmW(vB=u($2k z=Dyvviq$a*xLCZDjv|l;qMMP9%b?TaFW8DQGT|^=W13)b3`8FByVesj^TiLGA1gBC zLXg-|+tV95L9(%=@wl*?)OKtC>!Al9MeKA5sOY8V0Xo=yy;Yl zIMr=%S7l3fj5XJ5fpX>iI+B1?C9oZT+saYAtbTbKagxu+R1eU8R8+b#(7~T-_hts7 zFk#@ti$VaYwH%^e@CktfeZw0S|ME2gj|Th;a9QKs+qJ2Ro!y_hixazNfMH#I8>mNAT3qPd#))s1eh#x5nn_R6HNv)E5x6yUH2qbtB9G|S5=6VZjT<0 zWC6N?!Q4iKX*3vAQ`UOp+REKe*i?3YWiNMF&9IB8j$|@H_K&KBVXBTbq{&t zZB|e4o?&hQ8;OUn9cHYdi+GstO<7a8#9Ja=D-0JHoca| z24Xm5k1BM5Lvjo+#kk174)75@64$0&l?WM$Atv{qfZYbcMy@R4x4`TPPBT-04;dH< zf}T;|Car%viZ-o5Zl{(%g1|br2i?JH-X-<6Q_Omhz<^P4?Gm$&YKMhJhmRp&P38CA zm})#Dn`Y1tzU3YJdD%&R722`)cJU!%7(?5>ihl4NvN00f4TN}1e4ywbPoDNtTa9t3 zO~h0_XNxAli!u&O!`+YCJ_dzQAi3Wa8MS%h{}`nlPvf>4d<)}1GiY*Tt982Aof!o!qdiP-0K89vBIWD!zWrI4r_bQq|6_#04xpe_y3P7ZV){y3aN~;MRCvUM4LUa{+ zP}UbuJekrl&o%G+E6(cE(qMo_BE9l3@Vv<~oe{4(z~dA6451_9pt2tK_fibxz|I-m zN=RQThr~p-HEy?QyNrBxfk(PLSYVKhKJ+-4Z%n?(2_$i*(57D13RzrSJd3PcBQx@x zv)EkA_B&*%T?*3XaUioeC>tow32g0yMtE~}|3Z?gB4h5z_!_u^f<^j1OUUbcp5)u- zjkIXVFmK1RDh-&Ok!wF4v`pbnzv@$nO4c-Ayu^1k;u(`k9#saFOw|WgVH;2Q zDN}ow#7$Wkg`0Y$)jj=MU`$xY@|J$wP4$2Xg?x)Q3~a)beRXxM6J?KiWFiLM@vG>J z+l#ZIlLxmQ04~D)Ft6_NrYN1)?xr(Ik)z{$vC}s*sO*PbWlK>Xv|Su7NK!d=3Y{g|1nu zDIa*2vC;=T_DTIS@TNw4VjyRRnUZ0ygaDb9g4p@)I4rbyQ%B5yy23!mvF(7bO#X9#J)F{EYT`j^a#3RC3c&ZCbn_`HFLdooYC@>=Eux0B!0X{MCQ8VDG zqwFVYg6WmhX#q#b8{m=o?EYho{Tx@zNzc=vfQuPhOaf$u8*ZU9fXaGqp^cR!2OWjIKKJ*EE9mDP+Aya{2**84`)KX+=jVx9 zu&R!`(}4{JvFnJt^J1}NG1&Ep`r;!g(c69QveH3|k~~EB#WXS@&nI&xD|Payl+K;v zl_v=6gA6%IY223YL>a!R<~~%e?oXCD17}tTML~boR|wY-+JMl1RSW)}`T$0^IP<*s z=piH-uJFB_vnq62>D)5D6(bf4^dIH?Aj+5Czni<7r(UuqNme}Z3U-zQ!)T4-vzmeL z4M_CtU#Pc9JSue?;YIye;Y2M@Vmh7%1#atQ?97y~Hb8tN5d?5-9eR62cpps4=&?Wh zB864&v9*Tgp6|sjoko#T#O?=ip*@lO3u0!QV~hEEo6}jdxU{J0 z$Xy|#L*I17p52jQc4WaPD;Eh91Z!lxlvW#umG)UJSTevUKK3Fnhj~+8z`}5WOBK zH+k={!87iscy)Dpn~J=7-f?--OOeWJH?8ZB%W(mFlC@ose6r?NaFhX7nZ@K^R4cIf zX;;*T)LeTFoDp%LUwNfq1`2O=Q~bl6cR=C_RA=LGc>{6ZfsWQX=h zSLWhQGWAr=v&C>sD8_KOOjl7!d;SD`rGSihZvt9!eR4d^TQl!6&OD=$dK@miF>@@1 z7s{4KE%^2@zaoIgw5Yqol+A`(B-QBBpu@L8Q0^8eF6CqK*%0#_kC*Fl@66R%)fk29 zZF7vwf0PPUsPR1-864y>V3&SuKkgp@yT7swxb?gs<+V+^JBbU5W}Ge98ck6p;hCVU zoI+EWVW6IC3B-E=Rht=&z&{tE8aGYMRt#Mr>4TgN3rQo8MaZ=WA?Y-p-5+dRaU9SW zA9>ABK?J(#D^B7>Z~8FC_k5_Y4JIJU4#}k<>?}+EXG0R9%JY#rRy`NW2q;*zv+L-e z-A2&;9qWnOdw<<6!a`6``RI-vDOZ!k?N=0Sg2v!`P%hhGr-XB)1%;tUP+?g(ct14Y zIs8=IMN3-j&6J)UsaHoUPRMNMI>WkjWbchK?qpA?1hi+OdwqC*6(O{gy^v4zOdU1( zXvP~pw%p-2B(B{Y5}x1RgdCae{WHQEi}PxVLv{YAQro`uUfEc_EFlZrxjullL=k6vu?v)1l*i+!U6-@qGvv7$ljrl ziXE8(?jAQJR0jPR^0Z>cL+x1gOMSu>s{HdP`7Wls#Vr&2dxjjjwzk6rRx{_5`<@^Y zASicE=>kkFF4q@upbF~*Ajk{`jrI{6Ohaw~ui6Q1%J7SeQe%iEE+m^`!=98C7+vuM zYmG~o@`}w5NkHnqG4JRqk}xtmj&sWL^!*x@#KymRvguN1HIm}7H=Vpq8c%9}brVy7 zak6Oj^&ReG_FrU&H~Mk&-}tg4uBy6PJt2^eJ7{4=cnZmq)2lT1%X#>o50xPaP>P}@ z!+;=xF?JV{MQk4O#Ky=8(?Taj+k?w;qwi+dW;(g;wOH_N=-Vq3KzXb%Y|J&FlXJP$ zDN3SkYf1S!YH8%qQC;3y?|jq5+FwuK5#w-fX}f1^?AJ!9jS`;WBSWl^SE$wlxn9dY z4D0bXEN0~iflOoArFjWhSQQmI=b<*3X0JgGHMwi2+b*gi7fIG$DW>vQV_%7*a3?FhyMZxG!$B$ptc;}y1bZv*8! ziPs#RjQ24vf{y$jYXD)YE)MpT9k)E`RGvlH(6kbb(gLCm?LLhiZ|p<{RrXp{AYdEp zp7XFzg%BBed#LRL(G>NqE{8iQ!@=o>P)x1o!l~*_H(0l&s{K@9jJOs=M>aUi&!%55 z2lhJLZ!7I{bHI#$sigIk-Nx&!sY!E%na8mk*%O0M)EhbpAoLj3Rtk+KC;~UWs4g%` z^2jXv8Tcs9qq<)#heUTWWY~j%Hj7vuGPtwv^(7oLsx(Sd$c%5QEt;SSoZAfLstl3N z+EEI1=mtfn6OzH1KtAkXygrfZFExSP3TR*12}k>ne5zn>*o%P<*^O!^#-0^%WAEOE zV(C&a?=+jvXK9Ak)hGexY+7mho=kv$tLozPcIJVy?~elJYeykkxzPI^rD_sNb)kc4 zg8h4qplDPA=W+OZgL>NZE>4V~~}a6ifHsKiIJ_;Y<0ok|Q}<}5mgOx$X$ zc>$gcb`c!wNN}T zQ_e{p=IbN8J@ZVr#x8u1>~usNYzncnS`-X&tjo&eI(2_#8-$|GS13a=b>$IcZki7o z7Y1`Bt5X(vZt0pA{-Aq}^Ow;`l7foQ6OuiUTU|#3IFZJ;r>-puGU*Db=^V3nS62RYsCL8Q#-bLk`e9gb- zB0uSmA@e9TbLfA}X!A_Gt#C)O_+ ziTnBXm|BKIlf&Jw6RNX zsBGOWEm5gpQ>!lvbE@vYLYyyr9*X<}nPA4RS8R6OFB@0~ z%*@n=NUJ@*d%mJ^Av(S4R$Z`UQ5VCGeADeeoGIAt$&IjEgCPJ=^25B%RnyEevDWyH@hIF*$Zkj^s ziK9)VS8^VT9^flv_iRKJz|UakMA@YnQF0E=dD0Z++#Jt0C`~#!{g;d|>s6yau z_9|t`eZB@ww9M3G28@6|P3+Em_o__+qxzSaCOUQ2`<2C>JuWYcYb2Qr+4!<#(z%6k zk$F{h=8@?c_TS*@rXDkY9zNL;k`H4V_cWP3?}9C4p4 zXvPDi=O4!ues=c8n9%e_liDEXAd}RQEsfXPJa+q1h$~K+6dWiqv#Qo?A}X2nB`71i ztYB-Q#jRM7J`UEBbpu`$pPGNop6(LnF3fbGU$nM^qyYA450tnf(-avE44Jl>L3Pl3 zTxObREZMt;mP-AI$Qr%anQ77Iby}E^Q^|o!>5AHh+*iI129Mfcxx~h5JIiRi>u^pz z`RalSuKGPI*2hOCTP)xm=;iKhYNPKIduew9vPFZzSw+*bt>?gWihNCW8sBV#UR-c0 zQsA@jCL+7R$=h(wF{FMdsPG_1+I5>Hm*!x_3gi94(g*ytr)JJ3Kp|^ZQC#f9p10V1 z^fK1YYIo=+h6fnOS%XH6tkfWh?DVNJxpsv= z=OL|Q_*;h4oZw51X3Y-Yi}!8TIu0v`q}`q>J*kWgQ%=vCq$*}Ok3h<4xvGE;mh*CPVi*t+n@(bl2srtS9E&-7~4m>{j{A^er*jckF!~mFHivXfmrrRXeY} z+|E7u(bJ8VR4mtai3H{w1v`vAuAGV|C#+PIqum-kdvb-IL2j_PUU0+aNNfg3nO+oM zSlf)({w(eRQ&fZ4kx9s$H%tL~o2tT?$7UhvVRcm{a$sDJZ5Lgy(6i-sUnASbZ&&uY zzMcmr=^X&h$w#S!m(rSG!Kv&i|QlDHh&eh1}!^%Zrl-KVacm;RJV zWgLkVEsb4=YJ!9GT@b6G`CPAh>~Qe)?GCkT68 z?X%U8#+e2@^xd)=4MT^GRcvtq&&e@v8hIr6Ip7iFFd-kA>~4Z0`$-4J2n~+2!o7@I zQuEPc8%5rgXlpOU0}$zc04+H@!!iVFfS}R>>3~8#fb{u$nalv%0X6?Pk)p>+X8^3? zD`U=%t{1qj1Z%b`@mW2uWgb0Mu()YRC<<1e)Edwj<$MP5G@=vK2@Xzl+dFK}403QU z-myHVaTDj{E>V+`zhcr>ByS& zL>j%VR6B$rrcC_&{If;x_uQgS;GY+&&0u(D##Tv28dD}UWbN|bBz%Lu`&sWiDXvk1 zebNnj@oh-t$V7T0(>3S}N@r<$31lH<#FV~0+j_ZdQ94z|Y!Bh0{wG{Ob`HSDU z#SI$a$R(WP@L*`r<>LO_Lkmg=8~sPj{9R2FVy2<)0?V?Gtb24Z7MYNOs@XKjO;lTT z0#gD5k~=}E+-qg9<(pWMJTuH4$|8^5$@rU#y^K&vy8*@~+Jo=EfVKxRYiuCyC`a@B zW481sj*FCJ=0fvNhLn89vKNMKg$e@?)KFG}U;&eJqmB-F$ULzgWx~slNbPuyL#GFJ zIL+H?BS_zjQZTr`3iXN}S!|tj^vVM@!$bz+MtE||)+8$oThz~C_JHMj*WUIj456yzR!q>GZ7!0FvcR-PD-vdiy!;T$q9ZiVKh#EJj} z?pY=Xiz{0h0yfGmt{dx(3y$0r=|@0ie&8)dpfz%i`(Tlr<(ny3{^m%I6LNN@rsrv- zcsbHTqnp?wI<*LsUhWW&@t~9X1+__tWKV7@HULL*h^geEs4&=Si`YV?T%`<=mN^#C zB;m9FFqqD(xI0xw$ThoOq_~{nWD_*(y6p%mV06`w3`I*V4`h3S%we z-)T15>s^Q7nMa?j^q1c2SYe@+%xN zL}nIm6!=&C>om)>*(TX>o!0JIp5b44nG&{@ckGsyJ-3wZwTq!@TDz& zNr6bpQEj)S(*I2V?*8Ji&7y4VW9B*;JV<5v)83gvtJ8`oF_-oGdb7bh(p9MXj zM|X+yP{)-Pt4CIxSEouKh)PRK`it6gT;HvZGuz?ODqsJydYh-iBi`yZ=!Y7!-q`B7N%*gl_uF}i{_k;|>w<^3 z1^TTepl?@T#wieJYetm9+-p=EXEe}S;Z#NpJo=I2j0!S|$>Qby@L()<$rJTn{;|Q{`VbBB$1~d<9f`ukL>7^? zwJpUU=Azy9(=_EyK)wvMdX{C%#GRS2`BFmU&B~Q$A0Xu6Tt5&OBf)y?@TMVx*srG#4wovwP{mq zc+BNDB;GnG7}F3FGB;`w5hM4WOrX~kft>M>!nriH<;%u}vsEL%?|ep2jhZ~1Ey4oc zs7rqC!Bl<8bf_L=GkqwPhkUnOXB8*K-4o+v+!IIPggoRwb0X{li0t|F5zuGdrkU3) zQX)=!<+Y z&Nk&C0MIdvQ`w^Ako#odkre=XFo7rY)(n!zoC3+C>`!mr(#Zo|@<)EZfCkMI*Y^Bs zhIc1e^PrtHtL*rNm^l^yP{W$$=)fP_rh~`w3fXWMPnV5D2f?2DwD4xPWohMyT)3#P^3vXn-U z2F?9NbF(}IaWF^B1V}Ko7B!p=NfAp{MoW~_c{tl(QbKK+&EO9=GQ z&R2~|wxo0by5g<_Y)w+`q(Tn{5c42l!J#Q)8FIDg7Pq|; zSW;jTco854i)|P%pazn`yyO;$*lK^4-p6H z7`lX=^LKVFJ0j)+$?|*Qkf99zDACUQOM|g)MX#quFB?7uCNpadhJ11AytaIRTfF$_ z$Tyax(i=AxoV+QCqBk}7i3i7H&LXvcBh`fcCQoQg9$}Nje>^w?Yu)#FRpKn~y7hcq zap*19Wog~4^a2;{n8gp@Ep+d~z>!QrGbmXW$MG5oCiPzG%asDN)*UdJnu%4du>1CV zAIRQ{+5OE$Vc1EOdx_0TzzBZa7SPDix%hrhX8bwOZ=YNL-f5|Iij>G7K*DUL%##@e zy&oI-elxoDQ04|`G+%|YjtZ2NNx4P$l=*sYv+M>xm(+14;Gi;ycQIw+EQF%*@D&M- z0BD%K-N{F-*iZk13eGhLeS0L3ydOylulZnKysOnf%4sEMF7>0oW8J&-KmdCBboTG2s4jx zoL!BQ=c~kJqX|@Kpcfq1YZOq*GVRKG6Xbr}zrpZ;1`Gh1?~C4KurerOnN|1>+7epol4RFou2$?+i|dbndtXZ zW!fz@-bwvMKsCx&p7RDX6=+AZd@IWQ8zsaSk=#MW{c$4nZd-#d zm6n?A+~9+NKn+UWt`aGp)#^dV&7w%c>zJ9e=l0@nXwNP-5cuVUqTAMYGdzaK*iVYj z0U#z~Wgy7Unr(*lww zF=|Nf8ZtSlx#ND+G2S7I&1BN)zm8JN@OQeu2zkI*%*NAf3~daEFpJk5&;w%U$oo8S z_z@7KDs$ajBns&_rHmJ*shyBwsQ!&sAu!ZTu!q6}{=Y8AR{_BB#Gr#3aVb~LGfF9G zx)FDIttmrePO>VUW}nTnmjeyN-!3go_ovuCTI=Ztx`QHGo@jd*0J(-s7)G{gH9x73 z|B0M1&JW)b0VY*`TYrT1AhHi&>maAuRUmHj7%Lq2SJVMTYy%ywvrd1XK?p`cTn;=_ zCg!$H@`sqcMNv@1T>`k&uiUURR=bVi=|#dlw-fED1x&mGX8t!82Tve%-kd5vOgxn9 zbiGU@WkAtT@@#awx&-If0HI4e0wAQ@?~Co?f(to04S!^cZ#llW-7A=?VTNdlVzOacU?U}Fatmw@r)91j$Z@i4~|JL3k=5GHKB&RQ3>Cx9U6QV zEwpBAmcLovkOWj~MS6#^0=A6$FuX_bRX`?ms-UbfoC`{hHr1%=3@9|Zz5FP_2$WcU z6ALwUc(M%nUhDCiboW8}#~@=oKqMMSirXcSY)#x^=7tW7=#^g|e);>j5M^fYFu1sG zWQWzA7O@?0PyJ=Qsx5$h>A28#Gd*Fko5uLd!Tv|rfUtultepIyV-GV%{@14^zi}cM&};y2 z#`Iti=ISi_0YILx+N;QS;{8D7IC(HGUxZby!B)#BHz?@O!G^bVjNsp{d5Hf29@imY zOL(w@(EHmZ12u(k@n|Gefp0`f6F#cB#-YeuvqUR9H{qBaI^GJ=e-SA-3JKcrGSnRV zDSZZ?qq_?e6A9=9u)j|zbcT01L;h!ejGRT}oAh5cw95ztMC7~%JZyUHy1@9?l9qr% zsQ7E(+;phv1KyIk_ARdCg$DdP;|*ooZhsR%0om2_oe8enPsQdp^){}%lT2IYnVHn4 zl7I>3D}PeE?ho&Z2A+P4kx>H5Cg1z-N7cbNvoDS%tvB&U-GoSRChOK&Ia6P|kV9iie@$ z7Z}8mkAHHrl2=ytQ0eJs`i)EMk4IO>7X{tSPYdK-&$nL?CP#myH01#9ds&L@x&|Kt zOeF5)q%jSp^IwVEFj4=u^b%LM!!|jZt92yceoE)E|B0YPSK))t(64zi00jX;oYD<| zc0D|HXT|E)0W9r*l?VlWf40*|<|)GKD(_ndl+@SdG^?x+4ziTPb&o5A%i_CSMx#UF z5dyZ{#`k0+ZEz$2^Z!$U#9fgd1XEQQ+AMr_KH<7Kn6_>iUPiOZ2|R(k%sJ9d^?wbj z6@5Scf7io-uy7wF^IH@_{~MRJ^)Bc=RzL5Y6d*Q0TB((j)bj(xYd4huRNx2LlrzBX zwB{6lojqh7^|zr!dIkhTe0W49VCO|tRAAl$Fi*5VECdWUEQGhvDE@h7;PkVqra<`l z$E;1Oc?2+PGtUvajtU8sN26(4#4j3mjiC(z9}SUCc3!(HcurELVAD` zKftjkij@;HGcys5(-eVD0VA+?p8ITgFeW0ib~$6m5yWJ^!HI+94fXHAJOCIQSn-zZ zA*mYy5K{_nw9Jga#Vw6O^!td=DqYBzx7Y&@D0e7OQw2maHBvP zLro(6FH5_${+RmW>gRjilLG%7$JQwVhawy`b06^0_G@KRw zV(EWIzS^Dhl!(NPf$7+z?b`P~h&VV@t6zbLL=mY}yMh_}|D)@x!?Nm@x8;#Wx+El| zTe?$18fhe@ySqz4KtMpcQ>43;kdRIRLAo17LILGl8{_qNuIu~n;Cr6E_MSCs;+~m% z9UroJ)Y`KE0LtBpfq~%9rv?U+zynmYIEqw6kH=wl?dggN@QL?;wQ(Y$SaJ^XMkfZH z^1em8Bs{KOvJ7PZ{cZvtnsteZBBGKv^wR+5F(c9MDDno368!c_`(s>~JvP0@>x5d% z8P#)iQu;}o503Ix^#8>pf%id?)WvLSFok3F867np-TRyZiccV3mjf1y{!TsR5=T(= zdcSOv{d~Usbb0Q`zeyGKqowE52JudLG6UuMEjWHwjugZ#i@Bab5Xczx+Mf7QB2b&>|DHvgT1Mr{f< zHs#EK1O5~M6FXmiWG75Y$OQ+F0;pDyx^`F~5&|PMK=xm}iiAMV@mJttrSO`qSFKU~ z!-)=U-)S|A)`S4Ka}WF&qvT$7q}UsT@rj875Uql2NN6Ex>g;z*YmROxs}51*SxkdBFQcNhYMg0{?qdl zAl^U*vG!*qaB%PuH2*h@Wt`&YL;lY&5dAx(xE^&Y9*ns?Xa?9pz7`yjSo;hNpGh-e z;cSr&4DAx4OZ<~m%~4gZN3v1-e7yJlTVBkZ8ogXF&~p&LBw(4d1_xeTN3+lrTy4vp z|I#?{#Q!^^xH$8K@(iG3ctBfZA8+O&H)>^Xmo@YU4k~~y)_)GxFwXxBC%R~E^sxY^ z0}f?;+3S!&iY1KyiE8H_(#!n~OB?l;Le3WA$7W`ZKzX(KO+Fqb96S!_Dr3Oz*SiT9 zgQ{MxDs^sd3b|#X#lF0=8{K~f_b$->8&I76<>yJMz}aHgkdnrBEdK``*qf7xb@>wn zfVrdhG2}_bYK6T3fq4N`w7Jw34+$FE0;|q&x1V5tjuorf7%FIEZ&ma5ZVr=EeE2sY z_CdkJ!|NURx;fA#L-yi666P$E%NimaydJbNw}z}Zmg7?~kU6^U%;_|r?J)pu1P|%L zzQ2RFOE^KwqCd4EYJm~ai$NNi+}oi3pasP2UPg5EByix`_!9lN7|8g=j-YSwC<2_H zUuTnA%jgVKwD((;$$DLZd_iU9y{44q9dN2qzymU0nWH`n^h5XuBN%N>p|<#Qtgr2- zv*|_@5y#g)x?dCqL6RT}kW1j27QYdc4J(j)8ArgPE7uluvjAd8I5WBVpL(0ZW+S#w zz%1bJAv^F`v0M;R(>zMw1x88b|7&~4(0spq-@G=U#!=IfU|s`0js}QY=SUBn%wSYY zrXv5Fhz}w)%Ow8~KJX5Wl*>Fljq7nRb26{8E3E(&Fvmg>Pv3{lSzz~7#ooL1bM<(< zc8L0V{n%gb9GN*bDT!`G_-m9xhLBD)xhR<@-4p~Jpg_Qvks~V*=NJlr2n7Bb-YpDs zhrjx<4m)hSD32N*P6VZ~;p?E7Vu=eZt5m{%6d5S%0U(h2IIQmlPDzQnv$Xg4a>3G2mOU8s6{ZUfMS!?M19$DUvDg< z#%uWb81%o&5RV}8{hJ9i&)oX$(uIyN~kblfCusn+Kf| za&i&>Kq2iRu$F*t;yurasGwPDz$QS3m)#4r&=e9()Z((?- z)oCMMxqpy|Q}P#)1|0+z8JE4V0B_CU2&SZGtbo%LQ%rK!EaFw} zYm3PXpaJLmEUF-W0kWzxmI5;yKg>VNhNwW>aGln*E5VR3N$*)?P7rMYx3rhQeFW?& za>4`P5T1SGyA21Qem8r5w>B-~-vG9cfY0Z&ROoDwlf$kbkKg~&v%0491iVR5GT5F7 zeg--K(g=d4nH7P`MvQw((2=-a5TG?++PZ&h&vxc?-lMNkXc|Iua6nwgKsl%f;FUe< z|3O=SO9A?QdpB&+|Due@@*GTj>*>iwJOyuh38IZ>g23YlF{w1k;cutCptPH<$M5kt z+Oreu_$8e1mUd89Hr-k4W4NpnymG62FoU!VQ{B zCxx7~5Vy%wz;DsB267wl0LN;OFwjktd4Z^-5$%J`s2HM!S>FjdNzac*dVjVmoelz9 z2Mqi)dSdP{`M4jt8^HClgBQc11E;_#c)b=VB-u4!5ShqQu-G1?`c@kK3@<9~H`XEc z3?9TMI@QmeQl|orWS12J~6Fg|W{C!~mXrWqz~FBZ455C8q)9Lwi}2z(9!L0za)a1g9203Jvo z4Yt@Az7K47dm2n2BxBe#X{;hky-af`4LRXA(m;sjdojezVcmtS^SuL!m6b*c8j?0< z14?~bn2rrplU}9O*K2#BrU>$ys%mP&^kOf5sitGnwQBa~%O1T;=Z^#SuKe9YVrXSJ zurf~IAPrbq5C*hrT$ED{fKdk-5^AcyK2?u8HYSr33>6j5v4NCLR~87i2c z`^7lJ!I2M2od+!RG|-2E7g~n3xE~}`fn4Kg+R(#OwpRpl2IN35PK(i;!7H%h|BrQ* zmzS;jWpW%d#gvqyg}!&;9vu&+#HFR}zJbM>Ku_%fUu>(#Z;B3xhGm(!WaX>Gtgm6hZ^;XP9#}D@*)M}<+i#T^7Ph= z*=fC1z*dU)OJM1g*Zlxc(^2WUG55My#IE_6hz@E^#^zJU4!M-1Llv#_w#({0*<{}Xs-qxRCru{;j1aq1L+ zr$Sn}5~s=q?a@yltvy2-2y+r*{2zn6r6^W)t<`sNAlK~$CRSn;)9FFeSoGFy_iJf{ zR{#b3cJAyBo|WAN13sS$O0%S&lO%o912D$*J~f~KrlztPKYNgt+A|TaL!V3viFs^N zW&?;>9tI$@B*4BDmzjA`U<~?wu4M^B-J5Gt>v>L01MnECC3nqhO{WIkoodcMnjriX z>*fF0+VCB1_g~R=J33TR`R~8fI`-W=39plvT5B(=OrUCL__ZKE>VYg_h$(yz%6fBtRkr{q34mqq z@AvThdT&yeN~=}rYvLpAwuP~EimzZ30+XOfrMR8}aE~;qWG?UdL?piie#q z&GJ>QcWMC-Dx)fpLTdSl8mQ%hWcCN>=l8)z^VhEQLKT`NwqMn)x)P`@=(@UPOqD(F z3C1)|0goDm2ns~z3eR|P?)*w9heI`2a6T*VmE(?*#ph$zsg?j_x%Ogkt=o5YY$X+3Pp%w{C9o!wj&$otIRYeh9~|_MT*{ zz)Nw4_V(Y$xxoQ0Fbosg7Np-`Zbryai$c5TgS88RQ5TzxI(3Z2%~qj~sf&Zv3n7&o zvJDsI4Vf2gA^R2?i?fT~LpX2^D5S#9lC+|y$%7f3GQj1}YYO#4X2%l%1MwCmnZY1{ zOo9hYMQjkI&F=~tguv-jFOk5b9?v~0l3&~;2)gpV@++Ng4yfFmYI5BsLB9Sk17ah7 zBg<_uhxIBWZX_shMW~jJ+XYQ7>rn4OIJWCAOtDcOEY-3TKMrXR<-Za2n!l}NI|eK$ zSY%3Iu|VX^ugt4q>WQv(wu~;!x;j%=UjOi7ZdTc%znaY3|7ugy!1b-jw2S0X<&hCf znMvt%P-5#YwDm>EzK!P3qqqRH43KfPY6X$&jm`x~5gyI$7AWSi$AXG=fGY@;pXXIb z`vKI)q@5>Kow+;it-V_|{ZpQ)H*fc(3GrEf0s|GHo?}pcetx>{j*FkA3SFk`S0@02 zxx~DABlNY2wazW1D3jyx#B?)k_d4q9G6YuR@_7>s93LZ_YtVbFBx!EGDsN_`b1H?# zr5rn)x-tLB2`2M*kPp3rN|S(sg9g37kjC#urH(i2_wQnLg*6 zpU?4bnZBLMD?6F`Np^9p zzm?r|>)YdlPg;zcuM?I^T=;pBEmgYYTE%IYD)T>;PRX~5(}LM$I9k6g7gbNVednSM zI`BWQmf~BdOc63mv*R6ZjGTFWW2#1i1tA>&OapaYg)D)|H{>@DyB}R!+&>jlCGc1F zZOCVHg+TRz${$Mu-SlK(UE=MiT;ExL=yK@5(b^R2uXDBMuRgP?j92%C;}-V6Z2WGv zxZ`b6=RIBk#=%gOpwV+O-V*8KC|X?h-ATYQc+Z*W(FNxcD%} zv|Pwk(%?51SgAq$eOotHso~Wr)U#z9z9Xh`eatuE(BNpc+G$_R??Ty1RtCM2?C*Vn z_Gm82hRDNb;%E`tH;q4B^-l#=1E_ky8M~M0{15|@WY9+du0&+eSU|pA=-)n>6c%-% zhnA>bnPS;u@rX&_s~oarr}bUOq|CFQIi(EeDQuzMF_F0m5pdkoW!LGT0~BTAbT(E% zsJF&f7;+{}cO$KqzI78C#DZ$D^@4o;FmuXv^!ea51QQ;)I6;DKfU%Jit&MHb~*Ipb-xgn>c6>R>_yes3~U*uNZejYMw~rr z?{c1P7WH;le^*0SX#0MaE=#6_Tf+p-!-~`LY3+{LlCI7_M zt)?c?TQyh-drZKZ?k%Q)PVEEQC=$Ah(|s59g+69TY=M4IMqR|(ivs>yA`SvnsB+R* zKb1SS>X_U=<3(`l=93Z&kvq!bm^k< z5f4yp*9`Zx61^r4IH?PDeLd$~H@~e>%9@r8#AFykCfDfNMYy~)pVb^fElqsA<#?jv zIhok+CGw#q7<<3`Ug9{?^1lT4dF(|syBBPVP(lBZIIaH9eZY|5rbG_%_E^BoqOPi{ z8keL~p6(a~VAuYjn@DSGeevetdxWg8`mMK3S-4$l-Q_&-@h^e}c;chS@=dt6lNEoX zF~$&Rs2P_IpjzMv^TlSI*P%KOR8Sw=r1nAnhM0QXgztES$z>HN-XfRCX1G8`L`Nu# zJsQ{rngE8D@)mF*@!8M~Q3Ms`tE+VpPU>vBp7Lir`J>dOAS~>Dl<@Vs2os7os;PvD zahn3L8LkXiJ}Ca?aE#9Ly}`Qr5tr32?Y=;f2{*P-ct8fn;NhKuQ2AFcK zyR*dpkL36N^m%NWrlw!V+k8sE?5w_yx&?Wc1FTV}3_!w{?;nDAKp)#F_qfiyI`QZH zW-Z#wVF6F5!}JNE!B*w?i+RawLbTI^d8Sz!`4;V`*87r`9N64AKZymfF4ttpUlJO6 zcI+{d{6szlrw0fq`xj-@`xn>SM1wa^GG^f@2IBg&eBPoR8Z4^%f`Zih2!0&WMk^{=b64(8%Xm_Dv8`VAA~>FIJ?Rc1dO z+kdFb`vNOmT}+pMf8p&Xa4mw(etrj?B7DYOjpsxD|MZ+N^3bg@Uw;O&B!IIRBFsoYXxc~L#@9Mzxuc@jVy7cs zWK@>X_}(~_Y=vv_@FS&36kNxm|JNZbpQ>K~NzgaQWM{EhT&F$sg<^T2*Kf)kW{oZ{XS38LAj^5mkc~J)~(~>Dm zq#rwmkn$4H^FM7=TYS2|HToYI9MWhofot~*t-bdi7qy9#IgWB&q~(chGmAnM8>->_8#tHIgET5oxVJXZZSKayFNZMHCv56@Fr<)z^4l4N7R5B zfm1gX;o}pHU*ZGwRDo&|O}_v%vD$y@Xf<_`weNl00!pOf>poD#`%~5-B2F7k&?M;@ zyXSm;jlCY-7U*6j==<$+Qz8(6APCr4GD^)ZT~-&EK*WRySs@;~xvd2WK+^_U@b^HH z&U!CjJO+OOa7b&almVh`1f}~O#Xx#FJA@Qht2*1GeTkx7S0l&fQK_K*@@|4rR(HUF zP;ZSo*&UszG=_UP-!g4GR%`mjc&yC>!qmaBaR;?T)1p}lw(GwhBiLJyOG0gAbrnst zd#wg@lq!{d4I1(F%uNtQ5ui*uzKdz56c-pxQ)@HLS|eD5?^^vxP-lMEavRTUeXBGO zYPEz~EIhn|YWuCE`}z2+BdoVKN}@I!E=aDvXuBnUYcbpWkkd|j=B>`GS6 zKMg;rECj0oQsrPbz$S><0+g z(K^-9;Z`V$19Qja1HmGHawBj?3hXutbbe()v?aSmS|Lj3XM!HXq+Yh;)coeP$iF*7 z{;R=2i-PKpt~}JY2=yKg+2QGlfT!W(|%;q}Ar%-{KHE32=jjk291=Jk%bfAt(&{;XX~z*t;d>|RE8^rW31F2l(VM4sj)v?T@ci0N-`yUtbt9vmJ-ctgN;zUk`; zp^d=lt3hZ(-9|6(wXh`r#dTzA+vYtYs6V={ztl?APuMdcI0_4-$qpLdm#&m*8S!G@ zas@2tDPWjMNYJPL6~b>E_n*=Qh%+l;4ZJqApbc*w@NOfwROovk6WEU1yG|vk2P?Xl z2_NArwWA7b`xCp4AGp~&Z0GA65&}E~ScmwVJrp~?tT&F#oj0g4SA4`XQ?}BptPUe~ovpX~1T2C*hJf9FlPE`@*a_>-oTN@MpUzVu#Ho^4fK$t_RCa}b+s3)szoNx&ICy$rRxvD#2k zy~Za4gX~~&Ty|QgW=dzEYomNk>r;zIMHD%wbRw&cadd;`5vTL-*33OnWADp6kto0Z z3>*p-&^!zk?4N?MslXEaD;#3WBTSz4_4SnbEv~Kn4qEd(rdBqYS!FSciV60N+9&Z> z$x0x`vVx<#L+UpbMRc@wO?e&tWAsmpJv#tu@Jv*cuIsX(f9%Kj>_6y}d&(ImkChE= ziCH}B#KZ&*3(JuEciQ{N3F;6jZZ+U`a}lRQ7qP08eedS{Xw(WKZr3(BZ2}C0FB6`u z{xS`YQBc#8IzG{Lr6j!Q|3*9R4_Z5DOPDh7ZO5zZt#89s%d<9hVd&6cf|>zD$qpFa z>}y`eJDdri^YK$|)&9fquIJ15y9>{qfIeQc^-^>%UHk|t6@hbn7rr)fR%Ul9g;QFi z=~%UCW7cNmIevWj?u8+hN~P>qON4Y*?xRdFORb5k6Jzd@9WMW9i!vrWPRh! zPxY-N0Bv?wR+s8rq_$DBLBPg}5Qd)coc$5kkJX&8H4yAK$p7s!Mgg732`cui*UKAu z1mV&t^`=RmC2^N%_SH@6(%6P6MM!fkW=T7K{Coy<^>S6_0E*W>{Lur0`vAfQ zoKX)K{Lb__Ij8kNpDqG(6Ti#!q?@$tovU8rvj-vav(2&~yXrghs)j#4bRDi4>HqQ8 zX8t0 z?Szu93fFWFyY>8lo5b2j0osHQ%tx&N_2qbxg|e5~*j-LB^Yv%Hdjt%COx7k-i{`Em z&|?IyZ#AH!V+~+oLw>uU{U2m!;vZKdT0#tz;~fSHK@a*@`Fj7cDa|{8(@0>tIj?bg zxiJpK_wgJqv90%JhR0xY)o>z!dlvo9GTuC{jTQ7d3WcUQ3HNcN8JhwT<7&+oUr@&s(6>RkNf(#V>yBnAf1c`VaoNnc~A(IkJdof!eB@D?uRm_ zB+WA7n!RsGslK{AR_(GaV=vhZMa-vHCC5-K{cLAzWq61Ervq?pb3yD~72yK7@$cQPq6Us=M8&1!7|>cpgO$oIDzqSc9%IDQi+P zGA2z;d>mSbKBn;=W~4L-x@;`CY`Q$<@YG)$$jb8d^-UL{-U)jAI!^I(p*W9#Cy#ik z5Fl|`#@l2P-$_sh$v)#kE<*uBLKcUXXN-ZcmmC|JXbvGJ zId;dF^^C9R^JaEgfD8%ZbEUs`Pi2e>mF=OGbrjODksgK3o$Bcz?Qt9>ZOuMfH)4bE zrLt2_p9XXyJ{8K;PTj0MHe_U2a3BQ*vL_5C!RPf(Cs73T*FQ9(!(rVQL%s96#FWOUEAC0~f)-O{M704Ro|V5C<_Zil?`OxsXjs%c&$ zVZ24gCW|9ySWk^$J|s!WW;lk6QQ-4quW9@8v1oXN!%X#)gT#dmuOqXOJF zv7JJvf?jpseke<)9&C29s$S6i4lDS|Z$)xvwix%0ptpL11_1(`xEK}|JUpCuI{|p< z83~zslwa?R48yqlIk3i}?As=}KxKgFdS6;n9Id>$hcXtHcQp#7_G=F{z$76*; z_tF-&oba?}83pBWsNPy>$j37=j4TLY-45i_`fSTMUyQ$AsxujEtBMx9^jSVVJZ`gJ zT3iY>&d}(_yoghT1lNKR-!$?>@FreYuXuW(CyoOhzSR4|cC?&QOfsQ+FO*&v#V1;h z4}U88zV;0FLxG9Rxyg~K6kWf8*9_|)-9U!*AR{lEMn#t5LsEynK~MTdSJz`&913Q# zER>=*-;WrUMb1$*s!`NfX5jr&v$HAuoOGh8;R)Cb6haWuRgV)L?TwOYA7ljgpY2J^ zh`xH@bf@?B);?|+PN9NQ@zG{Z)Vln{YFY#Rw>6z$!UXG4%4W|mcg3Sfm)!wH2hKw$ zd{U&M(Raat4Voh;`M9?vYAa+ZxwKV5>SzNks|YT_#?>z1UvQd%uP+ z7qRq6tcN@F;78}<6bf?r1p3Dnk7mlnDIVrZM%)vuR7auR$CIkEHEqAB*q$h+vdH=b z3U?el&-?oX{;0JWmLmonWqNw2yd2se#a5znj1i_wWYNhrtqW;YiwnG=CM|%aM3JgK zUl^sJpo7-wa^7AY(usT{AXX9ZDii|#-INy?4u(QS%{6on%}-U2+$nJ>iQ%emN@`S- z&d@8rojs0_>UJO#kT!74MqL*d^Az^|7F%D1490SI836nnmowVIi5$!$64}rxkD_ft zME=rrTzS&Eft_+L(=GL$h#`kKGwmPwBEzu50Y%IlF%~I_gEc(x$_mc}e-=A5Grf8{0k$=V(oYb75#NRiGOSTk={qWR*@>iayIY5UQVu$aLe|DTuq`=453>JL9E z$;Q(bfX0eAav#~^1p)IXX5!*v=w+RJoyp_4N_>lX0Y6^)e>)Hq@Hj2a{zu66lE8TI z1~X~=)eLFmz?MMmV*-rLnKxGPcd-m!t1|?LJ=I>Lym9mxy!MB-fB>3=Ay-p!2f0K# zy2;yPF{x{|M-sB;W9-k4VPNRMQ_}qNq6bpoMbB24 z>i)iHBJ!(cHK8XP3QEHYng!Mx1J2bwcF1!r9x;VV8FFoxM`%HwszXfCm<6nw;f$vT zg{Db2A1~YA%vsN3L@+DU48l1&?hXk%UKq$ofHwC8TU+Edg%@|9 zw4@PG?M{bH-4XDNZFV~-4XqJbbrfX(v$-2xEZ}1Hv79;CW%|eBg ztuxV|D#z&w=tm>_$nZ!=6QL-$mU|zoj@SBdC%(M#T~(Ro=q}##SX9}$^wJ|h=GE9* zi&9SKOW?pnds0&$?-18@e7SJb+jli_r65o9No5-tksa@gr$f2BDlRTAXIa>+UwDZ1 z`RuG{qDXmSv?JstR`aI@dj=A9n6e|zf9C6qiXt@rf<2Myw|hp0p~4vZj_sGrBm@+{ z{qX3|6mFrwlSQ60UU>|d439Un0#dzrye`gFo6qD_XUg|yY8V>iO>uj>rb}DaaHo0o z-aaFY4IRfDmSNy49f_2EB{N+M=_1r#5k?wJS`G((43qEKo7?`NBb%h6lzyHaY z8}`~Gp2KW~fy{#BBJx>G7c-1y!yjIKq)?~EJmrNV#ob`OsPftDOuS@E9vB==G(v`q&B7I~Q!@{1M+Z{3HI<;nogd$MnW-<`p30i2y$oWtZ zF)Fhf#%LOylw@N%Q6)8Cr5Hxemwxa>!aDSgr!3~MVXoTVm*ewpv?;TGDW{dD%%IV< z`|B$-r$rwSzN(hbl8?@RCEOm~u7Mw-o1|d$U+qDE)aEaIN5C~4+&d=uWu;q<*Jlqe zl(llE$s}xLIp3SNSSMy+4!jMeP1UqSkZ-v z(3&oW|qU}znHkH@DO&|Mu5LD&0*aWvmQ=aQuxos{SAD!O0OFke#nL1x*qhWAnK9$RKr_ zWWnWiM~THmp<=C5r*wa!FbM)8qUu~@xsOiqNlzEUdB(kmcOTVw*Lm`Hcj4085&U}b z@G4|U63im5bo~O=_5OrR1UB%5k~ePN$6MIK8zU~Q#XgRN3B>fvD}iATkCW>UA-BC}9x?e&Nsd?-Mi}%(qNf(-NuQ{OP2P%OErKTK#7c zD_&MjN0Tv>h2)_njb*aOZ_kt&b=&m3@Ls51PIk zp%Q6QV=C(WtbxJx>*z!8lh0LBW7MRYQ-FKcdZwC&GA)A+N4bKi$hknC>FmX4TO2s2 z$N@>szxEG1TCA2L{pWNpg4-r~j*{LXfaOslY5u zHR-wa+3V`<*%lbTKYUO$YL2#z$2pu;tNQB%QfyFStrIJ8@(EX!=%~lhD#~T?T1&1o zsb@b=e~FMA8%=CqEgel{!ieGVl~JQ){0+ZLf-P+!dX;BSjGD9Z67PP7jyjikFubM@ zYC0M|s{)8dZR(fF0KNO`s`?@i-tBPM8 z?+5Sh{K{B#>iujdTdo*u`@##wOTnp27sk17oJSsGHQU{J?`zM_h+K_kNxg?9=9g(1 zk}tiwbG#a&NjFDOyuGg|X@=s0R%X8m*N5GhT^pg+JdcxNpiuKZiddERP|i{-7j|0= z1GB@+onbGd+yV1H-DOW$3!C-&m~VtXEedk>`at5dL^Uo^t#P4WPB-XdkXQna(lhP$ zDwhWP<<_yFjfwYr1vQzSZ3pvjcSlpcXG^2M)@iBNnGtK<7Vy91%UDvjBw{4{V01By(!aIWAQMu zk?RS_()V;2URlB&Vanb27)j6DJZqe1Hp1}fm`w(kj;Razp;pxfa${N~VUP`Z^rvvr z4P}XD9W1t0SUMC3MP*7fOMRW78p8c;7tN60w0sTERT9VZy_hOyZ z8TYfA{jT2Xln8Rb(MXJ#$MyzOA%}YN*4a%*`})3nmqt3H(a-nvMlWsXSdcA5arIHj z$*)*p+Fd=iuMj>6?(uF$^8N9+m;0@Gc{PMp6lZzJRB5$}H?Tt$Jd$|!vlZWljUKr# zPJ}R#u8ffJFSB2%GZeQIo)n+={!I8DB8QjTfvB^W?KBx(F#y={o^0M@w>FFtkCO5v zWz4!g>1|c|H%_R*3RiuHqN3mCKaW*~)!LDE&z^L>KlP=vvvk(r_V_~sf2PSm;S>yV z0nqX+RSdU%Or1LaucLb{!NFW5? zYnjTdu|OJ^k3@lG28&@TnP$@^;m|0RntC4L-OA4@r^;@9qw+Ql_A%tNW<=EEt;Ea( zBdld+w-R*SxGuHBaaM2BT-j^fIl^7PI5s(wUvqE^&?Pb8WT?rO)fH%Q=X@fxNocrC z9cX(;ex`@Iw}zx)d$9k6>nd`p)@QudgZf3u8(hOcr^88(JUQ7tuIs4R0F|cfZc>LfAY0f!xn0|cK#zmTzFDx ziVu;wPVuy%i$Yc5Qa3XBUx#7z;!YY=HmJPS!DaBsc(gWP@V5M;4Q(j_kB#zl{h?+! ziq?*!6*+Cvg0mr+ezSyNSX5zKo2{bODVb6AK*4N6#*+9;dV21c`={vm4p-dYt&#b# zSbBG+t4w61ru$Cvy3&Q&3D{}72N*WeIjxF+2|{d8l0puJ&QvDkec%GcF~1VkR@q{7 zWd*q9a-x5I;3O@%6I?^wsR-^ai=NC!mDmyhqc>8E)8z(=H!se#rrw*) zfvGKPO+?D)ZPf?i$rMWr$XpkTSGU~U>+Kiz7_c6Qb_NCRFyweEd%7SiPizczKFr&D zEpy`x1q-pluuTMHNUVc`Px^2}pHF59zo^z=b>NFWaobK>G)fq7Qfv^QLP3zIl3kpOKxNWZZ5pe>E?~W?s5N8?H?AiL2;cS*q$>*E5BS z8zVn1&L%1!cfLEWP|!8mywyY9Qz)P`ChxY_GfXC5@i#N*l>yQy>QPK1KJ`Svm5uhq z20i`@j#ui%YHENg;8sI{LP}gexUH+ZKFrsJ-)BQ1@}$ZP0lAUVm#VnI#bQMDg2zsQ zSBGNN*>Nk^nj$UL?>kM#CW$w@csnjud)nbh+qZYQC7xJB1DS!w!GWE~?JdvB0EtP0 zh@W?uM|^NScA)e`B1_t~3r1wHR(T)a+)xtA%NW`#IUU9Xv(xt4?q#A_{uu3cpP@6+ ziI-(ptzQG3JRQ#PB6i34s)Bcw<4>iRgDp*|f65%{ZyZtwto2-JJ`zfoRHX zXVPRw@}G(}<{i`ERs?1B8G^l=`u#)6iR);k^n z9wfFbA41lN4LGXpOX5@Wwe>Ai5vP^WAMqBJ55GECt}2Hll)5`eNYs4cpHXpeAZP5% zapT{0sW(8MaR!-VDp0;Vb#X#neVvjQE4R}c57pl@5tl|UTP}K9W&br9H?hKTHSBCb zH}rDOl}>#Wn6&qBL$uLW0LYfK8`%%@F@uwSqBR<{S` z%`9GA?e*r`f)=Eh@t1x`ipybOOheOgxL;NmhXxg`MeP$-TH)=q+j-O95Yi;xh~tr& z5UTx69>lPad0`J%fHhSfbr>gE;0XHc*yF7GvRJlhv1)>#hka!E zilD?hIToWA_yX`B9Ms$*kfujSxH*nrPwq2Dx??p4T!{>23P&QM6H9v3vZW>mq70_I z?Ds!IH!~ZeH8pja!jksbJm#MTQAmbPhpF0w<0D&+ofzJ;i|&k;+MG?XSx$dO;YQ!? z0xUt%DW}&$wQMvGGR9qRzX{bHnvJH&G;aCs=tquXTTz!Ye0>{%-y387@n|^kjrs zPr>{M06|EvV(cQ?F z$i70A??|M)lAm|$M@N-Yx*k-t{mf-I=@|#Kj*4t@feuE)w(6}ibp5K!!bw7D*&(iJ zoga8kNTfHX?I|lP38XDB7pF0^Msv1ZtfrIuT(fFs`R#mjXa_P=uM~9 z$E928Cd^Sa8@lTmdg#k(IOAkF6HRmj3Pk^Ww3z8#ESgZY{TLCBy;W1XXIY3@{?^(f z0MObFCI0x%{0|oZD>G(SVIhG0z{B+8XC>yxZ8XZJvm6y%=TJ!fn+l7K+oVSr`R)-`2<6 zbyxRJP4CW}FT<&ZcLNwtPm)3_y(g8bhF4Ke1E`|E$6;IOpp7>t4ug#LOk0clcBJ%-bKTA) zgI%*L!F%$qA7cyfkMJt1VcuK?a!K_c1uUkRy?c3&fGecHdfFbA{^Fqnve`U9u>I?p z(O>{8&cx19+uE4?`T0Hs6jQ<{5K<}dJSXK>9m7=@PFrYwT+QI&Zhg;>lxEXWfQ^mN z-b9RtoxP@2*RXj+XZwvY&-^ilGHr&ze1Ig9#bDmjghj@b%hBnV!ffLwI=;g3+m~Vk zR+ttypH6$)@rrMz?CpwT_CS-{rn-LeZHSNkLy@Lh+tKG zQd)IK_5wT#4&N9K!%i`BzFbDC*yzswi0IF7%|-0<(>~{839*wXF-r^sifSfBmg0OJJ{GG_(J{`*XB8=49J?Rv>A;@lH&pNqHD!Ld@rC2Zi0Fw_87mdH<7TQ!QctIn^^BRo&+YZ;Ddm6xjG$$I=B;iMO7M~wpsIN#YO!V2pA#yb zyE~iV^i{o6EXI63mD}~pij>_LeF{>hT9I;5O%m(aWA~XWx53+LavPtykSWs|tDqu5AHLwYt7^(EnFvxA+jxg!PxLvdJO(U)J z&ZixLf6vJ(vS)#8CTUy63*&9=WT&%$D;-iaQ#C52I@apVUhx6V((EqTIPDK#%{rfk zjtZ6K%=s(r+c>|(m`AS2(L^MZn)RFfzCt56%16L89oDieZ8{nV$L0QkzV6k1HN&ZA zvO{F}O-E}v5>L?76ltG2Z}hK^wpvrhx?b7LCQNYznVK5}<4_}f}m{WTla*}Sx`kt@uB>9{kC;}jaSNDh2k8?n#M^NK7%q$j? zv)Zso9QOiT0-I}%&xBKGyn!rvd}3!H_^@y=W&8WrO;@#&j$AgpCj%4=4Nmm-pm;L) z2(Eftmo^xfaUbMYm<7ozNchjlqpN-@zVZCBx6k;A8+qx%3tX@*CoO=lc4KFM_x`pV zUJk0LM^XL^$5*mtsx+=Jb#u1E1({v{+hWQUi}^`0nT|cx;bn#aLLO`v2(&qfpq3e- z$Db~MS8fnW%xXWC$?jPc`Q+jyx^GNk*rAqj%d!U}=Ay~nbX={#a~z3`p3|TIo@ffJ zVlpLka6fV-W;71LsQ-B+IqZ3FA;4I4Viozc0ZS`$FKua77m)*L)%n~8f_x${w;u_4 zDMgR>WT|9gXiYm@x?16iFL+ocrDNAtG}E%?x(hO}<{Hyi(DG zH?dU~KfY26U87)s8ml;*F^ERUiY1h0Ue#lCd*(RNcje+?BIDu2glH3OO!@fTC9 z-qMkunG#aEym{0*9I=E~t*>)5hEMK#C-}R58QL)cv}pGPwydj zD6d529fRen`FrLs^Ld&p1vXWp_UUE+vzD7!j+8N#E=Vf!_dT`;Xca$5P2f2ska|@P zB(vv9@KE}dEd+;z6bpu>5$SAmm@#V}T2xz*$FrT50xGHxMTVjix~w+q*awO1YP9DO z!qKsIBdKNsnPB$t(B7_QVi&E(1J537GVN=lf_H&z{L|JAcS3sY(cIQNnP`&f1% z&KayYLaf`b8vC>O+@nA=W_j}T=&ST|JO_rn2H(#Z;u&EnDvlpg*&i03@%dbSV+Rc- zA95oAW53EhS>x1;AdH1j1T=hA4%Updd&7RD#F4x8Nb#?{ zeZC*j*ty-cDfAD}Ii-M?AXgeQ5lUWB8=y!h`qUkT&F6JQjZVZ73SH7fApKtKoH|^2 z##%EcZof4*Ux$O_kQB~_k~lLkfJCm=N@;rluc*_7V60p5(>6m`0nv{GsdmbFgYMm= ziiH>EzA;NtUR9or4XnCFbf(2>?C(Bm7zU@tcHZ{Dk*O2;&st?hi{)c0X(T5g%cV`h z4)L!p@5hh{S8G?4-^hU*D$F`Rru6K&t)qpJ*L?Gfaz+R4&VB#U51#;ZcwEAq_^H;W zh;+g@bzT`4$iW{nrZ+4$4(sf7 z7jS!;6Jf_d;BDeFOn9ncuai`6mf8$PN6R_aDa+U0uw%0YpApJxS-bmjUC$Il)jHW) zvoSIR9wLem)RsMR4yOr6RKDk-x9B~G6#*A4W5ahvfkhSK`0h*!>8E}BNg*Adc<-#7 zPRyxSg#EMA%U)kTtoHj10b;>g#v_l|-(&Ihvk`*^P{KzeZ8W_Rg{dBI8WTzk>=+kb zqac`8`i|u%M)nr-28b50Jc^Ao8;}G0ExVyVM z1QOgsaA+JF4esvlPH=aJ;O?%$^>pT&dF$}Ii>h6<_anDl>r88IP3|$7N!1X5BwY8) zd&BFgV&Mbnmu2;KbDk6|2Cb}!-*OS$!{yxUz^{pgV_cC@zcUs#khiE4qTSqLCZ|4^ z-k_a7F?M@cgzfps{HVA)X){CA1yf#=z`gWf2RI%=2R#BM^u-w_>jn;*XoH6w3(e>U zx)Ffs8;h?Hk%c|j^D`DQU*kdQm0pjc6PrI^&mwITp|-5VHTmr)zTSX_{!?38ilwqg z^TTanSPg~za@xHPJ1&5wlf>satjGa}^$aZl$@TAnVj90E7Ys}1b4{ZvfHgdQG~zegE)jb$Dxab&AMvJG`refi@*|?z&B)rj_X$ zZ9vZC0O^}s*mvKZF3i}XRPE zcBos-#>;CXfHV|pB#r|Tgu0!^=ys8K_nzc|Z;xT>Z39KUcx`xnWg!fMP4TpY)I0^u z|93h1jqd)CKzw0stL+E(dV@`mhcg?}M5UbdAM46)xi-+e_Ar8}4k1gftL`C^bIwyc zhw$sYoky+T@X-)=w^S2&(gl6*>S}|ntY*qjwpl_*h`;>tqzkr#4OSX41KjLv)K94_ zVmN#qWVRJdAp>Mo{KFjX`lQfDh@ML8X0sA5_CtK`p^~8O6a<|kEl$&xK(53r3AN_( zIj^U`nEhLkqy807RnlmUC2VhhLmpy-#gTY+p;GDW=b+oU5&D;mZ4z zS>5sZDz`J(LY@fe;~y9sOOG?3lz~b2l4~47&CMfRcnDzEmU8pN#1Io5KvWgLL3LZ$ zxEV{gcp#px4_WA#%&cUmP8!0~8meFMIoHu%9Qi-n7XW=m0idfsCFQZ35Ze05;$C99 z{gW|9Z8)V6Sgx}QxBv2RE|0nNGMLt*p69aKgp+PjyBNa>wGClpMR5b2`}3PqNs647 zL5HIxZ)cW@==!vHoyBhtQM{by9u(Gg2Bp6fzbWof9Y#Rr^K5)m!1!)GK`iJc11?(D=|Q1E217U`NAZju^S9xru^tJwUWBo+D=;L>^5ykx(&wh)J2x6v#dAPECRy zY&8M6Kx7uRtkR|61P^kOTRC0OGpI8Ju#k0c;+M(tWQK$8=mxi&2`|Dgo$g=|c^Q3;4O>VwyI?lCiR^!IGQUpZTY0@cQ8<1ugcDc(weEDk1T?|k{!K1sR zSPuoAYMLNF?0{Ipjcf_lidziZ&glM^M03Z1j1}V{dmT^P7M;WIOP_Wnd~OK8i?dzE z{pMqpy9(J0nYvQ39Ifybi@|Wsn7!S8g>5D$PSM(5KuhfHEa5m_rT6150{@16Q(Lm1}h+N2A=UXBpvu69vBFr;0$l9Nv<71R8At^q2TJDSvrB2(m zC2~fkZ*Vf{qGu=#pc~G?%?GBgC=g__5DMuJ_~kpE(^1Fc3?H;jGv7 z>JT7zNZA_yUBRdXR7hY;nF8&uY62}X(3cC6&WF+D{^~f55<}!AMSqzaZto=Hs1{!A zh9F<(IV|gmx8ktCZE!JUQOY?sL$Z%iWPi#ajhGtVLJ768#J9*m-VUK7w5PMk9h;=9 zxq~&RTde+esy$Xm`kesceG+Ns=L{k2V!}C*pbbNBU)T3Hfmhh={aEX2ovzYR<_@|K z8WMFvrM<22psU{o58}dnwLf_~yovHceWpt9VD_ywqDS3ql!Y9;3`%XmEX$$dw^ z)>dGcyP5W|tq4B50S8jI+8>*_Tk+b{+5Y}&lUq|xsaETq^&~^y_!UJk1 z!t28uThyHu87{iYqkH*pn9Q9Ia&j}4Ck(G2mx8|klf9&VP3LTGAe>zjq^_Be(e;lG zyY;$(aU`iWqR&E+yki*~IV5x8oIx>?iZ*~DSpPh3P&+SuD6;*R4sLAt#CZnolk zh!9J6t@HhHeIPTr>35r9v5BVsW697wZM#|*NiYBQ6I*KE z^KF*mO5IX$=h0nOgIUFd_$j^3LIvWszYv8pdTs=~*>A7oxPa1*(^b9orUmJPyU1$` zri>rs)m`)xAY7Bh%PyK2wfa?+RCiIKFoEt zy_jW*@{<*bp?#rwl?983MRFajYDI|jbm#lGM(vND6ryzn8trD7qgs`amB%yLRdppi zhK~|(@(Dsr`)>uPRNJMFs(i~Ohi;cM`%L^xe^;D3(lv%zl5*inKUd*II2~4hZiM~+ zokGL>RuO0l@|3YqAvE3hUh8e~nGRU!0eCCic?(LqvPuJ}24o$jr9bXYbMJ1-l^FGy z0>|yHMyEgb2E~BIn5f#NW(vFh&ce}z+7e^T5CTEdya7#ipgY)B$v4GR8%j1)rt7HO zS7`uyTMXs?aLyIq;YR{%elO%O6w;&v28$MDdWAAuomJU-Eg#@~oOBq0fOz=(P}p;y z6lwS*^x8sZIB!OQR}p3fPJpYrPB{W)sUQ+KZ>9_#JhHwI5E3*;Xtozkw+Mz0Fmkw(z zbL9{D-ZH119jc$}kFOIyp30Z?eZfRhDb#+C9Kr4AsDBmfx97l~Xt7unkqlW047*_D1C zFr6t}q)Y>!OR#*sI~1u!P{lr5(ZkwjQtE=grLvehS4>n@=N*EIW44Vy+o8`be#z3| zhUq#P%U&!=bk)iRM5>^1i*g7*vu{BG#!cmkF)(Z$8;@<(-itq6$ia3uey(JSQU3ko zR&36l2ePMx8-7ENJw_4G)>J5MX7{avc~nmgbGf{nLz#$**=`p8sD?#Db)(DgB4C|Qax59vU*9vU;*WQc7ZDIaDyP~?Nks)Fv;sURPO0e@ zQPE7$7PgDTbIG$o&~qRyRxv`ny+5qPz3qc8O|jEwGUQ)Y;Imiqy+WE4T+w8mED;^E z$wqr&{@mfrzyyEEZL=M%_^~nK^&a9ev>Kf5=?%MoVj^ce7YecBV)J=h|?EF$7Hw86dN z`gjw$v~;~&3NOr|&n`Ve1oFZU@-Q%Bb<{>7A8z6Ko4Ikdbsj4Ef{?2XOdkl?2~YC> z0X2DEj6!g-5JxtN%>zA?CHjW|+F!_PX2a*i6~w!OxY^%gyHS83nolF>*=@y6y3^`U z6Sn~7DjOU|5gqTfIIYZ&wlk@^#pqStiwdfMCDFv%{E3Z%AK*aB@*+1pKLs0{doB~6 zu+)mu^wx9q(7OSS>0$^duggb^!{Fze*)~A3Lo^UU&;D57OClV|PBBt|4hgWC$-`yPagIVJV9P-r)^$1U1V19lLaPBlRiC32N%}ADg+p zL&|1#R$Lx7%2GO*j0fP2>|rGFw4um`dGu=)^1l5uof*A;_)fn??^qAtIQ_mi2Bo|d zr;hK*if@SJY0QlC!=n{&@>%H~BPV5kcNEgseo#I&W2ER=BhQ8XrtwDbSZ4m8Y8`_6 zB|aLUg!uKuT`B+%?+ePI_jZE8e)j*I$*mdq--$oP;A3OABQ5f$gw*>38;z%=%rXt& zs>$GmPwh}nf8*(b2_GopCGX#vk?o4gB*HLeuomuF5xM6UY?z?Znvf5i*jS;}MD3@q z9p(|S7%d-J?B!_-2&q&Qu#XM0#qSuq3f)(I(nw$C;iDCVwRO1e`kiOyiGv)?lF{4ZbTE zBemVDjBriRQP}X45fJt6e`RGxU6t3b0L(vmQxc_h#7tIf$TXu8dE@2<|Ez%Lf-fkh z`|5YYRi^xeFYT`1V!GCF3Kuo~PRAZ(I|~uYTG`AK1&BIzbU}z_m>t&4%p8Caw`6T6G<9gK%Vg1zgL6@uZgoIT?3v1-waTw7# zt++sFJz@Np#S+F0ex3t3ie^O0dBt*nd#wKU1HF|H{MGfUrPmq8#o~wc?yeAaQ<8O} zX(;#NW|Sg+HV5{Ogu)NpSzxV%pK8t%sINjgo;;MQV^49pWcr*O@yuM(j1h;5Si)!K z9b>F`lV$W)LAkqEZ7I}sImUegk)#h(e}Rn7a9rnCty-D?N+J6=@-cIl-e7h`%hv)< zXh_pz16;kN58K;4Hnpp*9!g}LUEgpPVxLp$d{tsGU23Ei?HdWr<>&{?8Co4fR`vrx74cYKqGv++e(5%TIsLXWT=96tQRG-5aEB zw;=!ZJrLm6gK2e;!5fU$^!!}&wNws!KpqNhvT0loZ#wdH(eB*bDIGnm(e2>}5(+`S zTn@j+h6tlq2n1{BPYxR+S->(hcz5EXIk|6%V1lmevzex=Garg3%AfpfM-K>Rx4*AhZxu$g9!bVSgJY-GK)1M2Cu+%j3Zxn3+ z=oCQ+80TvES^6-=eRQ(~!mRx3h8cKZXf{s*y)r7|aEumN)};NKRLCJ?-lD>Vd)v_r zc5i=*y|Hgl$yl%5*p(rIB-B_TOZPMq+TQ%ax53#;?+}nJ8(u^aD-&fr1Ye!p|Guf8 z$PmrwO7OX2cxfA3todjzGszAv_k+Z9?sLHeY#y&_-RHsiz=R!8a3TP-~FIV}| zmUvycoF{P3MIw}><>?E6NjQU4{EYMQBr2}%1HO30=_tqf2!R?f>VI3s1ssGE*qTAfTo0-zH6U%fp-b89h`P+zn(JR%x`J?ja~EN7RV+rxc%6VN#-GRWC@v(g!>hK+6JcNpt^W3 z&ldg(YOIZLt`b3gIvs?SDIkCaftwisYE$k%KzdO(I}XfYsTI@b!7S&W6-N*8W}=@K z?SvNK{yO*lN-7lS3_-@v1Cd(^rehQ+DsuV|i5&BsA#YnK5yUGtM`adFyh%^bXL{20 z4i`-a|Gc|BnK5Z?cfnm3^p5)SV_BAJg(KhZRt6AIIhlt0`MZz}*osb>PZKLg=(}6O}2)gzf(A`x#m=t~LEE&4nD>UV;SA)E#zT08Bxr$Ld zn(Y)epQXFUV84qBOXRLFI~;gWdvtF#QZTWl@KXK%H6*`^ciVyDIb$s;ZiX6*^em3b(~X~!+dJin2(ThMl81`P$r_8^s_$ID&SOk*n1Zl=1JL)F{66ZCK1B{BQ@ywRII zX%8-C(WGogwI)`sG|Yg}iX{LUCVh-h(n@@f!SDPWSxv|AT=}P^c&BV{eTUj4y_T(3 zi^PoK2NW;QQt)40shRBXiG@Ot31#wA`y0*u-D742{kDTip5?ji*I3SjZ3OX=?oRC3 zF#XEN5*#3HYL_wMw8xBr`sv^nljs2q1PWxCPkh-rh;G=zruRP0z~qi`@F7p~SBY}A z&_Nee`-ZSOu#6W-T4>bUuUU6|kZaOVda2Ud)4TRcan8kfE%<&r$i&C$OJ}fDleqCx zCAeRzKi25#WH1d1Pv)r=Ybc~kiDq+>YO`>=_qf4VC*&tEsK_g z&dl7AUUDNNfn1skoZye!fuS@vx)E7uyQzQlafX2hVG!%qMBIO{{xWn5ZMN=wN1)TJ z4RC(ww*ms^ZkoR`9nz^sSVh=XE^<|&%{bg7Fo-<=SBL?i!~c%{S*9~n<9#pSi|pq3 z(~K-I2G+fal&XH?WTCqHTOlK^>Gt_s2pXnzeBQ@MC4|UWm zA-XD#M~Tbz?A0v4Qcb3XSx0@ADZSZujBMDZc|G++n;y)Dovq9-wgo~Io!zpv7B)Zx^-ADAC^a$`FptO@qsmhZBXu97|!aZmA!HE*1f8NfdXnvwkN#b zGIpWA4=|p_nx*f39&{)E)|BRoN>Y8Re2ykiq?SxCN2SMAh`s3?UDG#k8_v?y2vS$L zjBfb$zZEvr7W(lA^$toF+;B=!GuUOE_IpNi%a^l*_aaW2#JA9(*t;Zndr{7QG>IDR3SDs|UI~b7 z@Kl>)H&!P7F;H*}oAkII5BluV<#(bIa7jU*Dt$}yA9%g5kF+0kIcJd;svP7Vt{t5KOe7n)%}T;FI@060(nLkx zQguTX#Qi3HWkxzbR{lhoC;fWrJl$ex;nXe$*l=BrDL`*t&L-n$Exw|2>2 zu!f0!^~8_N$ErKkWMn8R*%BJ1T&+%HJw&^aA-4esZeMWdLlNhw?!6&Y$cy3_16mg|Cs(|TSy3( zR=!-zr+G#94Dn-Y5+7>$P7W_Y1^K&rd6L-=*GVn7w4a@DVX`&)W} z!>pFCOSP>SM!$FtufkLNhh_+%4;(Jsq*T7$-i26z51jU2h0mA!ASkWCF+cUWuKhE= z7vxY{b%=H3(A<45cFmVQw27wg8KsAK1Qi~8spnXðYy$A#7{R;Q|C`ENYI;6OPe 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 Case study: Inside Spotify we have a team that owns our CI platform. They +> don't only maintain the pipelines and build servers, but also expose their +> product in Backstage through a plugin. Since they also +> [maintain their own API](../plugins/call-existing-api.md), they can improve +> their product by iterating on API and UI in lockstep. Because the plugin +> follows our [platform design guidelines](../dls/design.md) their customers get +> a CI experience that is consistent with other tools on the platform (and users +> don't have to become experts in Jenkins). + +### Tactics + +Example of tactics we have used to evangelize Backstage internally: + +- Arrange "Lunch & Learns" and seminars. Frequently offer teams interested in + Backstage development to come to a seminar where you show, for example, how to + build a plugin from scratch. + +- Embedding. As contributing teams start development of their first plugin it is + often very appreciated to have one person from the central team come over and + "embed" for a Sprint or two. + +- Hack days. Backstage-focused Hackathons or hack days is a fun way to get + people into plugin development. + +- Show & tell meetings. In order to build an internal community around Backstage + we have quarterly meetings where anyone working on Backstage is invited to + present their work. This is a not only a great way to get early feedback, but + also helps coordination between teams that are building overlapping + experiences. + +- Provide metrics. Add instrumentation to your Backstage deployment and make + metrics available to contributing teams. At Spotify we have even gone so far + as sending out weekly digest email showing how usage metrics have changed for + individual plugins. + +- Pro-actively identify new plugins. Reach out to teams that own internal UIs or + platforms that you think would make sense to consolidate into Backstage. + +## Metrics + +These are some of the metrics that you can use to verify if Backstage has a +successful impact on your software development process: + +- **Onboarding time** Time until new engineers are productive. At Spotify we + measure this as the time until the employee has merged their 10th PR (this + metric was down 55% two years after deploying Backstage). + +- **Number of merges per developer/day** Less time spent jumping between + different tools and looking for information means more time to focus on + shipping code. A second level of bottlenecks can be identified if you + categorize contributions by domain (services, web, data, etc). + +- **Deploys to production** Cousin to the metric above: How many times does an + engineer push changes into production. + +- **MTTR** With clear ownership of all the pieces in your micro services + ecosystem and all tools integrated into one place, Backstage makes it quicker + for teams to find the root cause of failures, and fix them. + +- **Context switching** Reducing context switching can help engineers stay in + the "zone". We measure the number of different tools an engineer have to + interact with in order to get a certain job done (e.g. push a change, follow + it into production and validate it did not break anything). + +- **T-shapedness** A + [T-shaped](https://medium.com/@jchyip/why-t-shaped-people-e8706198e437) + engineer is someone that is able to contribute to different domains of + engineering. Teams with T-shaped people have fewer bottlenecks and can + therefore deliver more consistently. Backstage makes it easier to be T-shaped + since tools and infrastructure is consistent between domains, and information + is available centrally. + +- **eNPS** Surveys asking about how productive people feel, how easy it is to + find information and overall satisfaction with internal tools. + +- **Fragmentation** _(Experimental)_ Backstage + [Software Templates](../features/software-templates/index.md) helps drive + standardization in your software ecosystem. By measuring the variance in + technology between different software components it is possible to get a sense + of the overall fragmentation in your ecosystem. Examples could include: + framework versions, languages, deployment methods and various code quality + measurements. + +Additionally, these proxy metrics can be used to validate the success of +Backstage as _the_ platform: + +- Nr of teams that have contributed at least one plugin (currently 63 inside + Spotify) + +- Nr of total plugins (currently 135 inside Spotify) + +- % of contributions coming from outside the central Backstage team (currently + 85% inside Spotify) diff --git a/docs/plugins/index.md b/docs/plugins/index.md index bb8951f959..c5b67bcec4 100644 --- a/docs/plugins/index.md +++ b/docs/plugins/index.md @@ -1,6 +1,6 @@ --- id: index -title: Intro +title: Intro to plugins --- Backstage is a single-page application composed of a set of plugins. diff --git a/microsite/i18n/en.json b/microsite/i18n/en.json index 698d86a26a..96c874f496 100644 --- a/microsite/i18n/en.json +++ b/microsite/i18n/en.json @@ -177,6 +177,9 @@ "journey": { "title": "journey" }, + "overview/adopting": { + "title": "Strategies for adopting" + }, "overview/architecture-overview": { "title": "Architecture overview" }, @@ -208,7 +211,7 @@ "title": "Existing plugins" }, "plugins/index": { - "title": "Intro" + "title": "Intro to plugins" }, "plugins/plugin-development": { "title": "Plugin Development in Backstage" diff --git a/microsite/sidebars.json b/microsite/sidebars.json index b07f326086..efb76397aa 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -5,7 +5,8 @@ "overview/architecture-overview", "overview/architecture-terminology", "overview/roadmap", - "overview/vision" + "overview/vision", + "overview/adopting" ], "Getting Started": [ "getting-started/index", diff --git a/mkdocs.yml b/mkdocs.yml index 085d83b7cc..e227ab8f9d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -8,6 +8,7 @@ nav: - Architecture and terminology: 'overview/architecture-terminology.md' - Roadmap: 'overview/roadmap.md' - Vision: 'overview/vision.md' + - Strategies for adopting: 'overview/adopting.md' - Getting started: - Running Backstage locally: 'getting-started/index.md' - Installation: 'getting-started/installation.md' From edab8b2ad89e7a90f61b9d6cff82371f20d2d00f Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Mon, 24 Aug 2020 17:01:27 +0200 Subject: [PATCH 163/656] fix(template tags): fixes issues with tags specified with uppercase (#2049) * fix(template tags): fixes issues with tags specified with uppercase * adds new validator for metadata tags * fix(template tags): change tags to be lowercase * fix(template tags docs): update docs to include lowercased tags * fix(validator): change back to using isValidDnsLabel for tags * fix(software catalog docs): use lowercase tags in docs --- docs/features/software-catalog/descriptor-format.md | 4 ++-- docs/features/software-templates/adding-templates.md | 4 ++-- .../extending/create-your-own-templater.md | 4 ++-- .../sample-templates/create-react-app/template.yaml | 6 +++--- .../sample-templates/react-ssr-template/template.yaml | 4 ++-- .../sample-templates/springboot-grpc-template/template.yaml | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/features/software-catalog/descriptor-format.md b/docs/features/software-catalog/descriptor-format.md index a7d57890dc..78dfcf365c 100644 --- a/docs/features/software-catalog/descriptor-format.md +++ b/docs/features/software-catalog/descriptor-format.md @@ -370,8 +370,8 @@ metadata: description: Next.js application skeleton for creating isomorphic web applications. tags: - - Recommended - - React + - recommended + - react spec: owner: web@example.com templater: cookiecutter diff --git a/docs/features/software-templates/adding-templates.md b/docs/features/software-templates/adding-templates.md index b0405cab79..67e9c23605 100644 --- a/docs/features/software-templates/adding-templates.md +++ b/docs/features/software-templates/adding-templates.md @@ -22,8 +22,8 @@ metadata: Next.js application skeleton for creating isomorphic web applications. # some tags to display in the frontend tags: - - Recommended - - React + - recommended + - react spec: # which templater key to use in the templaters builder templater: cookiecutter diff --git a/docs/features/software-templates/extending/create-your-own-templater.md b/docs/features/software-templates/extending/create-your-own-templater.md index ac05eed3b0..a39f87924b 100644 --- a/docs/features/software-templates/extending/create-your-own-templater.md +++ b/docs/features/software-templates/extending/create-your-own-templater.md @@ -116,8 +116,8 @@ metadata: description: Next.js application skeleton for creating isomorphic web applications. tags: - - Recommended - - React + - recommended + - react spec: owner: web@example.com templater: handlebars diff --git a/plugins/scaffolder-backend/sample-templates/create-react-app/template.yaml b/plugins/scaffolder-backend/sample-templates/create-react-app/template.yaml index 958882e9fd..a377d60ccc 100644 --- a/plugins/scaffolder-backend/sample-templates/create-react-app/template.yaml +++ b/plugins/scaffolder-backend/sample-templates/create-react-app/template.yaml @@ -5,9 +5,9 @@ metadata: title: Create React App Template description: Create a new CRA website project tags: - - Experimental - - React - - CRA + - experimental + - react + - cra spec: owner: web@example.com templater: cra diff --git a/plugins/scaffolder-backend/sample-templates/react-ssr-template/template.yaml b/plugins/scaffolder-backend/sample-templates/react-ssr-template/template.yaml index 5594a3a919..ee051de6e0 100644 --- a/plugins/scaffolder-backend/sample-templates/react-ssr-template/template.yaml +++ b/plugins/scaffolder-backend/sample-templates/react-ssr-template/template.yaml @@ -5,8 +5,8 @@ metadata: title: React SSR Template description: Create a website powered with Next.js tags: - - Recommended - - React + - recommended + - react spec: owner: web@example.com templater: cookiecutter diff --git a/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/template.yaml b/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/template.yaml index 520d0a62ac..c6189fe7c8 100644 --- a/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/template.yaml +++ b/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/template.yaml @@ -5,8 +5,8 @@ metadata: title: Spring Boot GRPC Service description: Create a simple microservice using gRPC and Spring Boot Java tags: - - Recommended - - Java + - recommended + - java spec: owner: service@example.com templater: cookiecutter From e94c1e321eeec57d93f42f6c5664758edbbb7363 Mon Sep 17 00:00:00 2001 From: Jeff Feng <46946747+fengypants@users.noreply.github.com> Date: Mon, 24 Aug 2020 12:54:18 -0400 Subject: [PATCH 164/656] Update siteConfig.js (#2100) Now that we have a Docs tab on backstage.io, seems like the GitHub menu item can go back to linking to the top of the repo. --- microsite/siteConfig.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/siteConfig.js b/microsite/siteConfig.js index f0c8ce5fa5..73a25cd931 100644 --- a/microsite/siteConfig.js +++ b/microsite/siteConfig.js @@ -35,7 +35,7 @@ const siteConfig = { // For no header links in the top nav bar -> headerLinks: [], headerLinks: [ { - href: 'https://github.com/spotify/backstage#backstage', + href: 'https://github.com/spotify/backstage', label: 'GitHub', }, { From ba8bef38a637a3544b0aaae56a839fefcb393e56 Mon Sep 17 00:00:00 2001 From: Omer Farooq Date: Tue, 25 Aug 2020 18:30:12 +1200 Subject: [PATCH 165/656] update casing --- .../RegisterComponentForm/RegisterComponentForm.test.tsx | 2 +- .../components/RegisterComponentForm/RegisterComponentForm.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.test.tsx b/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.test.tsx index d4d2cf4789..e1226bbf32 100644 --- a/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.test.tsx +++ b/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.test.tsx @@ -37,7 +37,7 @@ describe('RegisterComponentForm', () => { const { rendered } = setup(); expect( await rendered.findByText( - 'Enter the full path to the component.yaml file in Github, Gitlab, Bitbucket or Azure to start tracking your component. For private repo provide authentication information via config.', + 'Enter the full path to the component.yaml file in GitHub, GitLab, Bitbucket or Azure to start tracking your component. For private repo provide authentication information via config.', ), ).toBeInTheDocument(); diff --git a/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.tsx b/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.tsx index a61469e969..de3c54610d 100644 --- a/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.tsx +++ b/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.tsx @@ -71,7 +71,7 @@ const RegisterComponentForm: FC = ({ onSubmit, submitting }) => { name="componentLocation" required margin="normal" - helperText="Enter the full path to the component.yaml file in Github, Gitlab, Bitbucket or Azure to start tracking your component. For private repo provide authentication information via config." + helperText="Enter the full path to the component.yaml file in GitHub, GitLab, Bitbucket or Azure to start tracking your component. For private repo provide authentication information via config." inputRef={register({ required: true, validate: ComponentIdValidators, From b6ba9ed08af63e4c4d7fb503fbed7dbb48b649b6 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 25 Aug 2020 09:03:07 +0200 Subject: [PATCH 166/656] workflows: cache node_modules in e2e tests --- .github/workflows/e2e-win.yml | 5 +++++ .github/workflows/e2e.yml | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/.github/workflows/e2e-win.yml b/.github/workflows/e2e-win.yml index 5f75f3d9c8..448a61678c 100644 --- a/.github/workflows/e2e-win.yml +++ b/.github/workflows/e2e-win.yml @@ -36,6 +36,11 @@ jobs: key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- + - name: cache node_modules + uses: actions/cache@v2 + with: + path: node_modules + key: ${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 45b9d7e2d8..e58299929d 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -43,6 +43,11 @@ jobs: key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- + - name: cache node_modules + uses: actions/cache@v2 + with: + path: node_modules + key: ${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: From a4a9777b61188bd62f4885cd854b4406c6e7a6ea Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 25 Aug 2020 09:04:00 +0200 Subject: [PATCH 167/656] workflows: remove duplicate storybook build already done by chromatic --- .github/workflows/ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 105642e284..0a0a335203 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -79,6 +79,3 @@ jobs: - name: verify plugin template run: yarn lerna -- run diff -- --check - - - name: verify storybook - run: yarn workspace storybook build-storybook From 9b514b1875ba8e6083befb1e316101fa3c181fe0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 25 Aug 2020 09:05:59 +0200 Subject: [PATCH 168/656] workflows: add yarn cache and frozen lockfile install for chromatic --- .../workflows/chromatic-storybook-test.yml | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/.github/workflows/chromatic-storybook-test.yml b/.github/workflows/chromatic-storybook-test.yml index e38b494a73..f7edd68ba9 100644 --- a/.github/workflows/chromatic-storybook-test.yml +++ b/.github/workflows/chromatic-storybook-test.yml @@ -14,7 +14,31 @@ jobs: - uses: actions/checkout@v2 with: fetch-depth: 0 # Required to retrieve git history - - run: yarn install && yarn build-storybook + + - name: find location of global yarn cache + id: yarn-cache + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: cache global yarn cache + uses: actions/cache@v2 + with: + path: ${{ steps.yarn-cache.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - name: cache node_modules + uses: actions/cache@v2 + with: + path: node_modules + key: ${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} + - name: use node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - run: yarn install --frozen-lockfile + + - run: yarn build-storybook + - uses: chromaui/action@v1 with: token: ${{ secrets.GITHUB_TOKEN }} From 7cd7e22e54301ec90a960e94d6767c45bc7b0c8e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 25 Aug 2020 09:48:44 +0200 Subject: [PATCH 169/656] chore(deps): bump @testing-library/jest-dom from 5.10.1 to 5.11.4 (#2095) Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 5.10.1 to 5.11.4. - [Release notes](https://github.com/testing-library/jest-dom/releases) - [Changelog](https://github.com/testing-library/jest-dom/blob/master/CHANGELOG.md) - [Commits](https://github.com/testing-library/jest-dom/compare/v5.10.1...v5.11.4) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 53 ++++++++++++++++++++++------------------------------- 1 file changed, 22 insertions(+), 31 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2ad2111e29..ed00552d62 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4326,17 +4326,16 @@ pretty-format "^25.5.0" "@testing-library/jest-dom@^5.10.1": - version "5.10.1" - resolved "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.10.1.tgz#6508a9f007bd74e5d3c0b3135b668027ab663989" - integrity sha512-uv9lLAnEFRzwUTN/y9lVVXVXlEzazDkelJtM5u92PsGkEasmdI+sfzhZHxSDzlhZVTrlLfuMh2safMr8YmzXLg== + version "5.11.4" + resolved "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.11.4.tgz#f325c600db352afb92995c2576022b35621ddc99" + integrity sha512-6RRn3epuweBODDIv3dAlWjOEHQLpGJHB2i912VS3JQtsD22+ENInhdDNl4ZZQiViLlIfFinkSET/J736ytV9sw== dependencies: "@babel/runtime" "^7.9.2" "@types/testing-library__jest-dom" "^5.9.1" + aria-query "^4.2.2" chalk "^3.0.0" - css "^2.2.4" + css "^3.0.0" css.escape "^1.5.1" - jest-diff "^25.1.0" - jest-matcher-utils "^25.1.0" lodash "^4.17.15" redent "^3.0.0" @@ -8801,15 +8800,14 @@ css.escape@1.5.1, css.escape@^1.5.1: resolved "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= -css@^2.2.4: - version "2.2.4" - resolved "https://registry.npmjs.org/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" - integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== +css@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" + integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== dependencies: - inherits "^2.0.3" + inherits "^2.0.4" source-map "^0.6.1" - source-map-resolve "^0.5.2" - urix "^0.1.0" + source-map-resolve "^0.6.0" cssesc@^3.0.0: version "3.0.0" @@ -13880,7 +13878,7 @@ jest-css-modules@^2.1.0: dependencies: identity-obj-proxy "3.0.0" -jest-diff@^25.1.0, jest-diff@^25.2.1: +jest-diff@^25.2.1: version "25.5.0" resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== @@ -13957,11 +13955,6 @@ jest-fetch-mock@^3.0.3: cross-fetch "^3.0.4" promise-polyfill "^8.1.3" -jest-get-type@^25.1.0: - version "25.1.0" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.1.0.tgz#1cfe5fc34f148dc3a8a3b7275f6b9ce9e2e8a876" - integrity sha512-yWkBnT+5tMr8ANB6V+OjmrIJufHtCAqI5ic2H40v+tRqxDmE0PGnIiTyvRWFOMtmVHYpwRqyazDbTnhpjsGvLw== - jest-get-type@^25.2.6: version "25.2.6" resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" @@ -14023,16 +14016,6 @@ jest-leak-detector@^26.0.1: jest-get-type "^26.0.0" pretty-format "^26.0.1" -jest-matcher-utils@^25.1.0: - version "25.1.0" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.1.0.tgz#fa5996c45c7193a3c24e73066fc14acdee020220" - integrity sha512-KGOAFcSFbclXIFE7bS4C53iYobKI20ZWleAdAFun4W1Wz1Kkej8Ng6RRbhL8leaEvIOjGXhGf/a1JjO8bkxIWQ== - dependencies: - chalk "^3.0.0" - jest-diff "^25.1.0" - jest-get-type "^25.1.0" - pretty-format "^25.1.0" - jest-matcher-utils@^26.0.1: version "26.0.1" resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.0.1.tgz#12e1fc386fe4f14678f4cc8dbd5ba75a58092911" @@ -18329,7 +18312,7 @@ pretty-format@^24.3.0: ansi-styles "^3.2.0" react-is "^16.8.4" -pretty-format@^25.1.0, pretty-format@^25.2.1, pretty-format@^25.5.0: +pretty-format@^25.2.1, pretty-format@^25.5.0: version "25.5.0" resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== @@ -20764,7 +20747,7 @@ source-list-map@^2.0.0: resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: +source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== @@ -20775,6 +20758,14 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: source-map-url "^0.4.0" urix "^0.1.0" +source-map-resolve@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" + integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== + dependencies: + 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: version "0.5.19" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" From 80089ed32eb9909f9965ab48543bb550d55f89fc Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 25 Aug 2020 09:49:13 +0200 Subject: [PATCH 170/656] chore(deps-dev): bump @types/supertest from 2.0.9 to 2.0.10 (#2094) Bumps [@types/supertest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/supertest) from 2.0.9 to 2.0.10. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/supertest) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index ed00552d62..857b8b2cc0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5264,9 +5264,9 @@ "@types/node" "*" "@types/supertest@^2.0.8": - version "2.0.9" - resolved "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.9.tgz#049bddbcb0ee0d60a9b836ccc977d813a1c32325" - integrity sha512-0BTpWWWAO1+uXaP/oA0KW1eOZv4hc0knhrWowV06Gwwz3kqQxNO98fUFM2e15T+PdPRmOouNFrYvaBgdojPJ3g== + version "2.0.10" + resolved "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.10.tgz#630d79b4d82c73e043e43ff777a9ca98d457cab7" + integrity sha512-Xt8TbEyZTnD5Xulw95GLMOkmjGICrOQyJ2jqgkSjAUR3mm7pAIzSR0NFBaMcwlzVvlpCjNwbATcWWwjNiZiFrQ== dependencies: "@types/superagent" "*" From ce6205146134d92741d0986f119d747ac381be6d Mon Sep 17 00:00:00 2001 From: Joel Low Date: Mon, 24 Aug 2020 16:59:09 +0800 Subject: [PATCH 171/656] feat: support specifying lint output format --- packages/cli/src/commands/lint.ts | 2 +- packages/cli/src/index.ts | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/commands/lint.ts b/packages/cli/src/commands/lint.ts index b355939e55..7b4532ffa7 100644 --- a/packages/cli/src/commands/lint.ts +++ b/packages/cli/src/commands/lint.ts @@ -22,7 +22,7 @@ export default async (cmd: Command, cmdArgs: string[]) => { const args = [ '--ext=js,jsx,ts,tsx', '--max-warnings=0', - '--format=eslint-formatter-friendly', + `--format=${cmd.format}`, ...(cmdArgs ?? [paths.targetDir]), ]; if (cmd.fix) { diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 4b9dc4bab7..742e05f34a 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -113,6 +113,11 @@ const main = (argv: string[]) => { program .command('lint') + .option( + '--format ', + 'Lint report output format', + 'eslint-formatter-friendly', + ) .option('--fix', 'Attempt to automatically fix violations') .description('Lint a package') .action(lazyAction(() => import('./commands/lint'), 'default')); From e323e1691b03f869253e2429aae8f5b77054641b Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Tue, 25 Aug 2020 12:07:12 +0200 Subject: [PATCH 172/656] update tags to be lowercased in docs template (#2104) * update tags to be lowercased in docs template * Update template.yaml --- .../sample-templates/docs-template/template.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/scaffolder-backend/sample-templates/docs-template/template.yaml b/plugins/scaffolder-backend/sample-templates/docs-template/template.yaml index 01ebdadbce..da2152280d 100644 --- a/plugins/scaffolder-backend/sample-templates/docs-template/template.yaml +++ b/plugins/scaffolder-backend/sample-templates/docs-template/template.yaml @@ -5,9 +5,9 @@ metadata: title: Documentation Template description: Create a new standalone documentation project tags: - - Experimental - - TechDocs - - MkDocs + - experimental + - techdocs + - mkdocs spec: owner: spotify/techdocs-core templater: cookiecutter @@ -26,4 +26,4 @@ spec: title: Description type: string description: Description of the component - \ No newline at end of file + From d42c09c0586b4dded79c1d5798a91001a8b3eb0b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 25 Aug 2020 12:13:09 +0200 Subject: [PATCH 173/656] workflows: use new multi-path caching to completely cache node_modules + prep for composite action --- .../workflows/chromatic-storybook-test.yml | 40 ++++++++------ .github/workflows/ci.yml | 54 ++++++++++++------- .github/workflows/e2e-win.yml | 38 +++++++------ .github/workflows/e2e.yml | 38 +++++++------ .github/workflows/master-win.yml | 38 +++++++------ .github/workflows/master.yml | 37 +++++++------ .github/workflows/microsite-build-check.yml | 38 ++++++------- .../microsite-with-storybook-deploy.yml | 38 ++++++------- 8 files changed, 188 insertions(+), 133 deletions(-) diff --git a/.github/workflows/chromatic-storybook-test.yml b/.github/workflows/chromatic-storybook-test.yml index f7edd68ba9..0bcaf400d0 100644 --- a/.github/workflows/chromatic-storybook-test.yml +++ b/.github/workflows/chromatic-storybook-test.yml @@ -15,27 +15,33 @@ jobs: with: fetch-depth: 0 # Required to retrieve git history - - name: find location of global yarn cache - id: yarn-cache - run: echo "::set-output name=dir::$(yarn cache dir)" - - name: cache global yarn cache - uses: actions/cache@v2 - with: - path: ${{ steps.yarn-cache.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - name: cache node_modules - uses: actions/cache@v2 - with: - path: node_modules - key: ${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} + # Beginning of yarn setup, keep in sync between all workflows, see ci.yml - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - - - run: yarn install --frozen-lockfile + registry-url: https://registry.npmjs.org/ # Needed for auth + - name: cache all node_modules + id: cache-modules + uses: actions/cache@v2 + with: + path: '**/node_modules' + key: ${{ runner.os }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }} + - name: find location of global yarn cache + id: yarn-cache + if: steps.cache-modules.outputs.cache-hit != 'true' + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: cache global yarn cache + uses: actions/cache@v2 + if: steps.cache-modules.outputs.cache-hit != 'true' + with: + path: ${{ steps.yarn-cache.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - name: yarn install + run: yarn install --frozen-lockfile + # End of yarn setup - run: yarn build-storybook diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a0a335203..9d0a37cd1d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,34 +20,52 @@ jobs: - uses: actions/checkout@v2 - name: fetch branch master run: git fetch origin master - - name: find location of global yarn cache - id: yarn-cache - run: echo "::set-output name=dir::$(yarn cache dir)" - - name: cache global yarn cache - uses: actions/cache@v2 - with: - path: ${{ steps.yarn-cache.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - name: cache node_modules - uses: actions/cache@v2 - with: - path: node_modules - key: ${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} + + # Beginning of yarn setup, keep in sync between all workflows. + # TODO(Rugvip): move this to composite action once all features we use are supported - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} + registry-url: https://registry.npmjs.org/ # Needed for auth + + # Cache every node_modules folder inside the monorepo + - name: cache all node_modules + id: cache-modules + uses: actions/cache@v2 + with: + path: '**/node_modules' + # We use both yarn.lock and package.json as cache keys to ensure that + # changes to local monorepo packages bust the cache. + key: ${{ runner.os }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }} + + # If we get a cache hit for node_modules, there's no need to bring in the global + # yarn cache or run yarn install, as all dependencies will be installed already. + + - name: find location of global yarn cache + id: yarn-cache + if: steps.cache-modules.outputs.cache-hit != 'true' + run: echo "::set-output name=dir::$(yarn cache dir)" + + - name: cache global yarn cache + uses: actions/cache@v2 + if: steps.cache-modules.outputs.cache-hit != 'true' + with: + path: ${{ steps.yarn-cache.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + + - name: yarn install + if: steps.cache-modules.outputs.cache-hit != 'true' + run: yarn install --frozen-lockfile + # End of yarn setup - name: check for yarn.lock changes id: yarn-lock run: git diff --quiet origin/master HEAD -- yarn.lock continue-on-error: true - - name: yarn install - run: yarn install --frozen-lockfile - - name: verify doc links run: node docs/verify-links.js diff --git a/.github/workflows/e2e-win.yml b/.github/workflows/e2e-win.yml index 448a61678c..37cb13ffbe 100644 --- a/.github/workflows/e2e-win.yml +++ b/.github/workflows/e2e-win.yml @@ -26,27 +26,35 @@ jobs: name: Node ${{ matrix.node-version }} on ${{ matrix.os }} steps: - uses: actions/checkout@v2 - - name: find location of global yarn cache - id: yarn-cache - run: echo "::set-output name=dir::$(yarn cache dir)" - - name: cache global yarn cache - uses: actions/cache@v2 - with: - path: ${{ steps.yarn-cache.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - name: cache node_modules - uses: actions/cache@v2 - with: - path: node_modules - key: ${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} + + # Beginning of yarn setup, keep in sync between all workflows, see ci.yml - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} + registry-url: https://registry.npmjs.org/ # Needed for auth + - name: cache all node_modules + id: cache-modules + uses: actions/cache@v2 + with: + path: '**/node_modules' + key: ${{ runner.os }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }} + - name: find location of global yarn cache + id: yarn-cache + if: steps.cache-modules.outputs.cache-hit != 'true' + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: cache global yarn cache + uses: actions/cache@v2 + if: steps.cache-modules.outputs.cache-hit != 'true' + with: + path: ${{ steps.yarn-cache.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- - name: yarn install run: yarn install --frozen-lockfile + # End of yarn setup + - run: yarn tsc - name: yarn build run: yarn build --ignore example-app --ignore example-backend --ignore @techdocs/cli --ignore backstage-microsite diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index e58299929d..401fe7297a 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -33,27 +33,35 @@ jobs: name: Node ${{ matrix.node-version }} on ${{ matrix.os }} steps: - uses: actions/checkout@v2 - - name: find location of global yarn cache - id: yarn-cache - run: echo "::set-output name=dir::$(yarn cache dir)" - - name: cache global yarn cache - uses: actions/cache@v2 - with: - path: ${{ steps.yarn-cache.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - name: cache node_modules - uses: actions/cache@v2 - with: - path: node_modules - key: ${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} + + # Beginning of yarn setup, keep in sync between all workflows, see ci.yml - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} + registry-url: https://registry.npmjs.org/ # Needed for auth + - name: cache all node_modules + id: cache-modules + uses: actions/cache@v2 + with: + path: '**/node_modules' + key: ${{ runner.os }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }} + - name: find location of global yarn cache + id: yarn-cache + if: steps.cache-modules.outputs.cache-hit != 'true' + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: cache global yarn cache + uses: actions/cache@v2 + if: steps.cache-modules.outputs.cache-hit != 'true' + with: + path: ${{ steps.yarn-cache.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- - name: yarn install run: yarn install --frozen-lockfile + # End of yarn setup + - run: yarn tsc - name: yarn build run: yarn build --ignore example-app --ignore example-backend --ignore @techdocs/cli --ignore backstage-microsite diff --git a/.github/workflows/master-win.yml b/.github/workflows/master-win.yml index 074f944250..b5a042a236 100644 --- a/.github/workflows/master-win.yml +++ b/.github/workflows/master-win.yml @@ -18,29 +18,35 @@ jobs: steps: - uses: actions/checkout@v2 - - name: find location of global yarn cache - id: yarn-cache - run: echo "::set-output name=dir::$(yarn cache dir)" - - name: cache global yarn cache - uses: actions/cache@v2 - with: - path: ${{ steps.yarn-cache.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - name: cache node_modules - uses: actions/cache@v2 - with: - path: node_modules - key: ${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} + + # Beginning of yarn setup, keep in sync between all workflows, see ci.yml - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - + - name: cache all node_modules + id: cache-modules + uses: actions/cache@v2 + with: + path: '**/node_modules' + key: ${{ runner.os }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }} + - name: find location of global yarn cache + id: yarn-cache + if: steps.cache-modules.outputs.cache-hit != 'true' + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: cache global yarn cache + uses: actions/cache@v2 + if: steps.cache-modules.outputs.cache-hit != 'true' + with: + path: ${{ steps.yarn-cache.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- - name: yarn install run: yarn install --frozen-lockfile + # End of yarn setup + # Tests are broken on Windows, disabled for now # - name: test diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 805095ec53..04b50c3e60 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -18,29 +18,34 @@ jobs: steps: - uses: actions/checkout@v2 - - name: find location of global yarn cache - id: yarn-cache - run: echo "::set-output name=dir::$(yarn cache dir)" - - name: cache global yarn cache - uses: actions/cache@v2 - with: - path: ${{ steps.yarn-cache.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - name: cache node_modules - uses: actions/cache@v2 - with: - path: node_modules - key: ${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} + + # Beginning of yarn setup, keep in sync between all workflows, see ci.yml - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - + - name: cache all node_modules + id: cache-modules + uses: actions/cache@v2 + with: + path: '**/node_modules' + key: ${{ runner.os }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }} + - name: find location of global yarn cache + id: yarn-cache + if: steps.cache-modules.outputs.cache-hit != 'true' + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: cache global yarn cache + uses: actions/cache@v2 + if: steps.cache-modules.outputs.cache-hit != 'true' + with: + path: ${{ steps.yarn-cache.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- - name: yarn install run: yarn install --frozen-lockfile + # End of yarn setup - name: lint run: yarn lerna -- run lint diff --git a/.github/workflows/microsite-build-check.yml b/.github/workflows/microsite-build-check.yml index 41f43399ca..dc86ca2630 100644 --- a/.github/workflows/microsite-build-check.yml +++ b/.github/workflows/microsite-build-check.yml @@ -21,32 +21,34 @@ jobs: steps: - uses: actions/checkout@v2 - - name: find location of global yarn cache - id: yarn-cache - run: echo "::set-output name=dir::$(yarn cache dir)" - - - name: cache global yarn cache - uses: actions/cache@v2 - with: - path: ${{ steps.yarn-cache.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: cache node_modules - uses: actions/cache@v2 - with: - path: node_modules - key: ${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} + # Beginning of yarn setup, keep in sync between all workflows, see ci.yml - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - + - name: cache all node_modules + id: cache-modules + uses: actions/cache@v2 + with: + path: '**/node_modules' + key: ${{ runner.os }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }} + - name: find location of global yarn cache + id: yarn-cache + if: steps.cache-modules.outputs.cache-hit != 'true' + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: cache global yarn cache + uses: actions/cache@v2 + if: steps.cache-modules.outputs.cache-hit != 'true' + with: + path: ${{ steps.yarn-cache.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- - name: yarn install run: yarn install --frozen-lockfile + # End of yarn setup - name: build microsite run: yarn workspace backstage-microsite build diff --git a/.github/workflows/microsite-with-storybook-deploy.yml b/.github/workflows/microsite-with-storybook-deploy.yml index 84ac6f9490..2c8b8af40c 100644 --- a/.github/workflows/microsite-with-storybook-deploy.yml +++ b/.github/workflows/microsite-with-storybook-deploy.yml @@ -25,32 +25,34 @@ jobs: steps: - uses: actions/checkout@v2 - - name: find location of global yarn cache - id: yarn-cache - run: echo "::set-output name=dir::$(yarn cache dir)" - - - name: cache global yarn cache - uses: actions/cache@v2 - with: - path: ${{ steps.yarn-cache.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: cache node_modules - uses: actions/cache@v2 - with: - path: node_modules - key: ${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} + # Beginning of yarn setup, keep in sync between all workflows, see ci.yml - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - + - name: cache all node_modules + id: cache-modules + uses: actions/cache@v2 + with: + path: '**/node_modules' + key: ${{ runner.os }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }} + - name: find location of global yarn cache + id: yarn-cache + if: steps.cache-modules.outputs.cache-hit != 'true' + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: cache global yarn cache + uses: actions/cache@v2 + if: steps.cache-modules.outputs.cache-hit != 'true' + with: + path: ${{ steps.yarn-cache.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- - name: yarn install run: yarn install --frozen-lockfile + # End of yarn setup - name: build microsite run: yarn workspace backstage-microsite build From ff888ebc8c667a5e5eead8c21f12c81a1d928f79 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 25 Aug 2020 13:19:39 +0200 Subject: [PATCH 174/656] cli-common: remove dev dep on cli --- packages/cli-common/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/cli-common/package.json b/packages/cli-common/package.json index 80cc665426..5e050210da 100644 --- a/packages/cli-common/package.json +++ b/packages/cli-common/package.json @@ -29,7 +29,6 @@ "clean": "backstage-cli clean" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.19", "@types/jest": "^26.0.7", "@types/node": "^12.0.0" }, From bc883377fd1f4352b78c3e0e4bfbba196c2af32e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 25 Aug 2020 13:22:54 +0200 Subject: [PATCH 175/656] workflows: no need to include deps in build for tests --- .github/workflows/ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 105642e284..610a1cd7a9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,8 +59,7 @@ jobs: - name: build changed packages if: ${{ steps.yarn-lock.outcome == 'success' }} - # Need to build all dependencies as well to be able to run tests later - run: yarn lerna -- run build --since origin/master --include-dependencies + run: yarn lerna -- run build --since origin/master - name: build all packages if: ${{ steps.yarn-lock.outcome == 'failure' }} From 4665a2f5d46335b23d36bb54ebbba886808ce278 Mon Sep 17 00:00:00 2001 From: Sebastian Qvarfordt Date: Tue, 25 Aug 2020 13:57:57 +0200 Subject: [PATCH 176/656] Added selectedTabId param to generatePath in JobStatusModal (#2109) * Added selectedTabId param to generatePath in JobStatusModal * Added selectedTabId to generatePath in ApiCatalogTable * Link to default entity tab in JobStatusModal --- .../src/components/ApiCatalogTable/ApiCatalogTable.tsx | 1 + .../src/components/JobStatusModal/JobStatusModal.tsx | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/api-docs/src/components/ApiCatalogTable/ApiCatalogTable.tsx b/plugins/api-docs/src/components/ApiCatalogTable/ApiCatalogTable.tsx index e30583caed..99848637b6 100644 --- a/plugins/api-docs/src/components/ApiCatalogTable/ApiCatalogTable.tsx +++ b/plugins/api-docs/src/components/ApiCatalogTable/ApiCatalogTable.tsx @@ -37,6 +37,7 @@ const columns: TableColumn[] = [ .filter(Boolean) .join(':'), kind: entity.kind, + selectedTabId: 'overview', })} > {entity.metadata.name} diff --git a/plugins/scaffolder/src/components/JobStatusModal/JobStatusModal.tsx b/plugins/scaffolder/src/components/JobStatusModal/JobStatusModal.tsx index c6ed55c92c..f5a592b7b7 100644 --- a/plugins/scaffolder/src/components/JobStatusModal/JobStatusModal.tsx +++ b/plugins/scaffolder/src/components/JobStatusModal/JobStatusModal.tsx @@ -26,7 +26,7 @@ import { useJobPolling } from './useJobPolling'; import { Job } from '../../types'; import { TemplateEntityV1alpha1 } from '@backstage/catalog-model'; import { Button } from '@backstage/core'; -import { entityRoute } from '@backstage/plugin-catalog'; +import { entityRouteDefault } from '@backstage/plugin-catalog'; import { generatePath } from 'react-router-dom'; type Props = { @@ -72,7 +72,7 @@ export const JobStatusModal = ({ {entity && ( + ) : null} - ) : null}
+ + Build Log + + + {jobsStatus.loading + ? + : jobsStatus.error + ? + Failed to load build, {jobsStatus.error.message} + + : jobsArray.map( + (job) => ( + + ), + ) + } +
); }; diff --git a/plugins/github-actions/src/components/BuildSteps/BuildSteps.tsx b/plugins/github-actions/src/components/BuildSteps/BuildSteps.tsx new file mode 100644 index 0000000000..d6b117246a --- /dev/null +++ b/plugins/github-actions/src/components/BuildSteps/BuildSteps.tsx @@ -0,0 +1,182 @@ +/* + * Copyright 2020 Spotify AB + * + * 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, { useState, FC, Suspense, useEffect } from 'react'; +import { + ExpansionPanel, + ExpansionPanelSummary, + Typography, + ExpansionPanelDetails, + LinearProgress, +} from '@material-ui/core'; +import moment from 'moment'; +import CheckCircleRoundedIcon from '@material-ui/icons/CheckCircleRounded'; +import ErrorRoundedIcon from '@material-ui/icons/ErrorRounded'; +import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; +import { makeStyles } from '@material-ui/core/styles'; +import LinePart from 'react-lazylog/build/LinePart'; +const LazyLog = React.lazy(() => import('react-lazylog/build/LazyLog')); +moment.relativeTimeThreshold('ss', 0); +const useStyles = makeStyles(theme => ({ + expansionPanelDetails: { + padding: 0, + }, + button: { + order: -1, + marginRight: 0, + marginLeft: '-20px', + }, + neutral: {}, + failed: { + position: 'relative', + '&:after': { + pointerEvents: 'none', + content: '""', + position: 'absolute', + top: 0, + right: 0, + left: 0, + bottom: 0, + boxShadow: `inset 4px 0px 0px ${theme.palette.error.main}`, + }, + }, + running: { + position: 'relative', + '&:after': { + pointerEvents: 'none', + content: '""', + position: 'absolute', + top: 0, + right: 0, + left: 0, + bottom: 0, + boxShadow: `inset 4px 0px 0px ${theme.palette.info.main}`, + }, + }, + cardContent: { + backgroundColor: theme.palette.background.default, + }, + success: { + position: 'relative', + '&:after': { + pointerEvents: 'none', + content: '""', + position: 'absolute', + top: 0, + right: 0, + left: 0, + bottom: 0, + color: 'green', + boxShadow: `inset 4px 0px 0px ${theme.palette.success.main}`, + }, + }, +})); + +const pickClassName = ( + classes: ReturnType, + build: any, + ) => { + if (build === 'failed') return classes.failed; + if (['running', 'queued'].includes(build!)) return classes.running; + if (build === 'success') return classes.success; + return classes.neutral; + }; + +const timeElapsed = ( + start: string, + end: string, + humanize: boolean = false +) => { + if(humanize){ + return moment.duration( + moment(start|| moment()).diff(moment(end)), + ).humanize(); + }else{ + return moment.duration( + moment(start|| moment()).diff(moment(end)), + ).asSeconds(); + } +} + +export const BuildSteps: FC<{ + runData: { + jobName: string, + jobStart: string, + jobEnd: string, + jobStatus: string, + steps: Array + }; +}> = ({ runData }) => { + const classes = useStyles(); + const [messages, setMessages] = useState([] as any); + + useEffect(() => { + if(runData.steps !== undefined){ + console.log(runData.steps) + setMessages(runData.steps.map( + ({ name, completed_at, started_at }: { + name: string; completed_at: string; started_at: string; + }) => `${name} ${timeElapsed(started_at, completed_at)}s` + )); + } + }, [runData.steps]) + + return ( + + } + aria-controls={`panel-${runData.jobName}-content`} + id={`panel-${runData.jobName}-header`} + > + { + runData.jobStatus == 'success' ? + + : + } + + {runData.jobName || "No Run Logs"} {`(${timeElapsed(runData.jobStart, runData.jobEnd, true)})` || ""} + + + + {messages.length === 0 ? ( + 'Nothing here...' + ) : ( + }> +
+ { + if(line.toLocaleLowerCase().includes("error") + || line.toLocaleLowerCase().includes("failed") + || line.toLocaleLowerCase().includes("failure")) + { + return + } + return line; + }} + /> +
+
+ )} +
+
+ ); +}; \ No newline at end of file diff --git a/plugins/github-actions/src/components/BuildSteps/index.ts b/plugins/github-actions/src/components/BuildSteps/index.ts new file mode 100644 index 0000000000..ef173b9895 --- /dev/null +++ b/plugins/github-actions/src/components/BuildSteps/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { BuildSteps } from './BuildSteps'; From ea010b7d39f55dd6fb70988bbfbfb396b2178239 Mon Sep 17 00:00:00 2001 From: NetPenguins Date: Sat, 29 Aug 2020 10:25:34 -0400 Subject: [PATCH 250/656] Eliminated console.log line that was carried over. --- .../github-actions/src/components/BuildSteps/BuildSteps.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/github-actions/src/components/BuildSteps/BuildSteps.tsx b/plugins/github-actions/src/components/BuildSteps/BuildSteps.tsx index d6b117246a..dd01bb5814 100644 --- a/plugins/github-actions/src/components/BuildSteps/BuildSteps.tsx +++ b/plugins/github-actions/src/components/BuildSteps/BuildSteps.tsx @@ -124,7 +124,6 @@ export const BuildSteps: FC<{ useEffect(() => { if(runData.steps !== undefined){ - console.log(runData.steps) setMessages(runData.steps.map( ({ name, completed_at, started_at }: { name: string; completed_at: string; started_at: string; @@ -179,4 +178,4 @@ export const BuildSteps: FC<{ ); -}; \ No newline at end of file +}; From d8877d4b7ce1d155b720cda24292e6fcb1f279a1 Mon Sep 17 00:00:00 2001 From: Andrew Thauer <6507159+andrewthauer@users.noreply.github.com> Date: Sat, 29 Aug 2020 17:25:35 -0400 Subject: [PATCH 251/656] feat: make lighthouse url configurable --- app-config.yaml | 3 +++ packages/app/src/App.test.tsx | 3 +++ packages/app/src/apis.ts | 2 +- plugins/lighthouse/README.md | 18 +++++++++++++----- plugins/lighthouse/package.json | 1 + plugins/lighthouse/src/api.ts | 5 +++++ 6 files changed, 26 insertions(+), 6 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index 2efe6adc32..09659e88ab 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -44,6 +44,9 @@ newrelic: baseUrl: 'https://api.newrelic.com/v2' key: NEW_RELIC_REST_API_KEY +lighthouse: + baseUrl: http://localhost:3003 + catalog: exampleEntityLocations: github: diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx index ec291a752b..cddd093855 100644 --- a/packages/app/src/App.test.tsx +++ b/packages/app/src/App.test.tsx @@ -27,6 +27,9 @@ describe('App', () => { data: { app: { title: 'Test' }, backend: { baseUrl: 'http://localhost:7000' }, + lighthouse: { + baseUrl: 'http://localhost:3003', + }, techdocs: { storageUrl: 'http://localhost:7000/techdocs/static/docs', }, diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index eedd07ed08..15bf6ffd76 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -114,7 +114,7 @@ export const apis = (config: ConfigApi) => { builder.add(featureFlagsApiRef, new FeatureFlags()); - builder.add(lighthouseApiRef, new LighthouseRestApi('http://localhost:3003')); + builder.add(lighthouseApiRef, LighthouseRestApi.fromConfig(config)); builder.add(travisCIApiRef, new TravisCIApi()); builder.add(githubPullRequestsApiRef, new GithubPullRequestsClient()); diff --git a/plugins/lighthouse/README.md b/plugins/lighthouse/README.md index 337e0f9533..b5fecb85f8 100644 --- a/plugins/lighthouse/README.md +++ b/plugins/lighthouse/README.md @@ -36,16 +36,24 @@ your [`apis.ts`](https://github.com/spotify/backstage/blob/master/packages/app/s ```js import { ApiHolder, ApiRegistry } from '@backstage/core'; +import { Config } from '@backstage/config'; import { lighthouseApiRef, LighthouseRestApi, } from '@backstage/plugin-lighthouse'; -const builder = ApiRegistry.builder(); +export const apis = (config: ConfigApi) => { + const builder = ApiRegistry.builder(); -export const lighthouseApi = - new LighthouseRestApi(/* your service url here! */); -builder.add(lighthouseApiRef, lighthouseApi); + builder.add(lighthouseApiRef, LighthouseRestApi.fromConfig(config)); -export default builder.build() as ApiHolder; + return builder.build() as ApiHolder; +} +``` + +Then configure the lighthouse service url in your [`app-config.yaml`](https://github.com/spotify/backstage/blob/master/app-config.yaml). + +```yaml +lighthouse: + baseUrl: http://your-service-url ``` diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index b75207b4cf..12cff879c0 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -21,6 +21,7 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { + "@backstage/config": "^0.1.1-alpha.20", "@backstage/core": "^0.1.1-alpha.20", "@backstage/theme": "^0.1.1-alpha.20", "@material-ui/core": "^4.9.1", diff --git a/plugins/lighthouse/src/api.ts b/plugins/lighthouse/src/api.ts index 9c656c88ef..5b6cd9aae7 100644 --- a/plugins/lighthouse/src/api.ts +++ b/plugins/lighthouse/src/api.ts @@ -15,6 +15,7 @@ */ import { createApiRef } from '@backstage/core'; +import { Config } from '@backstage/config'; export type LighthouseCategoryId = | 'pwa' @@ -111,6 +112,10 @@ export const lighthouseApiRef = createApiRef({ }); export class LighthouseRestApi implements LighthouseApi { + static fromConfig(config: Config) { + return new LighthouseRestApi(config.getString('lighthouse.baseUrl')); + } + constructor(public url: string) {} private async fetch(input: string, init?: RequestInit): Promise { From 13623d9185b0a6613df4214dbf8eed31114ee504 Mon Sep 17 00:00:00 2001 From: Omer Farooq Date: Sun, 30 Aug 2020 19:36:28 +1200 Subject: [PATCH 252/656] change getOptional to getOptionalString --- .../AzureApiReaderProcessor.test.ts | 12 ++++++++-- .../processors/AzureApiReaderProcessor.ts | 5 ++-- .../BitbucketApiReaderProcessor.test.ts | 23 +++++++++++++++---- .../processors/BitbucketApiReaderProcessor.ts | 10 ++++---- .../GithubApiReaderProcessor.test.ts | 22 ++++++++++++++++-- .../processors/GithubApiReaderProcessor.ts | 5 ++-- .../GitlabApiReaderProcessor.test.ts | 14 +++++++++-- .../processors/GitlabApiReaderProcessor.ts | 5 ++-- 8 files changed, 71 insertions(+), 25 deletions(-) diff --git a/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.test.ts b/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.test.ts index 182343133e..62259f87a2 100644 --- a/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.test.ts +++ b/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.test.ts @@ -89,6 +89,8 @@ describe('AzureApiReaderProcessor', () => { expect: { headers: {}, }, + err: + "Invalid type in config for key 'catalog.processors.azureApi.privateToken' in '', got empty-string, wanted string", }, { token: undefined, @@ -99,8 +101,14 @@ describe('AzureApiReaderProcessor', () => { ]; for (const test of tests) { - const processor = new AzureApiReaderProcessor(createConfig(test.token)); - expect(processor.getRequestOptions()).toEqual(test.expect); + if (test.err) { + expect( + () => new AzureApiReaderProcessor(createConfig(test.token)), + ).toThrowError(test.err); + } else { + const processor = new AzureApiReaderProcessor(createConfig(test.token)); + expect(processor.getRequestOptions()).toEqual(test.expect); + } } }); }); diff --git a/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.ts b/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.ts index 02b0981a27..7033521da6 100644 --- a/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.ts +++ b/plugins/catalog-backend/src/ingestion/processors/AzureApiReaderProcessor.ts @@ -25,9 +25,8 @@ export class AzureApiReaderProcessor implements LocationProcessor { constructor(config: Config) { this.privateToken = - (config.getOptional( - 'catalog.processors.azureApi.privateToken', - ) as string) ?? ''; + config.getOptionalString('catalog.processors.azureApi.privateToken') ?? + ''; } getRequestOptions(): RequestInit { diff --git a/plugins/catalog-backend/src/ingestion/processors/BitbucketApiReaderProcessor.test.ts b/plugins/catalog-backend/src/ingestion/processors/BitbucketApiReaderProcessor.test.ts index 7d2a2c57de..953f0703be 100644 --- a/plugins/catalog-backend/src/ingestion/processors/BitbucketApiReaderProcessor.test.ts +++ b/plugins/catalog-backend/src/ingestion/processors/BitbucketApiReaderProcessor.test.ts @@ -89,6 +89,8 @@ describe('BitbucketApiReaderProcessor', () => { expect: { headers: {}, }, + err: + "Invalid type in config for key 'catalog.processors.bitbucketApi.username' in '', got empty-string, wanted string", }, { username: 'only-user-provided', @@ -96,6 +98,8 @@ describe('BitbucketApiReaderProcessor', () => { expect: { headers: {}, }, + err: + "Invalid type in config for key 'catalog.processors.bitbucketApi.appPassword' in '', got empty-string, wanted string", }, { username: '', @@ -103,6 +107,8 @@ describe('BitbucketApiReaderProcessor', () => { expect: { headers: {}, }, + err: + "Invalid type in config for key 'catalog.processors.bitbucketApi.username' in '', got empty-string, wanted string", }, { username: 'some-user', @@ -137,10 +143,19 @@ describe('BitbucketApiReaderProcessor', () => { ]; for (const test of tests) { - const processor = new BitbucketApiReaderProcessor( - createConfig(test.username, test.password), - ); - expect(processor.getRequestOptions()).toEqual(test.expect); + if (test.err) { + expect( + () => + new BitbucketApiReaderProcessor( + createConfig(test.username, test.password), + ), + ).toThrowError(test.err); + } else { + const processor = new BitbucketApiReaderProcessor( + createConfig(test.username, test.password), + ); + expect(processor.getRequestOptions()).toEqual(test.expect); + } } }); }); diff --git a/plugins/catalog-backend/src/ingestion/processors/BitbucketApiReaderProcessor.ts b/plugins/catalog-backend/src/ingestion/processors/BitbucketApiReaderProcessor.ts index 3e19d3cf78..97ecf0cd1f 100644 --- a/plugins/catalog-backend/src/ingestion/processors/BitbucketApiReaderProcessor.ts +++ b/plugins/catalog-backend/src/ingestion/processors/BitbucketApiReaderProcessor.ts @@ -26,13 +26,11 @@ export class BitbucketApiReaderProcessor implements LocationProcessor { constructor(config: Config) { this.username = - (config.getOptional( - 'catalog.processors.bitbucketApi.username', - ) as string) ?? ''; + config.getOptionalString('catalog.processors.bitbucketApi.username') ?? + ''; this.password = - (config.getOptional( - 'catalog.processors.bitbucketApi.appPassword', - ) as string) ?? ''; + config.getOptionalString('catalog.processors.bitbucketApi.appPassword') ?? + ''; } getRequestOptions(): RequestInit { diff --git a/plugins/catalog-backend/src/ingestion/processors/GithubApiReaderProcessor.test.ts b/plugins/catalog-backend/src/ingestion/processors/GithubApiReaderProcessor.test.ts index 31537954f5..51c3cf4cd0 100644 --- a/plugins/catalog-backend/src/ingestion/processors/GithubApiReaderProcessor.test.ts +++ b/plugins/catalog-backend/src/ingestion/processors/GithubApiReaderProcessor.test.ts @@ -95,6 +95,16 @@ describe('GithubApiReaderProcessor', () => { }, { token: '', + err: + "Invalid type in config for key 'catalog.processors.githubApi.privateToken' in '', got empty-string, wanted string", + expect: { + headers: { + Accept: 'application/vnd.github.v3.raw', + }, + }, + }, + { + token: undefined, expect: { headers: { Accept: 'application/vnd.github.v3.raw', @@ -104,8 +114,16 @@ describe('GithubApiReaderProcessor', () => { ]; for (const test of tests) { - const processor = new GithubApiReaderProcessor(createConfig(test.token)); - expect(processor.getRequestOptions()).toEqual(test.expect); + if (test.err) { + expect( + () => new GithubApiReaderProcessor(createConfig(test.token)), + ).toThrowError(test.err); + } else { + const processor = new GithubApiReaderProcessor( + createConfig(test.token), + ); + expect(processor.getRequestOptions()).toEqual(test.expect); + } } }); }); diff --git a/plugins/catalog-backend/src/ingestion/processors/GithubApiReaderProcessor.ts b/plugins/catalog-backend/src/ingestion/processors/GithubApiReaderProcessor.ts index 89e6c97ab1..f8d1d6caf8 100644 --- a/plugins/catalog-backend/src/ingestion/processors/GithubApiReaderProcessor.ts +++ b/plugins/catalog-backend/src/ingestion/processors/GithubApiReaderProcessor.ts @@ -25,9 +25,8 @@ export class GithubApiReaderProcessor implements LocationProcessor { constructor(config: Config) { this.privateToken = - (config.getOptional( - 'catalog.processors.githubApi.privateToken', - ) as string) ?? ''; + config.getOptionalString('catalog.processors.githubApi.privateToken') ?? + ''; } getRequestOptions(): RequestInit { diff --git a/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.test.ts b/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.test.ts index a239afee04..48ed270049 100644 --- a/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.test.ts +++ b/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.test.ts @@ -100,6 +100,8 @@ describe('GitlabApiReaderProcessor', () => { }, { token: '', + err: + "Invalid type in config for key 'catalog.processors.gitlabApi.privateToken' in '', got empty-string, wanted string", expect: { headers: { 'PRIVATE-TOKEN': '', @@ -117,8 +119,16 @@ describe('GitlabApiReaderProcessor', () => { ]; for (const test of tests) { - const processor = new GitlabApiReaderProcessor(createConfig(test.token)); - expect(processor.getRequestOptions()).toEqual(test.expect); + if (test.err) { + expect( + () => new GitlabApiReaderProcessor(createConfig(test.token)), + ).toThrowError(test.err); + } else { + const processor = new GitlabApiReaderProcessor( + createConfig(test.token), + ); + expect(processor.getRequestOptions()).toEqual(test.expect); + } } }); }); diff --git a/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.ts b/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.ts index 8915d73bb9..067edba3d9 100644 --- a/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.ts +++ b/plugins/catalog-backend/src/ingestion/processors/GitlabApiReaderProcessor.ts @@ -25,9 +25,8 @@ export class GitlabApiReaderProcessor implements LocationProcessor { constructor(config: Config) { this.privateToken = - (config.getOptional( - 'catalog.processors.gitlabApi.privateToken', - ) as string) ?? ''; + config.getOptionalString('catalog.processors.gitlabApi.privateToken') ?? + ''; } getRequestOptions(): RequestInit { From 298a9881ddf68b224877a3a6cf5572fe6849deb8 Mon Sep 17 00:00:00 2001 From: Omer Farooq Date: Sun, 30 Aug 2020 19:43:43 +1200 Subject: [PATCH 253/656] update casing --- app-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app-config.yaml b/app-config.yaml index aac8e233f0..5347fbe617 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -51,7 +51,7 @@ catalog: $secret: env: GITHUB_PRIVATE_TOKEN bitbucketApi: - userName: + username: $secret: env: BITBUCKET_USERNAME appPassword: From a31afed4c558f7023ea60af0f5235e377eb4991b Mon Sep 17 00:00:00 2001 From: NetPenguins Date: Sun, 30 Aug 2020 20:45:29 -0400 Subject: [PATCH 254/656] Update to include JobLog component. --- plugins/github-actions/package.json | 1 + .../src/api/GithubActionsApi.ts | 13 +- .../src/api/GithubActionsClient.ts | 15 +- plugins/github-actions/src/api/types.ts | 1 + .../src/components/BuildSteps/BuildSteps.tsx | 181 - .../WorkflowRunDetails/WorkflowRunDetails.tsx | 5 + .../WorkflowRunLogs/WorkflowRunLogs.tsx | 106 + .../{BuildSteps => WorkflowRunLogs}/index.ts | 2 +- .../useDownloadWorkflowRunLogs.ts | 35 + yarn.lock | 23263 ---------------- 10 files changed, 168 insertions(+), 23454 deletions(-) delete mode 100644 plugins/github-actions/src/components/BuildSteps/BuildSteps.tsx create mode 100644 plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx rename plugins/github-actions/src/components/{BuildSteps => WorkflowRunLogs}/index.ts (91%) create mode 100644 plugins/github-actions/src/components/WorkflowRunLogs/useDownloadWorkflowRunLogs.ts delete mode 100644 yarn.lock diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index 686f85e23e..87700cbba5 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -35,6 +35,7 @@ "moment": "^2.27.0", "react": "^16.13.1", "react-dom": "^16.13.1", + "react-lazylog": "^4.5.3", "react-router-dom": "6.0.0-beta.0", "react-use": "^15.3.3" }, diff --git a/plugins/github-actions/src/api/GithubActionsApi.ts b/plugins/github-actions/src/api/GithubActionsApi.ts index 97d9cfa914..4acb68296d 100644 --- a/plugins/github-actions/src/api/GithubActionsApi.ts +++ b/plugins/github-actions/src/api/GithubActionsApi.ts @@ -18,7 +18,7 @@ import { createApiRef } from '@backstage/core'; import { ActionsListWorkflowRunsForRepoResponseData, ActionsGetWorkflowResponseData, - ActionsGetWorkflowRunResponseData + ActionsGetWorkflowRunResponseData, } from '@octokit/types'; export const githubActionsApiRef = createApiRef({ @@ -75,4 +75,15 @@ export type GithubActionsApi = { repo: string; runId: number; }) => Promise; + downloadJobLogsForWorkflowRun: ({ + token, + owner, + repo, + runId, + }: { + token: string; + owner: string; + repo: string; + runId: number; + }) => Promise; }; diff --git a/plugins/github-actions/src/api/GithubActionsClient.ts b/plugins/github-actions/src/api/GithubActionsClient.ts index f14198e9d0..a3a68811db 100644 --- a/plugins/github-actions/src/api/GithubActionsClient.ts +++ b/plugins/github-actions/src/api/GithubActionsClient.ts @@ -20,7 +20,6 @@ import { ActionsListWorkflowRunsForRepoResponseData, ActionsGetWorkflowResponseData, ActionsGetWorkflowRunResponseData, - ActionsListJobsForWorkflowRunResponseData } from '@octokit/types'; export class GithubActionsClient implements GithubActionsApi { @@ -103,22 +102,22 @@ export class GithubActionsClient implements GithubActionsApi { }); return run.data; } - async listJobsForWorkflowRun({ + async downloadJobLogsForWorkflowRun({ token, owner, repo, - id, + runId, }: { token: string; owner: string; repo: string; - id: number; - }): Promise { - const workflow = await new Octokit({ auth: token }).actions.listJobsForWorkflowRun({ + runId: number; + }): Promise { + const workflow = await new Octokit({ auth: token }).actions.downloadJobLogsForWorkflowRun({ owner, repo, - run_id: id, + job_id: runId, }); return workflow.data; } -} +}; diff --git a/plugins/github-actions/src/api/types.ts b/plugins/github-actions/src/api/types.ts index cd74a20cda..ccc9198e58 100644 --- a/plugins/github-actions/src/api/types.ts +++ b/plugins/github-actions/src/api/types.ts @@ -29,6 +29,7 @@ export type Job = { conclusion: string; started_at: string; completed_at: string; + id: string; name: string; steps: Step[]; }; diff --git a/plugins/github-actions/src/components/BuildSteps/BuildSteps.tsx b/plugins/github-actions/src/components/BuildSteps/BuildSteps.tsx deleted file mode 100644 index dd01bb5814..0000000000 --- a/plugins/github-actions/src/components/BuildSteps/BuildSteps.tsx +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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, { useState, FC, Suspense, useEffect } from 'react'; -import { - ExpansionPanel, - ExpansionPanelSummary, - Typography, - ExpansionPanelDetails, - LinearProgress, -} from '@material-ui/core'; -import moment from 'moment'; -import CheckCircleRoundedIcon from '@material-ui/icons/CheckCircleRounded'; -import ErrorRoundedIcon from '@material-ui/icons/ErrorRounded'; -import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; -import { makeStyles } from '@material-ui/core/styles'; -import LinePart from 'react-lazylog/build/LinePart'; -const LazyLog = React.lazy(() => import('react-lazylog/build/LazyLog')); -moment.relativeTimeThreshold('ss', 0); -const useStyles = makeStyles(theme => ({ - expansionPanelDetails: { - padding: 0, - }, - button: { - order: -1, - marginRight: 0, - marginLeft: '-20px', - }, - neutral: {}, - failed: { - position: 'relative', - '&:after': { - pointerEvents: 'none', - content: '""', - position: 'absolute', - top: 0, - right: 0, - left: 0, - bottom: 0, - boxShadow: `inset 4px 0px 0px ${theme.palette.error.main}`, - }, - }, - running: { - position: 'relative', - '&:after': { - pointerEvents: 'none', - content: '""', - position: 'absolute', - top: 0, - right: 0, - left: 0, - bottom: 0, - boxShadow: `inset 4px 0px 0px ${theme.palette.info.main}`, - }, - }, - cardContent: { - backgroundColor: theme.palette.background.default, - }, - success: { - position: 'relative', - '&:after': { - pointerEvents: 'none', - content: '""', - position: 'absolute', - top: 0, - right: 0, - left: 0, - bottom: 0, - color: 'green', - boxShadow: `inset 4px 0px 0px ${theme.palette.success.main}`, - }, - }, -})); - -const pickClassName = ( - classes: ReturnType, - build: any, - ) => { - if (build === 'failed') return classes.failed; - if (['running', 'queued'].includes(build!)) return classes.running; - if (build === 'success') return classes.success; - return classes.neutral; - }; - -const timeElapsed = ( - start: string, - end: string, - humanize: boolean = false -) => { - if(humanize){ - return moment.duration( - moment(start|| moment()).diff(moment(end)), - ).humanize(); - }else{ - return moment.duration( - moment(start|| moment()).diff(moment(end)), - ).asSeconds(); - } -} - -export const BuildSteps: FC<{ - runData: { - jobName: string, - jobStart: string, - jobEnd: string, - jobStatus: string, - steps: Array - }; -}> = ({ runData }) => { - const classes = useStyles(); - const [messages, setMessages] = useState([] as any); - - useEffect(() => { - if(runData.steps !== undefined){ - setMessages(runData.steps.map( - ({ name, completed_at, started_at }: { - name: string; completed_at: string; started_at: string; - }) => `${name} ${timeElapsed(started_at, completed_at)}s` - )); - } - }, [runData.steps]) - - return ( - - } - aria-controls={`panel-${runData.jobName}-content`} - id={`panel-${runData.jobName}-header`} - > - { - runData.jobStatus == 'success' ? - - : - } - - {runData.jobName || "No Run Logs"} {`(${timeElapsed(runData.jobStart, runData.jobEnd, true)})` || ""} - - - - {messages.length === 0 ? ( - 'Nothing here...' - ) : ( - }> -
- { - if(line.toLocaleLowerCase().includes("error") - || line.toLocaleLowerCase().includes("failed") - || line.toLocaleLowerCase().includes("failure")) - { - return - } - return line; - }} - /> -
-
- )} -
-
- ); -}; diff --git a/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx b/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx index 8c445ca9f6..15fea5d197 100644 --- a/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx +++ b/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx @@ -18,6 +18,8 @@ import { useEntityCompoundName } from '@backstage/plugin-catalog'; import { useWorkflowRunsDetails } from './useWorkflowRunsDetails'; import { useWorkflowRunJobs } from './useWorkflowRunJobs'; import { useProjectName } from '../useProjectName'; +import { WorkflowRunLogs } from '../WorkflowRunLogs'; + import { makeStyles, Box, @@ -136,6 +138,9 @@ const JobListItem = ({ job, className }: { job: Job; className: string }) => { + ); }; diff --git a/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx b/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx new file mode 100644 index 0000000000..eeb1ee7e3f --- /dev/null +++ b/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx @@ -0,0 +1,106 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { + LinearProgress, + ExpansionPanel, + Typography, + makeStyles, + Theme, + ExpansionPanelSummary, +} from '@material-ui/core'; + +import React, {Suspense} from 'react'; +import { useEntityCompoundName } from '@backstage/plugin-catalog'; +import { useDownloadWorkflowRunLogs } from './useDownloadWorkflowRunLogs'; +import LinePart from 'react-lazylog/build/LinePart'; +import { useProjectName } from '../useProjectName'; +import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; + +const LazyLog = React.lazy(() => import('react-lazylog/build/LazyLog')); + +const useStyles = makeStyles(() => ({ + button: { + order: -1, + marginRight: 0, + marginLeft: '-20px', + }, + })); + +const DisplayLog = (jobLogs: any) =>{ + return( + }> +
+ { + if(line.toLocaleLowerCase().includes("error") + || line.toLocaleLowerCase().includes("failed") + || line.toLocaleLowerCase().includes("failure")) + { + return + } + return line; + }} + /> +
+
+ ) +} + +/** + * A component for Run Logs visualization. + */ +export const WorkflowRunLogs = ({runId}:{runId: string}) => { + const classes = useStyles(); + let entityCompoundName = useEntityCompoundName(); + if (!entityCompoundName.name) { + // TODO(shmidt-i): remove when is fully integrated + // into the entity view + entityCompoundName = { + kind: 'Component', + name: 'backstage', + namespace: 'default', + }; + } + const projectName = useProjectName(entityCompoundName); + + const [owner, repo] = projectName.value ? projectName.value.split('/') : []; + const jobLogs = useDownloadWorkflowRunLogs(repo, owner, runId); + + return ( + + } + aria-controls={`panel-${name}-content`} + id={`panel-${name}-header`} + IconButtonProps={{ + className: classes.button, + }} + > + + {jobLogs.value === null ? "No Logs to Display" : "Job Log"} + + + {jobLogs.value && } + + ); +}; diff --git a/plugins/github-actions/src/components/BuildSteps/index.ts b/plugins/github-actions/src/components/WorkflowRunLogs/index.ts similarity index 91% rename from plugins/github-actions/src/components/BuildSteps/index.ts rename to plugins/github-actions/src/components/WorkflowRunLogs/index.ts index ef173b9895..0fcffd4dec 100644 --- a/plugins/github-actions/src/components/BuildSteps/index.ts +++ b/plugins/github-actions/src/components/WorkflowRunLogs/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { BuildSteps } from './BuildSteps'; +export { WorkflowRunLogs } from './WorkflowRunLogs'; diff --git a/plugins/github-actions/src/components/WorkflowRunLogs/useDownloadWorkflowRunLogs.ts b/plugins/github-actions/src/components/WorkflowRunLogs/useDownloadWorkflowRunLogs.ts new file mode 100644 index 0000000000..1440a1551b --- /dev/null +++ b/plugins/github-actions/src/components/WorkflowRunLogs/useDownloadWorkflowRunLogs.ts @@ -0,0 +1,35 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { useApi, githubAuthApiRef } from '@backstage/core'; +import { useAsync } from 'react-use'; +import { githubActionsApiRef } from '../../api'; + +export const useDownloadWorkflowRunLogs = (repo: string, owner: string, id: string) => { + const api = useApi(githubActionsApiRef); + const auth = useApi(githubAuthApiRef); + const details = useAsync(async () => { + const token = await auth.getAccessToken(['repo']); + return repo && owner + ? api.downloadJobLogsForWorkflowRun({ + token, + owner, + repo, + runId: parseInt(id, 10), + }) + : Promise.reject('No repo/owner provided'); + }, [repo, owner, id]); + return details; + }; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index ad4c7bee55..0000000000 --- a/yarn.lock +++ /dev/null @@ -1,23263 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@apidevtools/json-schema-ref-parser@9.0.6", "@apidevtools/json-schema-ref-parser@^9.0.6": - version "9.0.6" - resolved "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz#5d9000a3ac1fd25404da886da6b266adcd99cf1c" - integrity sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg== - dependencies: - "@jsdevtools/ono" "^7.1.3" - call-me-maybe "^1.0.1" - js-yaml "^3.13.1" - -"@apollo/protobufjs@^1.0.3": - version "1.0.4" - resolved "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.0.4.tgz#cf01747a55359066341f31b5ce8db17df44244e0" - integrity sha512-EE3zx+/D/wur/JiLp6VCiw1iYdyy1lCJMf8CGPkLeDt5QJrN4N8tKFx33Ah4V30AUQzMk7Uz4IXKZ1LOj124gA== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.0" - "@types/node" "^10.1.0" - long "^4.0.0" - -"@apollographql/apollo-tools@^0.4.3": - version "0.4.8" - resolved "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.8.tgz#d81da89ee880c2345eb86bddb92b35291f6135ed" - integrity sha512-W2+HB8Y7ifowcf3YyPHgDI05izyRtOeZ4MqIr7LbTArtmJ0ZHULWpn84SGMW7NAvTV1tFExpHlveHhnXuJfuGA== - dependencies: - apollo-env "^0.6.5" - -"@apollographql/graphql-playground-html@1.6.26": - version "1.6.26" - resolved "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.26.tgz#2f7b610392e2a872722912fc342b43cf8d641cb3" - integrity sha512-XAwXOIab51QyhBxnxySdK3nuMEUohhDsHQ5Rbco/V1vjlP75zZ0ZLHD9dTpXTN8uxKxopb2lUvJTq+M4g2Q0HQ== - dependencies: - xss "^1.0.6" - -"@ardatan/aggregate-error@0.0.1": - version "0.0.1" - resolved "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.1.tgz#1403ac5de10d8ca689fc1f65844c27179ae1d44f" - integrity sha512-UQ9BequOTIavs0pTHLMwQwKQF8tTV1oezY/H2O9chA+JNPFZSua55xpU5dPSjAU9/jLJ1VwU+HJuTVN8u7S6Fg== - -"@asyncapi/avro-schema-parser@^0.1.2": - version "0.1.2" - resolved "https://registry.npmjs.org/@asyncapi/avro-schema-parser/-/avro-schema-parser-0.1.2.tgz#f6c340ccaa24bc36399d3a0f1a6e02790a948453" - integrity sha512-K4GlakiE42J9AWwAu3BWn3Qbf+N8C6vE4eEm5LEx7HqAhHG+FA0U7/3vvXoj31rnS/8sgPQpc2msLWQlmCtZyw== - -"@asyncapi/openapi-schema-parser@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@asyncapi/openapi-schema-parser/-/openapi-schema-parser-2.0.0.tgz#80e2f38e92b6635dde19aae07b92e3caa0effc58" - integrity sha512-XfDp3EIs6ptar3jARQZzi3ObmS44l6Qozc5GJmZJUQ6mHLTTqUGJ0nxcrXAW88vosjilgJVaQ63oGolA6smSHQ== - dependencies: - "@openapi-contrib/openapi-schema-to-json-schema" "^3.0.0" - -"@asyncapi/parser@^1.0.0-rc.1": - version "1.0.0-rc.2" - resolved "https://registry.npmjs.org/@asyncapi/parser/-/parser-1.0.0-rc.2.tgz#87d2e83c1d390e21d53f868e6209cbc584d35449" - integrity sha512-nZYJLnMiq48q7YHa+AI9ZaDc5UqoqKR7MDhTiIKsIJj6X5fF6hpwBrTP0bQn76Pc1oGBXRB69PcD/Y+Et1qFyw== - dependencies: - "@apidevtools/json-schema-ref-parser" "^9.0.6" - "@asyncapi/specs" "^2.7.4" - "@fmvilas/pseudo-yaml-ast" "^0.3.1" - ajv "^6.10.1" - js-yaml "^3.13.1" - json-to-ast "^2.1.0" - node-fetch "^2.6.0" - tiny-merge-patch "^0.1.2" - -"@asyncapi/raml-dt-schema-parser@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@asyncapi/raml-dt-schema-parser/-/raml-dt-schema-parser-2.0.0.tgz#6e9eff89032aa7b82a963d8e72e320e493fc3835" - integrity sha512-ve41LIvbqDU8s0ZeDrWy+dyQZ/XSb7vKiJUHNgy8xcgxsz4YuttbEJbyGJvarw3qf2y+0y6cA1KUFiXoE+AIUg== - dependencies: - js-yaml "^3.13.1" - ramldt2jsonschema "^1.1.0" - -"@asyncapi/specs@^2.7.4": - version "2.7.4" - resolved "https://registry.npmjs.org/@asyncapi/specs/-/specs-2.7.4.tgz#5db4390b68aeb40d70c1723d8f46b0a091110afc" - integrity sha512-3Np9ip1Qn5AgnxTrbI0CMW2F/WUorpiAKz+GUfEy4a6GPk0eTSI6CIcbx2/jej5P91nhEyny9+D3oIzn2MreTA== - -"@babel/code-frame@7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/code-frame@7.5.5": - version "7.5.5" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== - dependencies: - "@babel/highlight" "^7.0.0" - -"@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.5.5": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" - integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" - integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ== - dependencies: - browserslist "^4.12.0" - invariant "^2.2.4" - semver "^5.5.0" - -"@babel/core@^7.1.0", "@babel/core@^7.4.4", "@babel/core@^7.4.5", "@babel/core@^7.7.5", "@babel/core@^7.9.0": - version "7.11.1" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz#2c55b604e73a40dc21b0e52650b11c65cf276643" - integrity sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.0" - "@babel/helper-module-transforms" "^7.11.0" - "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.11.1" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.11.0" - "@babel/types" "^7.11.0" - 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/generator@^7.11.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz#4b90c78d8c12825024568cbe83ee6c9af193585c" - integrity sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ== - dependencies: - "@babel/types" "^7.11.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" - integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" - integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-builder-react-jsx-experimental@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz#f35e956a19955ff08c1258e44a515a6d6248646b" - integrity sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-module-imports" "^7.10.4" - "@babel/types" "^7.10.5" - -"@babel/helper-builder-react-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d" - integrity sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-compilation-targets@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2" - integrity sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ== - dependencies: - "@babel/compat-data" "^7.10.4" - browserslist "^4.12.0" - invariant "^2.2.4" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/helper-create-class-features-plugin@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" - integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-member-expression-to-functions" "^7.10.5" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - -"@babel/helper-create-regexp-features-plugin@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" - integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - regexpu-core "^4.7.0" - -"@babel/helper-define-map@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" - integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/types" "^7.10.5" - lodash "^4.17.19" - -"@babel/helper-explode-assignable-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz#40a1cd917bff1288f699a94a75b37a1a2dbd8c7c" - integrity sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A== - dependencies: - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" - integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== - dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-get-function-arity@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" - integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-hoist-variables@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" - integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.5.tgz#172f56e7a63e78112f3a04055f24365af702e7ee" - integrity sha512-HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA== - dependencies: - "@babel/types" "^7.10.5" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" - integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/template" "^7.10.4" - "@babel/types" "^7.11.0" - lodash "^4.17.19" - -"@babel/helper-optimise-call-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" - integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - 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-regex@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" - integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== - dependencies: - lodash "^4.17.19" - -"@babel/helper-remap-async-to-generator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz#fce8bea4e9690bbe923056ded21e54b4e8b68ed5" - integrity sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-wrap-function" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-replace-supers@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" - integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-simple-access@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" - integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== - dependencies: - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" - integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q== - dependencies: - "@babel/types" "^7.11.0" - -"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" - integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== - dependencies: - "@babel/types" "^7.11.0" - -"@babel/helper-validator-identifier@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" - integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== - -"@babel/helper-wrap-function@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" - integrity sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helpers@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" - integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== - dependencies: - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/highlight@^7.0.0", "@babel/highlight@^7.10.4", "@babel/highlight@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.0", "@babel/parser@^7.11.1", "@babel/parser@^7.7.5": - version "7.11.3" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz#9e1eae46738bcd08e23e867bab43e7b95299a8f9" - integrity sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA== - -"@babel/plugin-proposal-async-generator-functions@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" - integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" - -"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.7.0", "@babel/plugin-proposal-class-properties@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" - integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-proposal-dynamic-import@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" - integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - -"@babel/plugin-proposal-export-namespace-from@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54" - integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" - integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.0" - -"@babel/plugin-proposal-logical-assignment-operators@^7.11.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8" - integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" - integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - -"@babel/plugin-proposal-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" - integrity sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.11.0", "@babel/plugin-proposal-object-rest-spread@^7.6.2", "@babel/plugin-proposal-object-rest-spread@^7.9.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" - integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.10.4" - -"@babel/plugin-proposal-optional-catch-binding@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" - integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - -"@babel/plugin-proposal-optional-chaining@^7.11.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" - integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - -"@babel/plugin-proposal-private-methods@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" - integrity sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" - integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-async-generators@^7.8.0", "@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" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.10.4", "@babel/plugin-syntax-class-properties@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c" - integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-flow@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz#f2c883bd61a6316f2c89380ae5122f923ba4527f" - integrity sha512-innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c" - integrity sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@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" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@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== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" - integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-arrow-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" - integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-async-to-generator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" - integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" - -"@babel/plugin-transform-block-scoped-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" - integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-block-scoping@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz#b81b8aafefbfe68f0f65f7ef397b9ece68a6037d" - integrity sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-classes@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" - integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-define-map" "^7.10.4" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" - integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-destructuring@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" - integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" - integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-duplicate-keys@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" - integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-exponentiation-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" - integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-flow-strip-types@^7.9.0": - version "7.9.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz#8a3538aa40434e000b8f44a3c5c9ac7229bd2392" - integrity sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-flow" "^7.8.3" - -"@babel/plugin-transform-for-of@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" - integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" - integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" - integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-member-expression-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" - integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-modules-amd@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" - integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw== - dependencies: - "@babel/helper-module-transforms" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.10.4", "@babel/plugin-transform-modules-commonjs@^7.4.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" - integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w== - dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" - integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw== - dependencies: - "@babel/helper-hoist-variables" "^7.10.4" - "@babel/helper-module-transforms" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" - integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA== - dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" - integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - -"@babel/plugin-transform-new-target@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" - integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-object-super@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" - integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - -"@babel/plugin-transform-parameters@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" - integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw== - dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-property-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" - integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-react-constant-elements@^7.0.0", "@babel/plugin-transform-react-constant-elements@^7.2.0", "@babel/plugin-transform-react-constant-elements@^7.6.3", "@babel/plugin-transform-react-constant-elements@^7.7.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz#0f485260bf1c29012bb973e7e404749eaac12c9e" - integrity sha512-cYmQBW1pXrqBte1raMkAulXmi7rjg3VI6ZLg9QIic8Hq7BtYXaWuZSxsr2siOMI6SWwpxjWfnwhTUrd7JlAV7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-react-display-name@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz#b5795f4e3e3140419c3611b7a2a3832b9aef328d" - integrity sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-react-jsx-development@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz#6ec90f244394604623880e15ebc3c34c356258ba" - integrity sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ== - dependencies: - "@babel/helper-builder-react-jsx-experimental" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" - -"@babel/plugin-transform-react-jsx-self@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz#cd301a5fed8988c182ed0b9d55e9bd6db0bd9369" - integrity sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" - -"@babel/plugin-transform-react-jsx-source@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz#34f1779117520a779c054f2cdd9680435b9222b4" - integrity sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" - -"@babel/plugin-transform-react-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz#673c9f913948764a4421683b2bef2936968fddf2" - integrity sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A== - dependencies: - "@babel/helper-builder-react-jsx" "^7.10.4" - "@babel/helper-builder-react-jsx-experimental" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" - -"@babel/plugin-transform-react-pure-annotations@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz#3eefbb73db94afbc075f097523e445354a1c6501" - integrity sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-regenerator@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" - integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" - integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-shorthand-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" - integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-spread@^7.11.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" - integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" - -"@babel/plugin-transform-sticky-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" - integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - -"@babel/plugin-transform-template-literals@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" - integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-typeof-symbol@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" - integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-unicode-escapes@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" - integrity sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-unicode-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" - integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/polyfill@^7.8.7": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.10.4.tgz#915e5bfe61490ac0199008e35ca9d7d151a8e45a" - integrity sha512-8BYcnVqQ5kMD2HXoHInBH7H1b/uP3KdnwCYXOqFnXqguOyuu443WXusbIUbWEfY3Z0Txk0M1uG/8YuAMhNl6zg== - dependencies: - core-js "^2.6.5" - regenerator-runtime "^0.13.4" - -"@babel/preset-env@^7.4.5", "@babel/preset-env@^7.9.0", "@babel/preset-env@^7.9.5": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796" - integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg== - dependencies: - "@babel/compat-data" "^7.11.0" - "@babel/helper-compilation-targets" "^7.10.4" - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-proposal-async-generator-functions" "^7.10.4" - "@babel/plugin-proposal-class-properties" "^7.10.4" - "@babel/plugin-proposal-dynamic-import" "^7.10.4" - "@babel/plugin-proposal-export-namespace-from" "^7.10.4" - "@babel/plugin-proposal-json-strings" "^7.10.4" - "@babel/plugin-proposal-logical-assignment-operators" "^7.11.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" - "@babel/plugin-proposal-numeric-separator" "^7.10.4" - "@babel/plugin-proposal-object-rest-spread" "^7.11.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" - "@babel/plugin-proposal-optional-chaining" "^7.11.0" - "@babel/plugin-proposal-private-methods" "^7.10.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-class-properties" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.10.4" - "@babel/plugin-transform-arrow-functions" "^7.10.4" - "@babel/plugin-transform-async-to-generator" "^7.10.4" - "@babel/plugin-transform-block-scoped-functions" "^7.10.4" - "@babel/plugin-transform-block-scoping" "^7.10.4" - "@babel/plugin-transform-classes" "^7.10.4" - "@babel/plugin-transform-computed-properties" "^7.10.4" - "@babel/plugin-transform-destructuring" "^7.10.4" - "@babel/plugin-transform-dotall-regex" "^7.10.4" - "@babel/plugin-transform-duplicate-keys" "^7.10.4" - "@babel/plugin-transform-exponentiation-operator" "^7.10.4" - "@babel/plugin-transform-for-of" "^7.10.4" - "@babel/plugin-transform-function-name" "^7.10.4" - "@babel/plugin-transform-literals" "^7.10.4" - "@babel/plugin-transform-member-expression-literals" "^7.10.4" - "@babel/plugin-transform-modules-amd" "^7.10.4" - "@babel/plugin-transform-modules-commonjs" "^7.10.4" - "@babel/plugin-transform-modules-systemjs" "^7.10.4" - "@babel/plugin-transform-modules-umd" "^7.10.4" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" - "@babel/plugin-transform-new-target" "^7.10.4" - "@babel/plugin-transform-object-super" "^7.10.4" - "@babel/plugin-transform-parameters" "^7.10.4" - "@babel/plugin-transform-property-literals" "^7.10.4" - "@babel/plugin-transform-regenerator" "^7.10.4" - "@babel/plugin-transform-reserved-words" "^7.10.4" - "@babel/plugin-transform-shorthand-properties" "^7.10.4" - "@babel/plugin-transform-spread" "^7.11.0" - "@babel/plugin-transform-sticky-regex" "^7.10.4" - "@babel/plugin-transform-template-literals" "^7.10.4" - "@babel/plugin-transform-typeof-symbol" "^7.10.4" - "@babel/plugin-transform-unicode-escapes" "^7.10.4" - "@babel/plugin-transform-unicode-regex" "^7.10.4" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.11.0" - browserslist "^4.12.0" - core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/preset-flow@^7.0.0": - version "7.9.0" - resolved "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.9.0.tgz#fee847c3e090b0b2d9227c1949e4da1d1379280d" - integrity sha512-88uSmlshIrlmPkNkEcx3UpSZ6b8n0UGBq0/0ZMZCF/uxAW0XIAUuDHBhIOAh0pvweafH4RxOwi/H3rWhtqOYPA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-flow-strip-types" "^7.9.0" - -"@babel/preset-modules@^0.1.3": - version "0.1.3" - resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" - integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-react@^7.0.0", "@babel/preset-react@^7.9.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz#92e8a66d816f9911d11d4cc935be67adfc82dbcf" - integrity sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-transform-react-display-name" "^7.10.4" - "@babel/plugin-transform-react-jsx" "^7.10.4" - "@babel/plugin-transform-react-jsx-development" "^7.10.4" - "@babel/plugin-transform-react-jsx-self" "^7.10.4" - "@babel/plugin-transform-react-jsx-source" "^7.10.4" - "@babel/plugin-transform-react-pure-annotations" "^7.10.4" - -"@babel/register@^7.9.0": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/register/-/register-7.10.5.tgz#354f3574895f1307f79efe37a51525e52fd38d89" - integrity sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw== - dependencies: - find-cache-dir "^2.0.0" - lodash "^4.17.19" - make-dir "^2.1.0" - pirates "^4.0.0" - source-map-support "^0.5.16" - -"@babel/runtime-corejs2@^7.10.4", "@babel/runtime-corejs2@^7.8.7": - version "7.11.2" - resolved "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.11.2.tgz#700a03945ebad0d31ba6690fc8a6bcc9040faa47" - integrity sha512-AC/ciV28adSSpEkBglONBWq4/Lvm6GAZuxIoyVtsnUpZMl0bxLtoChEnYAkP+47KyOCayZanojtflUEUJtR/6Q== - dependencies: - core-js "^2.6.5" - regenerator-runtime "^0.13.4" - -"@babel/runtime-corejs3@^7.10.2", "@babel/runtime-corejs3@^7.8.3": - version "7.10.3" - resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.3.tgz#931ed6941d3954924a7aa967ee440e60c507b91a" - integrity sha512-HA7RPj5xvJxQl429r5Cxr2trJwOfPjKiqhCXcdQPSqO2G0RHPZpXu4fkYmBaTKCp2c/jRaMK9GB/lN+7zvvFPw== - dependencies: - 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.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.10.5", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.4", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.11.2" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.10.4", "@babel/template@^7.3.3", "@babel/template@^7.7.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" - integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0", "@babel/traverse@^7.7.4", "@babel/traverse@^7.9.0": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" - integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.0" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.11.0" - "@babel/types" "^7.11.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.19" - -"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.9.0", "@babel/types@^7.9.5": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" - integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@braintree/sanitize-url@^4.0.0": - version "4.1.1" - resolved "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-4.1.1.tgz#671b3cfdbcc40d1449036ce586e882ab6150828e" - integrity sha512-epVksusKVEpwBs2vRg3SWssxn9KXs9CxEYNOcgeSRLRjq070ABj5bLPxkmtQpVeSPCHj8kfAE9J6z2WsLr4wZg== - -"@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== - dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" - -"@cypress/listr-verbose-renderer@^0.4.1": - version "0.4.1" - resolved "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a" - integrity sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo= - dependencies: - chalk "^1.1.3" - cli-cursor "^1.0.2" - date-fns "^1.27.2" - figures "^1.7.0" - -"@cypress/request@^2.88.5": - version "2.88.5" - resolved "https://registry.npmjs.org/@cypress/request/-/request-2.88.5.tgz#8d7ecd17b53a849cfd5ab06d5abe7d84976375d7" - integrity sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -"@cypress/xvfb@^1.2.4": - version "1.2.4" - resolved "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" - integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== - dependencies: - debug "^3.1.0" - lodash.once "^4.1.1" - -"@date-io/core@1.x", "@date-io/core@^1.3.13": - version "1.3.13" - resolved "https://registry.npmjs.org/@date-io/core/-/core-1.3.13.tgz#90c71da493f20204b7a972929cc5c482d078b3fa" - integrity sha512-AlEKV7TxjeK+jxWVKcCFrfYAk8spX9aCyiToFIiLPtfQbsjmRGLIhb5VZgptQcJdHtLXo7+m0DuurwFgUToQuA== - -"@date-io/date-fns@^1.1.0": - version "1.3.13" - resolved "https://registry.npmjs.org/@date-io/date-fns/-/date-fns-1.3.13.tgz#7798844041640ab393f7e21a7769a65d672f4735" - integrity sha512-yXxGzcRUPcogiMj58wVgFjc9qUYrCnnU9eLcyNbsQCmae4jPuZCDoIBR21j8ZURsM7GRtU62VOw5yNd4dDHunA== - dependencies: - "@date-io/core" "^1.3.13" - -"@emotion/cache@^10.0.27": - version "10.0.29" - resolved "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz#87e7e64f412c060102d589fe7c6dc042e6f9d1e0" - integrity sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ== - dependencies: - "@emotion/sheet" "0.9.4" - "@emotion/stylis" "0.8.5" - "@emotion/utils" "0.11.3" - "@emotion/weak-memoize" "0.2.5" - -"@emotion/core@^10.0.0", "@emotion/core@^10.0.20", "@emotion/core@^10.0.28": - version "10.0.28" - resolved "https://registry.npmjs.org/@emotion/core/-/core-10.0.28.tgz#bb65af7262a234593a9e952c041d0f1c9b9bef3d" - integrity sha512-pH8UueKYO5jgg0Iq+AmCLxBsvuGtvlmiDCOuv8fGNYn3cowFpLN98L8zO56U0H1PjDIyAlXymgL3Wu7u7v6hbA== - dependencies: - "@babel/runtime" "^7.5.5" - "@emotion/cache" "^10.0.27" - "@emotion/css" "^10.0.27" - "@emotion/serialize" "^0.11.15" - "@emotion/sheet" "0.9.4" - "@emotion/utils" "0.11.3" - -"@emotion/css@^10.0.27": - version "10.0.27" - resolved "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz#3a7458198fbbebb53b01b2b87f64e5e21241e14c" - integrity sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw== - dependencies: - "@emotion/serialize" "^0.11.15" - "@emotion/utils" "0.11.3" - babel-plugin-emotion "^10.0.27" - -"@emotion/hash@0.8.0", "@emotion/hash@^0.8.0": - version "0.8.0" - resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" - integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== - -"@emotion/is-prop-valid@0.8.8", "@emotion/is-prop-valid@^0.8.1", "@emotion/is-prop-valid@^0.8.6": - version "0.8.8" - resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" - integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== - dependencies: - "@emotion/memoize" "0.7.4" - -"@emotion/memoize@0.7.4", "@emotion/memoize@^0.7.1": - version "0.7.4" - resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" - integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== - -"@emotion/serialize@^0.11.15", "@emotion/serialize@^0.11.16": - version "0.11.16" - resolved "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz#dee05f9e96ad2fb25a5206b6d759b2d1ed3379ad" - integrity sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg== - dependencies: - "@emotion/hash" "0.8.0" - "@emotion/memoize" "0.7.4" - "@emotion/unitless" "0.7.5" - "@emotion/utils" "0.11.3" - csstype "^2.5.7" - -"@emotion/sheet@0.9.4": - version "0.9.4" - resolved "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz#894374bea39ec30f489bbfc3438192b9774d32e5" - integrity sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA== - -"@emotion/styled-base@^10.0.27": - version "10.0.31" - resolved "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.0.31.tgz#940957ee0aa15c6974adc7d494ff19765a2f742a" - integrity sha512-wTOE1NcXmqMWlyrtwdkqg87Mu6Rj1MaukEoEmEkHirO5IoHDJ8LgCQL4MjJODgxWxXibGR3opGp1p7YvkNEdXQ== - dependencies: - "@babel/runtime" "^7.5.5" - "@emotion/is-prop-valid" "0.8.8" - "@emotion/serialize" "^0.11.15" - "@emotion/utils" "0.11.3" - -"@emotion/styled@^10.0.0", "@emotion/styled@^10.0.17": - 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== - dependencies: - "@emotion/styled-base" "^10.0.27" - babel-plugin-emotion "^10.0.27" - -"@emotion/stylis@0.8.5": - version "0.8.5" - resolved "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" - integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== - -"@emotion/unitless@0.7.5": - version "0.7.5" - resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" - integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== - -"@emotion/utils@0.11.3": - version "0.11.3" - resolved "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz#a759863867befa7e583400d322652a3f44820924" - integrity sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw== - -"@emotion/weak-memoize@0.2.5": - version "0.2.5" - resolved "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" - integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== - -"@evocateur/libnpmaccess@^3.1.2": - version "3.1.2" - resolved "https://registry.npmjs.org/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz#ecf7f6ce6b004e9f942b098d92200be4a4b1c845" - integrity sha512-KSCAHwNWro0CF2ukxufCitT9K5LjL/KuMmNzSu8wuwN2rjyKHD8+cmOsiybK+W5hdnwc5M1SmRlVCaMHQo+3rg== - dependencies: - "@evocateur/npm-registry-fetch" "^4.0.0" - aproba "^2.0.0" - figgy-pudding "^3.5.1" - get-stream "^4.0.0" - npm-package-arg "^6.1.0" - -"@evocateur/libnpmpublish@^1.2.2": - version "1.2.2" - resolved "https://registry.npmjs.org/@evocateur/libnpmpublish/-/libnpmpublish-1.2.2.tgz#55df09d2dca136afba9c88c759ca272198db9f1a" - integrity sha512-MJrrk9ct1FeY9zRlyeoyMieBjGDG9ihyyD9/Ft6MMrTxql9NyoEx2hw9casTIP4CdqEVu+3nQ2nXxoJ8RCXyFg== - dependencies: - "@evocateur/npm-registry-fetch" "^4.0.0" - aproba "^2.0.0" - figgy-pudding "^3.5.1" - get-stream "^4.0.0" - lodash.clonedeep "^4.5.0" - normalize-package-data "^2.4.0" - npm-package-arg "^6.1.0" - semver "^5.5.1" - ssri "^6.0.1" - -"@evocateur/npm-registry-fetch@^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@evocateur/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz#8c4c38766d8d32d3200fcb0a83f064b57365ed66" - integrity sha512-k1WGfKRQyhJpIr+P17O5vLIo2ko1PFLKwoetatdduUSt/aQ4J2sJrJwwatdI5Z3SiYk/mRH9S3JpdmMFd/IK4g== - dependencies: - JSONStream "^1.3.4" - bluebird "^3.5.1" - figgy-pudding "^3.4.1" - lru-cache "^5.1.1" - make-fetch-happen "^5.0.0" - npm-package-arg "^6.1.0" - safe-buffer "^5.1.2" - -"@evocateur/pacote@^9.6.3": - version "9.6.5" - resolved "https://registry.npmjs.org/@evocateur/pacote/-/pacote-9.6.5.tgz#33de32ba210b6f17c20ebab4d497efc6755f4ae5" - integrity sha512-EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w== - dependencies: - "@evocateur/npm-registry-fetch" "^4.0.0" - bluebird "^3.5.3" - cacache "^12.0.3" - chownr "^1.1.2" - figgy-pudding "^3.5.1" - get-stream "^4.1.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^5.1.1" - make-fetch-happen "^5.0.0" - minimatch "^3.0.4" - minipass "^2.3.5" - mississippi "^3.0.0" - mkdirp "^0.5.1" - normalize-package-data "^2.5.0" - npm-package-arg "^6.1.0" - npm-packlist "^1.4.4" - npm-pick-manifest "^3.0.0" - osenv "^0.1.5" - promise-inflight "^1.0.1" - promise-retry "^1.1.1" - protoduck "^5.0.1" - rimraf "^2.6.3" - safe-buffer "^5.2.0" - semver "^5.7.0" - ssri "^6.0.1" - tar "^4.4.10" - unique-filename "^1.1.1" - which "^1.3.1" - -"@fmvilas/pseudo-yaml-ast@^0.3.1": - version "0.3.1" - resolved "https://registry.npmjs.org/@fmvilas/pseudo-yaml-ast/-/pseudo-yaml-ast-0.3.1.tgz#66c5df2c2d76ba8571dc5bd98fda4d7dce6121de" - integrity sha512-8OAB74W2a9M3k9bjYD8AjVXkX+qO8c0SqNT5HlgOqx7AxSw8xdksEcZp7gFtfi+4njSxT6+76ZR+1ubjAwQHOg== - dependencies: - yaml-ast-parser "0.0.43" - -"@graphql-tools/delegate@6.0.15": - version "6.0.15" - resolved "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-6.0.15.tgz#9e060bfc31fe7735bd5b2b401e98dea3fa5d3b25" - integrity sha512-GG/zp29PMfG6eXpfe1M5C3U1EI1f3tJu2glFN8t0RIfp4FEgZs/PRvZuuep5orFge8dvX/LQpJY8Vl2JmU4WMg== - dependencies: - "@ardatan/aggregate-error" "0.0.1" - "@graphql-tools/schema" "6.0.15" - "@graphql-tools/utils" "6.0.15" - tslib "~2.0.0" - -"@graphql-tools/graphql-file-loader@^6.0.0": - version "6.0.15" - resolved "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.0.15.tgz#e186b8147397bd7510e1b3318f5d3f7d365fc4e1" - integrity sha512-QbCf731A2A2hrHP+cMSAKvY3D7IauFNqp5bAGdbLwSHRqaxUIfKi7Q76/9pZ3rN/e6yu/zVz+t1rkf7lT2/8OA== - dependencies: - "@graphql-tools/import" "6.0.15" - "@graphql-tools/utils" "6.0.15" - fs-extra "9.0.1" - tslib "~2.0.0" - -"@graphql-tools/import@6.0.15": - version "6.0.15" - resolved "https://registry.npmjs.org/@graphql-tools/import/-/import-6.0.15.tgz#d6a9d3b6199a1e07d80d8021635d317b2c190c6f" - integrity sha512-YaQizD031nlrObiAJj+DO+0Wf2ompR2G5OFNQZIOgUlm1+kfH3GPIFoE5Ww74YH6vy9s4UyYYeZJz6APxPdMzg== - dependencies: - fs-extra "9.0.1" - resolve-from "5.0.0" - -"@graphql-tools/json-file-loader@^6.0.0": - version "6.0.15" - resolved "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-6.0.15.tgz#e341a5fed1ef3af8f8bfde17ed9a14e1a6df36c0" - integrity sha512-SQO7w+KPxW6Q3snE3G4eNOA8CcBBDYHpk8JILj93oe4BassuPY5NCUOeZ+2PYczwZQbTNDQXeW1oQou44U1aBg== - dependencies: - "@graphql-tools/utils" "6.0.15" - fs-extra "9.0.1" - tslib "~2.0.0" - -"@graphql-tools/load@^6.0.0": - version "6.0.15" - resolved "https://registry.npmjs.org/@graphql-tools/load/-/load-6.0.15.tgz#f2012b8938b3a535dbafefbb719997684028f30f" - integrity sha512-STH3ZjbViRqDyCw+f7PZrnDs6yhP7m2l4x5lJBMyMeLaLwuO1z+WhgtqYZNpCYlQY2jNSLXWCa0nWmpYvdLnlA== - dependencies: - "@graphql-tools/merge" "6.0.15" - "@graphql-tools/utils" "6.0.15" - globby "11.0.1" - import-from "3.0.0" - is-glob "4.0.1" - p-limit "3.0.2" - tslib "~2.0.0" - unixify "1.0.0" - valid-url "1.0.9" - -"@graphql-tools/merge@6.0.15", "@graphql-tools/merge@^6.0.0": - version "6.0.15" - resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.0.15.tgz#09c84bd08971edfb3e1035d71432b47687820bdc" - integrity sha512-qusTLzkf6GtxS6LRQnEAWIwA1BeJj5SkZ2pnE4/wVe9gs0grpEsOKYxvGpBi8IZR7r8UeNpkdgk2HP0jlq/WWA== - dependencies: - "@graphql-tools/schema" "6.0.15" - "@graphql-tools/utils" "6.0.15" - tslib "~2.0.0" - -"@graphql-tools/schema@6.0.15": - version "6.0.15" - resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-6.0.15.tgz#b016f9f36820342982887a291baa7e7d11b039ae" - integrity sha512-Wo+d6/OPjeXjwB1pcqsWmqLdweGH+BVhvKe/YPQA/uiWr8ikgShvNLNiuF03gc/1AMR487A09XcPEyabRKJLew== - dependencies: - "@graphql-tools/utils" "6.0.15" - tslib "~2.0.0" - -"@graphql-tools/url-loader@^6.0.0": - version "6.0.15" - resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.0.15.tgz#3ad621ed75c03fbc0ea08d2560f379a053c4035f" - integrity sha512-/iGuK7J9yCECYMYQJqKNWnz4ytPHppkxh4YS5Ud9QPDNl488e+eInyNbkdiWcFGyZ4KHqEnXSDdRFg3mFNrMnw== - dependencies: - "@graphql-tools/delegate" "6.0.15" - "@graphql-tools/utils" "6.0.15" - "@graphql-tools/wrap" "6.0.15" - "@types/websocket" "1.0.1" - cross-fetch "3.0.5" - subscriptions-transport-ws "0.9.17" - tslib "~2.0.0" - valid-url "1.0.9" - websocket "1.0.31" - -"@graphql-tools/utils@6.0.15", "@graphql-tools/utils@^6.0.0": - version "6.0.15" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.0.15.tgz#6d54d383285bea3c22797531933b62a408e78e49" - integrity sha512-VG5cMLPgh9RDLGHamGpXVnBrNw7bZGT46LrxK7IIqDZI9H0GPsRCo8+p+CfDkw0IlDiEECb624WVCpm9IYNecA== - dependencies: - "@ardatan/aggregate-error" "0.0.1" - camel-case "4.1.1" - -"@graphql-tools/wrap@6.0.15": - version "6.0.15" - resolved "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-6.0.15.tgz#1b4a43d406f3894e4cbc931f9d4e0d282ab0076e" - integrity sha512-yWiDBrbzml6PRl4aeJBLNGPw385LFtszMfkfYwjLSWvNyVILDCMa/XWHThw4FMaZ1nPL0GuLggW2bVkUBi3TYA== - dependencies: - "@graphql-tools/delegate" "6.0.15" - "@graphql-tools/schema" "6.0.15" - "@graphql-tools/utils" "6.0.15" - aggregate-error "3.0.1" - tslib "~2.0.0" - -"@hapi/address@^4.0.1": - version "4.1.0" - resolved "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz#d60c5c0d930e77456fdcde2598e77302e2955e1d" - integrity sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@hapi/formula@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz#edade0619ed58c8e4f164f233cda70211e787128" - integrity sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A== - -"@hapi/hoek@^9.0.0": - version "9.0.4" - resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz#e80ad4e8e8d2adc6c77d985f698447e8628b6010" - integrity sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw== - -"@hapi/joi@^17.1.1": - version "17.1.1" - resolved "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz#9cc8d7e2c2213d1e46708c6260184b447c661350" - integrity sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg== - dependencies: - "@hapi/address" "^4.0.1" - "@hapi/formula" "^2.0.0" - "@hapi/hoek" "^9.0.0" - "@hapi/pinpoint" "^2.0.0" - "@hapi/topo" "^5.0.0" - -"@hapi/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz#805b40d4dbec04fc116a73089494e00f073de8df" - integrity sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw== - -"@hapi/topo@^5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz#c19af8577fa393a06e9c77b60995af959be721e7" - integrity sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@hot-loader/react-dom@^16.13.0": - version "16.13.0" - resolved "https://registry.npmjs.org/@hot-loader/react-dom/-/react-dom-16.13.0.tgz#de245b42358110baf80aaf47a0592153d4047997" - integrity sha512-lJZrmkucz2MrQJTQtJobx5MICXcfQvKihszqv655p557HPi0hMOWxrNpiHv3DWD8ugNWjtWcVWqRnFvwsHq1mQ== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.0" - -"@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" - integrity sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.2" - resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" - integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== - -"@jest/console@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/console/-/console-26.0.1.tgz#62b3b2fa8990f3cbffbef695c42ae9ddbc8f4b39" - integrity sha512-9t1KUe/93coV1rBSxMmBAOIK3/HVpwxArCA1CxskKyRiv6o8J70V8C/V3OJminVCTa2M0hQI9AWRd5wxu2dAHw== - dependencies: - "@jest/types" "^26.0.1" - chalk "^4.0.0" - jest-message-util "^26.0.1" - jest-util "^26.0.1" - slash "^3.0.0" - -"@jest/core@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/core/-/core-26.0.1.tgz#aa538d52497dfab56735efb00e506be83d841fae" - integrity sha512-Xq3eqYnxsG9SjDC+WLeIgf7/8KU6rddBxH+SCt18gEpOhAGYC/Mq+YbtlNcIdwjnnT+wDseXSbU0e5X84Y4jTQ== - dependencies: - "@jest/console" "^26.0.1" - "@jest/reporters" "^26.0.1" - "@jest/test-result" "^26.0.1" - "@jest/transform" "^26.0.1" - "@jest/types" "^26.0.1" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^26.0.1" - jest-config "^26.0.1" - jest-haste-map "^26.0.1" - jest-message-util "^26.0.1" - jest-regex-util "^26.0.0" - jest-resolve "^26.0.1" - jest-resolve-dependencies "^26.0.1" - jest-runner "^26.0.1" - jest-runtime "^26.0.1" - jest-snapshot "^26.0.1" - jest-util "^26.0.1" - jest-validate "^26.0.1" - jest-watcher "^26.0.1" - micromatch "^4.0.2" - p-each-series "^2.1.0" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-26.0.1.tgz#82f519bba71959be9b483675ee89de8c8f72a5c8" - integrity sha512-xBDxPe8/nx251u0VJ2dFAFz2H23Y98qdIaNwnMK6dFQr05jc+Ne/2np73lOAx+5mSBO/yuQldRrQOf6hP1h92g== - dependencies: - "@jest/fake-timers" "^26.0.1" - "@jest/types" "^26.0.1" - jest-mock "^26.0.1" - -"@jest/fake-timers@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.0.1.tgz#f7aeff13b9f387e9d0cac9a8de3bba538d19d796" - integrity sha512-Oj/kCBnTKhm7CR+OJSjZty6N1bRDr9pgiYQr4wY221azLz5PHi08x/U+9+QpceAYOWheauLP8MhtSVFrqXQfhg== - dependencies: - "@jest/types" "^26.0.1" - "@sinonjs/fake-timers" "^6.0.1" - jest-message-util "^26.0.1" - jest-mock "^26.0.1" - jest-util "^26.0.1" - -"@jest/globals@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-26.0.1.tgz#3f67b508a7ce62b6e6efc536f3d18ec9deb19a9c" - integrity sha512-iuucxOYB7BRCvT+TYBzUqUNuxFX1hqaR6G6IcGgEqkJ5x4htNKo1r7jk1ji9Zj8ZMiMw0oB5NaA7k5Tx6MVssA== - dependencies: - "@jest/environment" "^26.0.1" - "@jest/types" "^26.0.1" - expect "^26.0.1" - -"@jest/reporters@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-26.0.1.tgz#14ae00e7a93e498cec35b0c00ab21c375d9b078f" - integrity sha512-NWWy9KwRtE1iyG/m7huiFVF9YsYv/e+mbflKRV84WDoJfBqUrNRyDbL/vFxQcYLl8IRqI4P3MgPn386x76Gf2g== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.0.1" - "@jest/test-result" "^26.0.1" - "@jest/transform" "^26.0.1" - "@jest/types" "^26.0.1" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^26.0.1" - jest-resolve "^26.0.1" - jest-util "^26.0.1" - jest-worker "^26.0.0" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^4.1.3" - optionalDependencies: - node-notifier "^7.0.0" - -"@jest/source-map@^26.0.0": - version "26.0.0" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-26.0.0.tgz#fd7706484a7d3faf7792ae29783933bbf48a4749" - integrity sha512-S2Z+Aj/7KOSU2TfW0dyzBze7xr95bkm5YXNUqqCek+HE0VbNNSNzrRwfIi5lf7wvzDTSS0/ib8XQ1krFNyYgbQ== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.4" - source-map "^0.6.0" - -"@jest/test-result@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-26.0.1.tgz#1ffdc1ba4bc289919e54b9414b74c9c2f7b2b718" - integrity sha512-oKwHvOI73ICSYRPe8WwyYPTtiuOAkLSbY8/MfWF3qDEd/sa8EDyZzin3BaXTqufir/O/Gzea4E8Zl14XU4Mlyg== - dependencies: - "@jest/console" "^26.0.1" - "@jest/types" "^26.0.1" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.0.1.tgz#b0563424728f3fe9e75d1442b9ae4c11da73f090" - integrity sha512-ssga8XlwfP8YjbDcmVhwNlrmblddMfgUeAkWIXts1V22equp2GMIHxm7cyeD5Q/B0ZgKPK/tngt45sH99yLLGg== - dependencies: - "@jest/test-result" "^26.0.1" - graceful-fs "^4.2.4" - jest-haste-map "^26.0.1" - jest-runner "^26.0.1" - jest-runtime "^26.0.1" - -"@jest/transform@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-26.0.1.tgz#0e3ecbb34a11cd4b2080ed0a9c4856cf0ceb0639" - integrity sha512-pPRkVkAQ91drKGbzCfDOoHN838+FSbYaEAvBXvKuWeeRRUD8FjwXkqfUNUZL6Ke48aA/1cqq/Ni7kVMCoqagWA== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^26.0.1" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^26.0.1" - jest-regex-util "^26.0.0" - jest-util "^26.0.1" - micromatch "^4.0.2" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/types@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" - integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^13.0.0" - -"@jest/types@^25.5.0": - version "25.5.0" - resolved "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" - integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^15.0.0" - chalk "^3.0.0" - -"@jest/types@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz#b78333fbd113fa7aec8d39de24f88de8686dac67" - integrity sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@jsdevtools/ono@^7.1.3": - version "7.1.3" - resolved "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" - integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== - -"@kyleshockey/object-assign-deep@^0.4.2": - version "0.4.2" - resolved "https://registry.npmjs.org/@kyleshockey/object-assign-deep/-/object-assign-deep-0.4.2.tgz#84900f0eefc372798f4751b5262830b8208922ec" - integrity sha1-hJAPDu/DcnmPR1G1JigwuCCJIuw= - -"@kyleshockey/xml@^1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@kyleshockey/xml/-/xml-1.0.2.tgz#81fad3d7c33da2ba2639db095db3db24c2921f70" - integrity sha512-iMo32MPLcI9cPxs3YL5kmKxKgDmkSZDCFEqIT5eRk7d/Ll8r4X3SwGYSigzALd6+RHWlFEmjL1QyaQ15xDZFlw== - dependencies: - stream "^0.0.2" - -"@kyma-project/asyncapi-react@^0.11.0": - version "0.11.2" - resolved "https://registry.npmjs.org/@kyma-project/asyncapi-react/-/asyncapi-react-0.11.2.tgz#b523b0843da7c29a0d7569b3f31d7d8cbdf84b47" - integrity sha512-Wo6CgM3pzZaRMCVwXaEIrlXMuFtRNGli1GtFgMHQUB686daSCqSvRZUyitDHTZLofL3OI9JeYh5m6SjPji6bxg== - dependencies: - "@asyncapi/avro-schema-parser" "^0.1.2" - "@asyncapi/openapi-schema-parser" "^2.0.0" - "@asyncapi/parser" "^1.0.0-rc.1" - "@asyncapi/raml-dt-schema-parser" "^2.0.0" - constate "^1.2.0" - dompurify "^1.0.11" - json-schema-ref-parser "^9.0.6" - markdown-it "^9.1.0" - merge "^1.2.1" - openapi-sampler "^1.0.0-beta.15" - react-use "^12.2.0" - -"@lerna/add@3.21.0": - version "3.21.0" - resolved "https://registry.npmjs.org/@lerna/add/-/add-3.21.0.tgz#27007bde71cc7b0a2969ab3c2f0ae41578b4577b" - integrity sha512-vhUXXF6SpufBE1EkNEXwz1VLW03f177G9uMOFMQkp6OJ30/PWg4Ekifuz9/3YfgB2/GH8Tu4Lk3O51P2Hskg/A== - dependencies: - "@evocateur/pacote" "^9.6.3" - "@lerna/bootstrap" "3.21.0" - "@lerna/command" "3.21.0" - "@lerna/filter-options" "3.20.0" - "@lerna/npm-conf" "3.16.0" - "@lerna/validation-error" "3.13.0" - dedent "^0.7.0" - npm-package-arg "^6.1.0" - p-map "^2.1.0" - semver "^6.2.0" - -"@lerna/bootstrap@3.21.0": - version "3.21.0" - resolved "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.21.0.tgz#bcd1b651be5b0970b20d8fae04c864548123aed6" - integrity sha512-mtNHlXpmvJn6JTu0KcuTTPl2jLsDNud0QacV/h++qsaKbhAaJr/FElNZ5s7MwZFUM3XaDmvWzHKaszeBMHIbBw== - dependencies: - "@lerna/command" "3.21.0" - "@lerna/filter-options" "3.20.0" - "@lerna/has-npm-version" "3.16.5" - "@lerna/npm-install" "3.16.5" - "@lerna/package-graph" "3.18.5" - "@lerna/pulse-till-done" "3.13.0" - "@lerna/rimraf-dir" "3.16.5" - "@lerna/run-lifecycle" "3.16.2" - "@lerna/run-topologically" "3.18.5" - "@lerna/symlink-binary" "3.17.0" - "@lerna/symlink-dependencies" "3.17.0" - "@lerna/validation-error" "3.13.0" - dedent "^0.7.0" - get-port "^4.2.0" - multimatch "^3.0.0" - npm-package-arg "^6.1.0" - npmlog "^4.1.2" - p-finally "^1.0.0" - p-map "^2.1.0" - p-map-series "^1.0.0" - p-waterfall "^1.0.0" - read-package-tree "^5.1.6" - semver "^6.2.0" - -"@lerna/changed@3.21.0": - version "3.21.0" - resolved "https://registry.npmjs.org/@lerna/changed/-/changed-3.21.0.tgz#108e15f679bfe077af500f58248c634f1044ea0b" - integrity sha512-hzqoyf8MSHVjZp0gfJ7G8jaz+++mgXYiNs9iViQGA8JlN/dnWLI5sWDptEH3/B30Izo+fdVz0S0s7ydVE3pWIw== - dependencies: - "@lerna/collect-updates" "3.20.0" - "@lerna/command" "3.21.0" - "@lerna/listable" "3.18.5" - "@lerna/output" "3.13.0" - -"@lerna/check-working-tree@3.16.5": - version "3.16.5" - resolved "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.16.5.tgz#b4f8ae61bb4523561dfb9f8f8d874dd46bb44baa" - integrity sha512-xWjVBcuhvB8+UmCSb5tKVLB5OuzSpw96WEhS2uz6hkWVa/Euh1A0/HJwn2cemyK47wUrCQXtczBUiqnq9yX5VQ== - dependencies: - "@lerna/collect-uncommitted" "3.16.5" - "@lerna/describe-ref" "3.16.5" - "@lerna/validation-error" "3.13.0" - -"@lerna/child-process@3.16.5": - version "3.16.5" - resolved "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.16.5.tgz#38fa3c18064aa4ac0754ad80114776a7b36a69b2" - integrity sha512-vdcI7mzei9ERRV4oO8Y1LHBZ3A5+ampRKg1wq5nutLsUA4mEBN6H7JqjWOMY9xZemv6+kATm2ofjJ3lW5TszQg== - dependencies: - chalk "^2.3.1" - execa "^1.0.0" - strong-log-transformer "^2.0.0" - -"@lerna/clean@3.21.0": - version "3.21.0" - resolved "https://registry.npmjs.org/@lerna/clean/-/clean-3.21.0.tgz#c0b46b5300cc3dae2cda3bec14b803082da3856d" - integrity sha512-b/L9l+MDgE/7oGbrav6rG8RTQvRiZLO1zTcG17zgJAAuhlsPxJExMlh2DFwJEVi2les70vMhHfST3Ue1IMMjpg== - dependencies: - "@lerna/command" "3.21.0" - "@lerna/filter-options" "3.20.0" - "@lerna/prompt" "3.18.5" - "@lerna/pulse-till-done" "3.13.0" - "@lerna/rimraf-dir" "3.16.5" - p-map "^2.1.0" - p-map-series "^1.0.0" - p-waterfall "^1.0.0" - -"@lerna/cli@3.18.5": - version "3.18.5" - resolved "https://registry.npmjs.org/@lerna/cli/-/cli-3.18.5.tgz#c90c461542fcd35b6d5b015a290fb0dbfb41d242" - integrity sha512-erkbxkj9jfc89vVs/jBLY/fM0I80oLmJkFUV3Q3wk9J3miYhP14zgVEBsPZY68IZlEjT6T3Xlq2xO1AVaatHsA== - dependencies: - "@lerna/global-options" "3.13.0" - dedent "^0.7.0" - npmlog "^4.1.2" - yargs "^14.2.2" - -"@lerna/collect-uncommitted@3.16.5": - version "3.16.5" - resolved "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-3.16.5.tgz#a494d61aac31cdc7aec4bbe52c96550274132e63" - integrity sha512-ZgqnGwpDZiWyzIQVZtQaj9tRizsL4dUOhuOStWgTAw1EMe47cvAY2kL709DzxFhjr6JpJSjXV5rZEAeU3VE0Hg== - dependencies: - "@lerna/child-process" "3.16.5" - chalk "^2.3.1" - figgy-pudding "^3.5.1" - npmlog "^4.1.2" - -"@lerna/collect-updates@3.20.0": - version "3.20.0" - resolved "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.20.0.tgz#62f9d76ba21a25b7d9fbf31c02de88744a564bd1" - integrity sha512-qBTVT5g4fupVhBFuY4nI/3FSJtQVcDh7/gEPOpRxoXB/yCSnT38MFHXWl+y4einLciCjt/+0x6/4AG80fjay2Q== - dependencies: - "@lerna/child-process" "3.16.5" - "@lerna/describe-ref" "3.16.5" - minimatch "^3.0.4" - npmlog "^4.1.2" - slash "^2.0.0" - -"@lerna/command@3.21.0": - version "3.21.0" - resolved "https://registry.npmjs.org/@lerna/command/-/command-3.21.0.tgz#9a2383759dc7b700dacfa8a22b2f3a6e190121f7" - integrity sha512-T2bu6R8R3KkH5YoCKdutKv123iUgUbW8efVjdGCDnCMthAQzoentOJfDeodBwn0P2OqCl3ohsiNVtSn9h78fyQ== - dependencies: - "@lerna/child-process" "3.16.5" - "@lerna/package-graph" "3.18.5" - "@lerna/project" "3.21.0" - "@lerna/validation-error" "3.13.0" - "@lerna/write-log-file" "3.13.0" - clone-deep "^4.0.1" - dedent "^0.7.0" - execa "^1.0.0" - is-ci "^2.0.0" - npmlog "^4.1.2" - -"@lerna/conventional-commits@3.22.0": - version "3.22.0" - resolved "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.22.0.tgz#2798f4881ee2ef457bdae027ab7d0bf0af6f1e09" - integrity sha512-z4ZZk1e8Mhz7+IS8NxHr64wyklHctCJyWpJKEZZPJiLFJ8yKto/x38O80R10pIzC0rr8Sy/OsjSH4bl0TbbgqA== - dependencies: - "@lerna/validation-error" "3.13.0" - conventional-changelog-angular "^5.0.3" - conventional-changelog-core "^3.1.6" - conventional-recommended-bump "^5.0.0" - fs-extra "^8.1.0" - get-stream "^4.0.0" - lodash.template "^4.5.0" - npm-package-arg "^6.1.0" - npmlog "^4.1.2" - pify "^4.0.1" - semver "^6.2.0" - -"@lerna/create-symlink@3.16.2": - version "3.16.2" - resolved "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.16.2.tgz#412cb8e59a72f5a7d9463e4e4721ad2070149967" - integrity sha512-pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw== - dependencies: - "@zkochan/cmd-shim" "^3.1.0" - fs-extra "^8.1.0" - npmlog "^4.1.2" - -"@lerna/create@3.22.0": - version "3.22.0" - resolved "https://registry.npmjs.org/@lerna/create/-/create-3.22.0.tgz#d6bbd037c3dc5b425fe5f6d1b817057c278f7619" - integrity sha512-MdiQQzCcB4E9fBF1TyMOaAEz9lUjIHp1Ju9H7f3lXze5JK6Fl5NYkouAvsLgY6YSIhXMY8AHW2zzXeBDY4yWkw== - dependencies: - "@evocateur/pacote" "^9.6.3" - "@lerna/child-process" "3.16.5" - "@lerna/command" "3.21.0" - "@lerna/npm-conf" "3.16.0" - "@lerna/validation-error" "3.13.0" - camelcase "^5.0.0" - dedent "^0.7.0" - fs-extra "^8.1.0" - globby "^9.2.0" - init-package-json "^1.10.3" - npm-package-arg "^6.1.0" - p-reduce "^1.0.0" - pify "^4.0.1" - semver "^6.2.0" - slash "^2.0.0" - validate-npm-package-license "^3.0.3" - validate-npm-package-name "^3.0.0" - whatwg-url "^7.0.0" - -"@lerna/describe-ref@3.16.5": - version "3.16.5" - resolved "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-3.16.5.tgz#a338c25aaed837d3dc70b8a72c447c5c66346ac0" - integrity sha512-c01+4gUF0saOOtDBzbLMFOTJDHTKbDFNErEY6q6i9QaXuzy9LNN62z+Hw4acAAZuJQhrVWncVathcmkkjvSVGw== - dependencies: - "@lerna/child-process" "3.16.5" - npmlog "^4.1.2" - -"@lerna/diff@3.21.0": - version "3.21.0" - resolved "https://registry.npmjs.org/@lerna/diff/-/diff-3.21.0.tgz#e6df0d8b9916167ff5a49fcb02ac06424280a68d" - integrity sha512-5viTR33QV3S7O+bjruo1SaR40m7F2aUHJaDAC7fL9Ca6xji+aw1KFkpCtVlISS0G8vikUREGMJh+c/VMSc8Usw== - dependencies: - "@lerna/child-process" "3.16.5" - "@lerna/command" "3.21.0" - "@lerna/validation-error" "3.13.0" - npmlog "^4.1.2" - -"@lerna/exec@3.21.0": - version "3.21.0" - resolved "https://registry.npmjs.org/@lerna/exec/-/exec-3.21.0.tgz#17f07533893cb918a17b41bcc566dc437016db26" - integrity sha512-iLvDBrIE6rpdd4GIKTY9mkXyhwsJ2RvQdB9ZU+/NhR3okXfqKc6py/24tV111jqpXTtZUW6HNydT4dMao2hi1Q== - dependencies: - "@lerna/child-process" "3.16.5" - "@lerna/command" "3.21.0" - "@lerna/filter-options" "3.20.0" - "@lerna/profiler" "3.20.0" - "@lerna/run-topologically" "3.18.5" - "@lerna/validation-error" "3.13.0" - p-map "^2.1.0" - -"@lerna/filter-options@3.20.0": - version "3.20.0" - resolved "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.20.0.tgz#0f0f5d5a4783856eece4204708cc902cbc8af59b" - integrity sha512-bmcHtvxn7SIl/R9gpiNMVG7yjx7WyT0HSGw34YVZ9B+3xF/83N3r5Rgtjh4hheLZ+Q91Or0Jyu5O3Nr+AwZe2g== - dependencies: - "@lerna/collect-updates" "3.20.0" - "@lerna/filter-packages" "3.18.0" - dedent "^0.7.0" - figgy-pudding "^3.5.1" - npmlog "^4.1.2" - -"@lerna/filter-packages@3.18.0": - version "3.18.0" - resolved "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-3.18.0.tgz#6a7a376d285208db03a82958cfb8172e179b4e70" - integrity sha512-6/0pMM04bCHNATIOkouuYmPg6KH3VkPCIgTfQmdkPJTullERyEQfNUKikrefjxo1vHOoCACDpy65JYyKiAbdwQ== - dependencies: - "@lerna/validation-error" "3.13.0" - multimatch "^3.0.0" - npmlog "^4.1.2" - -"@lerna/get-npm-exec-opts@3.13.0": - version "3.13.0" - resolved "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-3.13.0.tgz#d1b552cb0088199fc3e7e126f914e39a08df9ea5" - integrity sha512-Y0xWL0rg3boVyJk6An/vurKzubyJKtrxYv2sj4bB8Mc5zZ3tqtv0ccbOkmkXKqbzvNNF7VeUt1OJ3DRgtC/QZw== - dependencies: - npmlog "^4.1.2" - -"@lerna/get-packed@3.16.0": - version "3.16.0" - resolved "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-3.16.0.tgz#1b316b706dcee86c7baa55e50b087959447852ff" - integrity sha512-AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw== - dependencies: - fs-extra "^8.1.0" - ssri "^6.0.1" - tar "^4.4.8" - -"@lerna/github-client@3.22.0": - version "3.22.0" - resolved "https://registry.npmjs.org/@lerna/github-client/-/github-client-3.22.0.tgz#5d816aa4f76747ed736ae64ff962b8f15c354d95" - integrity sha512-O/GwPW+Gzr3Eb5bk+nTzTJ3uv+jh5jGho9BOqKlajXaOkMYGBELEAqV5+uARNGWZFvYAiF4PgqHb6aCUu7XdXg== - dependencies: - "@lerna/child-process" "3.16.5" - "@octokit/plugin-enterprise-rest" "^6.0.1" - "@octokit/rest" "^16.28.4" - git-url-parse "^11.1.2" - npmlog "^4.1.2" - -"@lerna/gitlab-client@3.15.0": - version "3.15.0" - resolved "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-3.15.0.tgz#91f4ec8c697b5ac57f7f25bd50fe659d24aa96a6" - integrity sha512-OsBvRSejHXUBMgwWQqNoioB8sgzL/Pf1pOUhHKtkiMl6aAWjklaaq5HPMvTIsZPfS6DJ9L5OK2GGZuooP/5c8Q== - dependencies: - node-fetch "^2.5.0" - npmlog "^4.1.2" - whatwg-url "^7.0.0" - -"@lerna/global-options@3.13.0": - version "3.13.0" - resolved "https://registry.npmjs.org/@lerna/global-options/-/global-options-3.13.0.tgz#217662290db06ad9cf2c49d8e3100ee28eaebae1" - integrity sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ== - -"@lerna/has-npm-version@3.16.5": - version "3.16.5" - resolved "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-3.16.5.tgz#ab83956f211d8923ea6afe9b979b38cc73b15326" - integrity sha512-WL7LycR9bkftyqbYop5rEGJ9sRFIV55tSGmbN1HLrF9idwOCD7CLrT64t235t3t4O5gehDnwKI5h2U3oxTrF8Q== - dependencies: - "@lerna/child-process" "3.16.5" - semver "^6.2.0" - -"@lerna/import@3.22.0": - version "3.22.0" - resolved "https://registry.npmjs.org/@lerna/import/-/import-3.22.0.tgz#1a5f0394f38e23c4f642a123e5e1517e70d068d2" - integrity sha512-uWOlexasM5XR6tXi4YehODtH9Y3OZrFht3mGUFFT3OIl2s+V85xIGFfqFGMTipMPAGb2oF1UBLL48kR43hRsOg== - dependencies: - "@lerna/child-process" "3.16.5" - "@lerna/command" "3.21.0" - "@lerna/prompt" "3.18.5" - "@lerna/pulse-till-done" "3.13.0" - "@lerna/validation-error" "3.13.0" - dedent "^0.7.0" - fs-extra "^8.1.0" - p-map-series "^1.0.0" - -"@lerna/info@3.21.0": - version "3.21.0" - resolved "https://registry.npmjs.org/@lerna/info/-/info-3.21.0.tgz#76696b676fdb0f35d48c83c63c1e32bb5e37814f" - integrity sha512-0XDqGYVBgWxUquFaIptW2bYSIu6jOs1BtkvRTWDDhw4zyEdp6q4eaMvqdSap1CG+7wM5jeLCi6z94wS0AuiuwA== - dependencies: - "@lerna/command" "3.21.0" - "@lerna/output" "3.13.0" - envinfo "^7.3.1" - -"@lerna/init@3.21.0": - version "3.21.0" - resolved "https://registry.npmjs.org/@lerna/init/-/init-3.21.0.tgz#1e810934dc8bf4e5386c031041881d3b4096aa5c" - integrity sha512-6CM0z+EFUkFfurwdJCR+LQQF6MqHbYDCBPyhu/d086LRf58GtYZYj49J8mKG9ktayp/TOIxL/pKKjgLD8QBPOg== - dependencies: - "@lerna/child-process" "3.16.5" - "@lerna/command" "3.21.0" - fs-extra "^8.1.0" - p-map "^2.1.0" - write-json-file "^3.2.0" - -"@lerna/link@3.21.0": - version "3.21.0" - resolved "https://registry.npmjs.org/@lerna/link/-/link-3.21.0.tgz#8be68ff0ccee104b174b5bbd606302c2f06e9d9b" - integrity sha512-tGu9GxrX7Ivs+Wl3w1+jrLi1nQ36kNI32dcOssij6bg0oZ2M2MDEFI9UF2gmoypTaN9uO5TSsjCFS7aR79HbdQ== - dependencies: - "@lerna/command" "3.21.0" - "@lerna/package-graph" "3.18.5" - "@lerna/symlink-dependencies" "3.17.0" - p-map "^2.1.0" - slash "^2.0.0" - -"@lerna/list@3.21.0": - version "3.21.0" - resolved "https://registry.npmjs.org/@lerna/list/-/list-3.21.0.tgz#42f76fafa56dea13b691ec8cab13832691d61da2" - integrity sha512-KehRjE83B1VaAbRRkRy6jLX1Cin8ltsrQ7FHf2bhwhRHK0S54YuA6LOoBnY/NtA8bHDX/Z+G5sMY78X30NS9tg== - dependencies: - "@lerna/command" "3.21.0" - "@lerna/filter-options" "3.20.0" - "@lerna/listable" "3.18.5" - "@lerna/output" "3.13.0" - -"@lerna/listable@3.18.5": - version "3.18.5" - resolved "https://registry.npmjs.org/@lerna/listable/-/listable-3.18.5.tgz#e82798405b5ed8fc51843c8ef1e7a0e497388a1a" - integrity sha512-Sdr3pVyaEv5A7ZkGGYR7zN+tTl2iDcinryBPvtuv20VJrXBE8wYcOks1edBTcOWsPjCE/rMP4bo1pseyk3UTsg== - dependencies: - "@lerna/query-graph" "3.18.5" - chalk "^2.3.1" - columnify "^1.5.4" - -"@lerna/log-packed@3.16.0": - version "3.16.0" - resolved "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-3.16.0.tgz#f83991041ee77b2495634e14470b42259fd2bc16" - integrity sha512-Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ== - dependencies: - byte-size "^5.0.1" - columnify "^1.5.4" - has-unicode "^2.0.1" - npmlog "^4.1.2" - -"@lerna/npm-conf@3.16.0": - version "3.16.0" - resolved "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-3.16.0.tgz#1c10a89ae2f6c2ee96962557738685300d376827" - integrity sha512-HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA== - dependencies: - config-chain "^1.1.11" - pify "^4.0.1" - -"@lerna/npm-dist-tag@3.18.5": - version "3.18.5" - resolved "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-3.18.5.tgz#9ef9abb7c104077b31f6fab22cc73b314d54ac55" - integrity sha512-xw0HDoIG6HreVsJND9/dGls1c+lf6vhu7yJoo56Sz5bvncTloYGLUppIfDHQr4ZvmPCK8rsh0euCVh2giPxzKQ== - dependencies: - "@evocateur/npm-registry-fetch" "^4.0.0" - "@lerna/otplease" "3.18.5" - figgy-pudding "^3.5.1" - npm-package-arg "^6.1.0" - npmlog "^4.1.2" - -"@lerna/npm-install@3.16.5": - version "3.16.5" - resolved "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-3.16.5.tgz#d6bfdc16f81285da66515ae47924d6e278d637d3" - integrity sha512-hfiKk8Eku6rB9uApqsalHHTHY+mOrrHeWEs+gtg7+meQZMTS3kzv4oVp5cBZigndQr3knTLjwthT/FX4KvseFg== - dependencies: - "@lerna/child-process" "3.16.5" - "@lerna/get-npm-exec-opts" "3.13.0" - fs-extra "^8.1.0" - npm-package-arg "^6.1.0" - npmlog "^4.1.2" - signal-exit "^3.0.2" - write-pkg "^3.1.0" - -"@lerna/npm-publish@3.18.5": - version "3.18.5" - resolved "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-3.18.5.tgz#240e4039959fd9816b49c5b07421e11b5cb000af" - integrity sha512-3etLT9+2L8JAx5F8uf7qp6iAtOLSMj+ZYWY6oUgozPi/uLqU0/gsMsEXh3F0+YVW33q0M61RpduBoAlOOZnaTg== - dependencies: - "@evocateur/libnpmpublish" "^1.2.2" - "@lerna/otplease" "3.18.5" - "@lerna/run-lifecycle" "3.16.2" - figgy-pudding "^3.5.1" - fs-extra "^8.1.0" - npm-package-arg "^6.1.0" - npmlog "^4.1.2" - pify "^4.0.1" - read-package-json "^2.0.13" - -"@lerna/npm-run-script@3.16.5": - version "3.16.5" - resolved "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-3.16.5.tgz#9c2ec82453a26c0b46edc0bb7c15816c821f5c15" - integrity sha512-1asRi+LjmVn3pMjEdpqKJZFT/3ZNpb+VVeJMwrJaV/3DivdNg7XlPK9LTrORuKU4PSvhdEZvJmSlxCKyDpiXsQ== - dependencies: - "@lerna/child-process" "3.16.5" - "@lerna/get-npm-exec-opts" "3.13.0" - npmlog "^4.1.2" - -"@lerna/otplease@3.18.5": - version "3.18.5" - resolved "https://registry.npmjs.org/@lerna/otplease/-/otplease-3.18.5.tgz#b77b8e760b40abad9f7658d988f3ea77d4fd0231" - integrity sha512-S+SldXAbcXTEDhzdxYLU0ZBKuYyURP/ND2/dK6IpKgLxQYh/z4ScljPDMyKymmEvgiEJmBsPZAAPfmNPEzxjog== - dependencies: - "@lerna/prompt" "3.18.5" - figgy-pudding "^3.5.1" - -"@lerna/output@3.13.0": - version "3.13.0" - resolved "https://registry.npmjs.org/@lerna/output/-/output-3.13.0.tgz#3ded7cc908b27a9872228a630d950aedae7a4989" - integrity sha512-7ZnQ9nvUDu/WD+bNsypmPG5MwZBwu86iRoiW6C1WBuXXDxM5cnIAC1m2WxHeFnjyMrYlRXM9PzOQ9VDD+C15Rg== - dependencies: - npmlog "^4.1.2" - -"@lerna/pack-directory@3.16.4": - version "3.16.4" - resolved "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-3.16.4.tgz#3eae5f91bdf5acfe0384510ed53faddc4c074693" - integrity sha512-uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng== - dependencies: - "@lerna/get-packed" "3.16.0" - "@lerna/package" "3.16.0" - "@lerna/run-lifecycle" "3.16.2" - figgy-pudding "^3.5.1" - npm-packlist "^1.4.4" - npmlog "^4.1.2" - tar "^4.4.10" - temp-write "^3.4.0" - -"@lerna/package-graph@3.18.5", "@lerna/package-graph@^3.18.5": - version "3.18.5" - resolved "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-3.18.5.tgz#c740e2ea3578d059e551633e950690831b941f6b" - integrity sha512-8QDrR9T+dBegjeLr+n9WZTVxUYUhIUjUgZ0gvNxUBN8S1WB9r6H5Yk56/MVaB64tA3oGAN9IIxX6w0WvTfFudA== - dependencies: - "@lerna/prerelease-id-from-version" "3.16.0" - "@lerna/validation-error" "3.13.0" - npm-package-arg "^6.1.0" - npmlog "^4.1.2" - semver "^6.2.0" - -"@lerna/package@3.16.0": - version "3.16.0" - resolved "https://registry.npmjs.org/@lerna/package/-/package-3.16.0.tgz#7e0a46e4697ed8b8a9c14d59c7f890e0d38ba13c" - integrity sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw== - dependencies: - load-json-file "^5.3.0" - npm-package-arg "^6.1.0" - write-pkg "^3.1.0" - -"@lerna/prerelease-id-from-version@3.16.0": - version "3.16.0" - resolved "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz#b24bfa789f5e1baab914d7b08baae9b7bd7d83a1" - integrity sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA== - dependencies: - semver "^6.2.0" - -"@lerna/profiler@3.20.0": - version "3.20.0" - resolved "https://registry.npmjs.org/@lerna/profiler/-/profiler-3.20.0.tgz#0f6dc236f4ea8f9ea5f358c6703305a4f32ad051" - integrity sha512-bh8hKxAlm6yu8WEOvbLENm42i2v9SsR4WbrCWSbsmOElx3foRnMlYk7NkGECa+U5c3K4C6GeBbwgqs54PP7Ljg== - dependencies: - figgy-pudding "^3.5.1" - fs-extra "^8.1.0" - npmlog "^4.1.2" - upath "^1.2.0" - -"@lerna/project@3.21.0", "@lerna/project@^3.18.0": - version "3.21.0" - resolved "https://registry.npmjs.org/@lerna/project/-/project-3.21.0.tgz#5d784d2d10c561a00f20320bcdb040997c10502d" - integrity sha512-xT1mrpET2BF11CY32uypV2GPtPVm6Hgtha7D81GQP9iAitk9EccrdNjYGt5UBYASl4CIDXBRxwmTTVGfrCx82A== - dependencies: - "@lerna/package" "3.16.0" - "@lerna/validation-error" "3.13.0" - cosmiconfig "^5.1.0" - dedent "^0.7.0" - dot-prop "^4.2.0" - glob-parent "^5.0.0" - globby "^9.2.0" - load-json-file "^5.3.0" - npmlog "^4.1.2" - p-map "^2.1.0" - resolve-from "^4.0.0" - write-json-file "^3.2.0" - -"@lerna/prompt@3.18.5": - version "3.18.5" - resolved "https://registry.npmjs.org/@lerna/prompt/-/prompt-3.18.5.tgz#628cd545f225887d060491ab95df899cfc5218a1" - integrity sha512-rkKj4nm1twSbBEb69+Em/2jAERK8htUuV8/xSjN0NPC+6UjzAwY52/x9n5cfmpa9lyKf/uItp7chCI7eDmNTKQ== - dependencies: - inquirer "^6.2.0" - npmlog "^4.1.2" - -"@lerna/publish@3.22.1": - version "3.22.1" - resolved "https://registry.npmjs.org/@lerna/publish/-/publish-3.22.1.tgz#b4f7ce3fba1e9afb28be4a1f3d88222269ba9519" - integrity sha512-PG9CM9HUYDreb1FbJwFg90TCBQooGjj+n/pb3gw/eH5mEDq0p8wKdLFe0qkiqUkm/Ub5C8DbVFertIo0Vd0zcw== - dependencies: - "@evocateur/libnpmaccess" "^3.1.2" - "@evocateur/npm-registry-fetch" "^4.0.0" - "@evocateur/pacote" "^9.6.3" - "@lerna/check-working-tree" "3.16.5" - "@lerna/child-process" "3.16.5" - "@lerna/collect-updates" "3.20.0" - "@lerna/command" "3.21.0" - "@lerna/describe-ref" "3.16.5" - "@lerna/log-packed" "3.16.0" - "@lerna/npm-conf" "3.16.0" - "@lerna/npm-dist-tag" "3.18.5" - "@lerna/npm-publish" "3.18.5" - "@lerna/otplease" "3.18.5" - "@lerna/output" "3.13.0" - "@lerna/pack-directory" "3.16.4" - "@lerna/prerelease-id-from-version" "3.16.0" - "@lerna/prompt" "3.18.5" - "@lerna/pulse-till-done" "3.13.0" - "@lerna/run-lifecycle" "3.16.2" - "@lerna/run-topologically" "3.18.5" - "@lerna/validation-error" "3.13.0" - "@lerna/version" "3.22.1" - figgy-pudding "^3.5.1" - fs-extra "^8.1.0" - npm-package-arg "^6.1.0" - npmlog "^4.1.2" - p-finally "^1.0.0" - p-map "^2.1.0" - p-pipe "^1.2.0" - semver "^6.2.0" - -"@lerna/pulse-till-done@3.13.0": - version "3.13.0" - resolved "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-3.13.0.tgz#c8e9ce5bafaf10d930a67d7ed0ccb5d958fe0110" - integrity sha512-1SOHpy7ZNTPulzIbargrgaJX387csN7cF1cLOGZiJQA6VqnS5eWs2CIrG8i8wmaUavj2QlQ5oEbRMVVXSsGrzA== - dependencies: - npmlog "^4.1.2" - -"@lerna/query-graph@3.18.5": - version "3.18.5" - resolved "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-3.18.5.tgz#df4830bb5155273003bf35e8dda1c32d0927bd86" - integrity sha512-50Lf4uuMpMWvJ306be3oQDHrWV42nai9gbIVByPBYJuVW8dT8O8pA3EzitNYBUdLL9/qEVbrR0ry1HD7EXwtRA== - dependencies: - "@lerna/package-graph" "3.18.5" - figgy-pudding "^3.5.1" - -"@lerna/resolve-symlink@3.16.0": - version "3.16.0" - resolved "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-3.16.0.tgz#37fc7095fabdbcf317c26eb74e0d0bde8efd2386" - integrity sha512-Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ== - dependencies: - fs-extra "^8.1.0" - npmlog "^4.1.2" - read-cmd-shim "^1.0.1" - -"@lerna/rimraf-dir@3.16.5": - version "3.16.5" - resolved "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-3.16.5.tgz#04316ab5ffd2909657aaf388ea502cb8c2f20a09" - integrity sha512-bQlKmO0pXUsXoF8lOLknhyQjOZsCc0bosQDoX4lujBXSWxHVTg1VxURtWf2lUjz/ACsJVDfvHZbDm8kyBk5okA== - dependencies: - "@lerna/child-process" "3.16.5" - npmlog "^4.1.2" - path-exists "^3.0.0" - rimraf "^2.6.2" - -"@lerna/run-lifecycle@3.16.2": - version "3.16.2" - resolved "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-3.16.2.tgz#67b288f8ea964db9ea4fb1fbc7715d5bbb0bce00" - integrity sha512-RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A== - dependencies: - "@lerna/npm-conf" "3.16.0" - figgy-pudding "^3.5.1" - npm-lifecycle "^3.1.2" - npmlog "^4.1.2" - -"@lerna/run-topologically@3.18.5": - version "3.18.5" - resolved "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-3.18.5.tgz#3cd639da20e967d7672cb88db0f756b92f2fdfc3" - integrity sha512-6N1I+6wf4hLOnPW+XDZqwufyIQ6gqoPfHZFkfWlvTQ+Ue7CuF8qIVQ1Eddw5HKQMkxqN10thKOFfq/9NQZ4NUg== - dependencies: - "@lerna/query-graph" "3.18.5" - figgy-pudding "^3.5.1" - p-queue "^4.0.0" - -"@lerna/run@3.21.0": - version "3.21.0" - resolved "https://registry.npmjs.org/@lerna/run/-/run-3.21.0.tgz#2a35ec84979e4d6e42474fe148d32e5de1cac891" - integrity sha512-fJF68rT3veh+hkToFsBmUJ9MHc9yGXA7LSDvhziAojzOb0AI/jBDp6cEcDQyJ7dbnplba2Lj02IH61QUf9oW0Q== - dependencies: - "@lerna/command" "3.21.0" - "@lerna/filter-options" "3.20.0" - "@lerna/npm-run-script" "3.16.5" - "@lerna/output" "3.13.0" - "@lerna/profiler" "3.20.0" - "@lerna/run-topologically" "3.18.5" - "@lerna/timer" "3.13.0" - "@lerna/validation-error" "3.13.0" - p-map "^2.1.0" - -"@lerna/symlink-binary@3.17.0": - version "3.17.0" - resolved "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-3.17.0.tgz#8f8031b309863814883d3f009877f82e38aef45a" - integrity sha512-RLpy9UY6+3nT5J+5jkM5MZyMmjNHxZIZvXLV+Q3MXrf7Eaa1hNqyynyj4RO95fxbS+EZc4XVSk25DGFQbcRNSQ== - dependencies: - "@lerna/create-symlink" "3.16.2" - "@lerna/package" "3.16.0" - fs-extra "^8.1.0" - p-map "^2.1.0" - -"@lerna/symlink-dependencies@3.17.0": - version "3.17.0" - resolved "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-3.17.0.tgz#48d6360e985865a0e56cd8b51b308a526308784a" - integrity sha512-KmjU5YT1bpt6coOmdFueTJ7DFJL4H1w5eF8yAQ2zsGNTtZ+i5SGFBWpb9AQaw168dydc3s4eu0W0Sirda+F59Q== - dependencies: - "@lerna/create-symlink" "3.16.2" - "@lerna/resolve-symlink" "3.16.0" - "@lerna/symlink-binary" "3.17.0" - fs-extra "^8.1.0" - p-finally "^1.0.0" - p-map "^2.1.0" - p-map-series "^1.0.0" - -"@lerna/timer@3.13.0": - version "3.13.0" - resolved "https://registry.npmjs.org/@lerna/timer/-/timer-3.13.0.tgz#bcd0904551db16e08364d6c18e5e2160fc870781" - integrity sha512-RHWrDl8U4XNPqY5MQHkToWS9jHPnkLZEt5VD+uunCKTfzlxGnRCr3/zVr8VGy/uENMYpVP3wJa4RKGY6M0vkRw== - -"@lerna/validation-error@3.13.0": - version "3.13.0" - resolved "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-3.13.0.tgz#c86b8f07c5ab9539f775bd8a54976e926f3759c3" - integrity sha512-SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA== - dependencies: - npmlog "^4.1.2" - -"@lerna/version@3.22.1": - version "3.22.1" - resolved "https://registry.npmjs.org/@lerna/version/-/version-3.22.1.tgz#9805a9247a47ee62d6b81bd9fa5fb728b24b59e2" - integrity sha512-PSGt/K1hVqreAFoi3zjD0VEDupQ2WZVlVIwesrE5GbrL2BjXowjCsTDPqblahDUPy0hp6h7E2kG855yLTp62+g== - dependencies: - "@lerna/check-working-tree" "3.16.5" - "@lerna/child-process" "3.16.5" - "@lerna/collect-updates" "3.20.0" - "@lerna/command" "3.21.0" - "@lerna/conventional-commits" "3.22.0" - "@lerna/github-client" "3.22.0" - "@lerna/gitlab-client" "3.15.0" - "@lerna/output" "3.13.0" - "@lerna/prerelease-id-from-version" "3.16.0" - "@lerna/prompt" "3.18.5" - "@lerna/run-lifecycle" "3.16.2" - "@lerna/run-topologically" "3.18.5" - "@lerna/validation-error" "3.13.0" - chalk "^2.3.1" - dedent "^0.7.0" - load-json-file "^5.3.0" - minimatch "^3.0.4" - npmlog "^4.1.2" - p-map "^2.1.0" - p-pipe "^1.2.0" - p-reduce "^1.0.0" - p-waterfall "^1.0.0" - semver "^6.2.0" - slash "^2.0.0" - temp-write "^3.4.0" - write-json-file "^3.2.0" - -"@lerna/write-log-file@3.13.0": - version "3.13.0" - resolved "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-3.13.0.tgz#b78d9e4cfc1349a8be64d91324c4c8199e822a26" - integrity sha512-RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A== - dependencies: - npmlog "^4.1.2" - write-file-atomic "^2.3.0" - -"@material-icons/font@^1.0.2": - version "1.0.3" - resolved "https://registry.npmjs.org/@material-icons/font/-/font-1.0.3.tgz#f722e5a69a03f20ef47d015cb69420bebeeaabe5" - integrity sha512-aIRd0Z9b/HJ/O24KOaP7dNsXypMnXhpWrpLVYvQB/JesVqXYSbioYND200sR+C14a0LSCp+qWnWCnSXmN1hWGw== - -"@material-ui/core@^4.9.1": - version "4.9.7" - resolved "https://registry.npmjs.org/@material-ui/core/-/core-4.9.7.tgz#0c1caf123278770f34c5d8e9ecd9e1314f87a621" - integrity sha512-RTRibZgq572GHEskMAG4sP+bt3P3XyIkv3pOTR8grZAW2rSUd6JoGZLRM4S2HkuO7wS7cAU5SpU2s1EsmTgWog== - dependencies: - "@babel/runtime" "^7.4.4" - "@material-ui/styles" "^4.9.6" - "@material-ui/system" "^4.9.6" - "@material-ui/types" "^5.0.0" - "@material-ui/utils" "^4.9.6" - "@types/react-transition-group" "^4.2.0" - clsx "^1.0.2" - hoist-non-react-statics "^3.3.2" - popper.js "^1.14.1" - prop-types "^15.7.2" - react-is "^16.8.0" - react-transition-group "^4.3.0" - -"@material-ui/icons@^4.9.1": - version "4.9.1" - resolved "https://registry.npmjs.org/@material-ui/icons/-/icons-4.9.1.tgz#fdeadf8cb3d89208945b33dbc50c7c616d0bd665" - integrity sha512-GBitL3oBWO0hzBhvA9KxqcowRUsA0qzwKkURyC8nppnC3fw54KPKZ+d4V1Eeg/UnDRSzDaI9nGCdel/eh9AQMg== - dependencies: - "@babel/runtime" "^7.4.4" - -"@material-ui/lab@4.0.0-alpha.45": - version "4.0.0-alpha.45" - resolved "https://registry.npmjs.org/@material-ui/lab/-/lab-4.0.0-alpha.45.tgz#6e1abbdd6e44b9ef7b3eff8ef892a3da5dc52f10" - integrity sha512-zT6kUU87SHsPukiu3tlWg8V6o0tGS38c1b/xst/kPqX6eLbfqrROyxhHn1A8ZtHmqga1AKQdv/1llQoG80Afww== - dependencies: - "@babel/runtime" "^7.4.4" - "@material-ui/utils" "^4.7.1" - clsx "^1.0.4" - prop-types "^15.7.2" - react-is "^16.8.0" - -"@material-ui/pickers@^3.2.2": - version "3.2.10" - resolved "https://registry.npmjs.org/@material-ui/pickers/-/pickers-3.2.10.tgz#19df024895876eb0ec7cd239bbaea595f703f0ae" - integrity sha512-B8G6Obn5S3RCl7hwahkQj9sKUapwXWFjiaz/Bsw1fhYFdNMnDUolRiWQSoKPb1/oKe37Dtfszoywi1Ynbo3y8w== - dependencies: - "@babel/runtime" "^7.6.0" - "@date-io/core" "1.x" - "@types/styled-jsx" "^2.2.8" - clsx "^1.0.2" - react-transition-group "^4.0.0" - rifm "^0.7.0" - -"@material-ui/styles@^4.9.6": - version "4.9.6" - resolved "https://registry.npmjs.org/@material-ui/styles/-/styles-4.9.6.tgz#924a30bf7c9b91af9c8f19c12c8573b8a4ecd085" - integrity sha512-ijgwStEkw1OZ6gCz18hkjycpr/3lKs1hYPi88O/AUn4vMuuGEGAIrqKVFq/lADmZUNF3DOFIk8LDkp7zmjPxtA== - dependencies: - "@babel/runtime" "^7.4.4" - "@emotion/hash" "^0.8.0" - "@material-ui/types" "^5.0.0" - "@material-ui/utils" "^4.9.6" - clsx "^1.0.2" - csstype "^2.5.2" - hoist-non-react-statics "^3.3.2" - jss "^10.0.3" - jss-plugin-camel-case "^10.0.3" - jss-plugin-default-unit "^10.0.3" - jss-plugin-global "^10.0.3" - jss-plugin-nested "^10.0.3" - jss-plugin-props-sort "^10.0.3" - jss-plugin-rule-value-function "^10.0.3" - jss-plugin-vendor-prefixer "^10.0.3" - prop-types "^15.7.2" - -"@material-ui/system@^4.9.6": - version "4.9.6" - resolved "https://registry.npmjs.org/@material-ui/system/-/system-4.9.6.tgz#fd060540224da4d1740da8ca6e7af288e217717e" - integrity sha512-QtfoAePyqXoZ2HUVSwGb1Ro0kucMCvVjbI0CdYIR21t0Opgfm1Oer6ni9P5lfeXA39xSt0wCierw37j+YES48Q== - dependencies: - "@babel/runtime" "^7.4.4" - "@material-ui/utils" "^4.9.6" - prop-types "^15.7.2" - -"@material-ui/types@^5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@material-ui/types/-/types-5.0.0.tgz#26d6259dc6b39f4c2e1e9aceff7a11e031941741" - integrity sha512-UeH2BuKkwDndtMSS0qgx1kCzSMw+ydtj0xx/XbFtxNSTlXydKwzs5gVW5ZKsFlAkwoOOQ9TIsyoCC8hq18tOwg== - -"@material-ui/utils@^4.7.1", "@material-ui/utils@^4.9.6": - version "4.9.6" - resolved "https://registry.npmjs.org/@material-ui/utils/-/utils-4.9.6.tgz#5f1f9f6e4df9c8b6a263293b68c94834248ff157" - integrity sha512-gqlBn0JPPTUZeAktn1rgMcy9Iczrr74ecx31tyZLVGdBGGzsxzM6PP6zeS7FuoLS6vG4hoZP7hWnOoHtkR0Kvw== - dependencies: - "@babel/runtime" "^7.4.4" - prop-types "^15.7.2" - react-is "^16.8.0" - -"@mattiasbuelens/web-streams-polyfill@^0.2.0": - version "0.2.1" - resolved "https://registry.npmjs.org/@mattiasbuelens/web-streams-polyfill/-/web-streams-polyfill-0.2.1.tgz#d7c4aa94f98084ec0787be084d47167d62ea5f67" - integrity sha512-oKuFCQFa3W7Hj7zKn0+4ypI8JFm4ZKIoncwAC6wd5WwFW2sL7O1hpPoJdSWpynQ4DJ4lQ6MvFoVDmCLilonDFg== - dependencies: - "@types/whatwg-streams" "^0.0.7" - -"@mdx-js/react@^1.0.0", "@mdx-js/react@^1.5.2": - version "1.5.9" - resolved "https://registry.npmjs.org/@mdx-js/react/-/react-1.5.9.tgz#31873ab097fbe58c61c7585fc0be64e83182b6df" - integrity sha512-rengdUSedIdIQbXPSeafItCacTYocARAjUA51b6R1KNHmz+59efz7UmyTKr73viJQZ98ouu7iRGmOTtjRrbbWA== - -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" - integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== - dependencies: - "@nodelib/fs.stat" "2.0.3" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" - integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== - -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.4" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" - integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== - dependencies: - "@nodelib/fs.scandir" "2.1.3" - fastq "^1.6.0" - -"@octokit/auth-token@^2.4.0": - version "2.4.0" - resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.0.tgz#b64178975218b99e4dfe948253f0673cbbb59d9f" - integrity sha512-eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg== - dependencies: - "@octokit/types" "^2.0.0" - -"@octokit/core@^3.0.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@octokit/core/-/core-3.1.0.tgz#9c3c9b23f7504668cfa057f143ccbf0c645a0ac9" - integrity sha512-yPyQSmxIXLieEIRikk2w8AEtWkFdfG/LXcw1KvEtK3iP0ENZLW/WYQmdzOKqfSaLhooz4CJ9D+WY79C8ZliACw== - dependencies: - "@octokit/auth-token" "^2.4.0" - "@octokit/graphql" "^4.3.1" - "@octokit/request" "^5.4.0" - "@octokit/types" "^5.0.0" - before-after-hook "^2.1.0" - universal-user-agent "^5.0.0" - -"@octokit/endpoint@^6.0.1": - version "6.0.3" - resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.3.tgz#dd09b599662d7e1b66374a177ab620d8cdf73487" - integrity sha512-Y900+r0gIz+cWp6ytnkibbD95ucEzDSKzlEnaWS52hbCDNcCJYO5mRmWW7HRAnDc7am+N/5Lnd8MppSaTYx1Yg== - dependencies: - "@octokit/types" "^5.0.0" - is-plain-object "^3.0.0" - universal-user-agent "^5.0.0" - -"@octokit/graphql@^4.3.1": - version "4.5.1" - resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.5.1.tgz#162aed1490320b88ce34775b3f6b8de945529fa9" - integrity sha512-qgMsROG9K2KxDs12CO3bySJaYoUu2aic90qpFrv7A8sEBzZ7UFGvdgPKiLw5gOPYEYbS0Xf8Tvf84tJutHPulQ== - dependencies: - "@octokit/request" "^5.3.0" - "@octokit/types" "^5.0.0" - universal-user-agent "^5.0.0" - -"@octokit/plugin-enterprise-rest@^6.0.1": - version "6.0.1" - resolved "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" - integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== - -"@octokit/plugin-paginate-rest@^1.1.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz#004170acf8c2be535aba26727867d692f7b488fc" - integrity sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q== - dependencies: - "@octokit/types" "^2.0.1" - -"@octokit/plugin-paginate-rest@^2.2.0": - version "2.2.3" - resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.2.3.tgz#a6ad4377e7e7832fb4bdd9d421e600cb7640ac27" - integrity sha512-eKTs91wXnJH8Yicwa30jz6DF50kAh7vkcqCQ9D7/tvBAP5KKkg6I2nNof8Mp/65G0Arjsb4QcOJcIEQY+rK1Rg== - dependencies: - "@octokit/types" "^5.0.0" - -"@octokit/plugin-request-log@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz#eef87a431300f6148c39a7f75f8cfeb218b2547e" - integrity sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw== - -"@octokit/plugin-rest-endpoint-methods@2.4.0": - version "2.4.0" - resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz#3288ecf5481f68c494dd0602fc15407a59faf61e" - integrity sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ== - dependencies: - "@octokit/types" "^2.0.1" - deprecation "^2.3.1" - -"@octokit/plugin-rest-endpoint-methods@4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.0.0.tgz#b02a2006dda8e908c3f8ab381dd5475ef5a810a8" - integrity sha512-emS6gysz4E9BNi9IrCl7Pm4kR+Az3MmVB0/DoDCmF4U48NbYG3weKyDlgkrz6Jbl4Mu4nDx8YWZwC4HjoTdcCA== - dependencies: - "@octokit/types" "^5.0.0" - deprecation "^2.3.1" - -"@octokit/request-error@^1.0.2": - version "1.2.1" - resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.1.tgz#ede0714c773f32347576c25649dc013ae6b31801" - integrity sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA== - dependencies: - "@octokit/types" "^2.0.0" - deprecation "^2.0.0" - once "^1.4.0" - -"@octokit/request-error@^2.0.0": - version "2.0.2" - resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.2.tgz#0e76b83f5d8fdda1db99027ea5f617c2e6ba9ed0" - integrity sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw== - dependencies: - "@octokit/types" "^5.0.1" - deprecation "^2.0.0" - once "^1.4.0" - -"@octokit/request@^5.2.0", "@octokit/request@^5.3.0", "@octokit/request@^5.4.0": - version "5.4.5" - resolved "https://registry.npmjs.org/@octokit/request/-/request-5.4.5.tgz#8df65bd812047521f7e9db6ff118c06ba84ac10b" - integrity sha512-atAs5GAGbZedvJXXdjtKljin+e2SltEs48B3naJjqWupYl2IUBbB/CJisyjbNHcKpHzb3E+OYEZ46G8eakXgQg== - dependencies: - "@octokit/endpoint" "^6.0.1" - "@octokit/request-error" "^2.0.0" - "@octokit/types" "^5.0.0" - deprecation "^2.0.0" - is-plain-object "^3.0.0" - node-fetch "^2.3.0" - once "^1.4.0" - universal-user-agent "^5.0.0" - -"@octokit/rest@^16.28.4": - version "16.43.1" - resolved "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.1.tgz#3b11e7d1b1ac2bbeeb23b08a17df0b20947eda6b" - integrity sha512-gfFKwRT/wFxq5qlNjnW2dh+qh74XgTQ2B179UX5K1HYCluioWj8Ndbgqw2PVqa1NnVJkGHp2ovMpVn/DImlmkw== - dependencies: - "@octokit/auth-token" "^2.4.0" - "@octokit/plugin-paginate-rest" "^1.1.1" - "@octokit/plugin-request-log" "^1.0.0" - "@octokit/plugin-rest-endpoint-methods" "2.4.0" - "@octokit/request" "^5.2.0" - "@octokit/request-error" "^1.0.2" - atob-lite "^2.0.0" - before-after-hook "^2.0.0" - btoa-lite "^1.0.0" - deprecation "^2.0.0" - lodash.get "^4.4.2" - lodash.set "^4.3.2" - lodash.uniq "^4.5.0" - octokit-pagination-methods "^1.1.0" - once "^1.4.0" - universal-user-agent "^4.0.0" - -"@octokit/rest@^18.0.0": - version "18.0.0" - resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.0.0.tgz#7f401d9ce13530ad743dfd519ae62ce49bcc0358" - integrity sha512-4G/a42lry9NFGuuECnua1R1eoKkdBYJap97jYbWDNYBOUboWcM75GJ1VIcfvwDV/pW0lMPs7CEmhHoVrSV5shg== - dependencies: - "@octokit/core" "^3.0.0" - "@octokit/plugin-paginate-rest" "^2.2.0" - "@octokit/plugin-request-log" "^1.0.0" - "@octokit/plugin-rest-endpoint-methods" "4.0.0" - -"@octokit/types@^2.0.0", "@octokit/types@^2.0.1": - version "2.5.0" - resolved "https://registry.npmjs.org/@octokit/types/-/types-2.5.0.tgz#f1bbd147e662ae2c79717d518aac686e58257773" - integrity sha512-KEnLwOfdXzxPNL34fj508bhi9Z9cStyN7qY1kOfVahmqtAfrWw6Oq3P4R+dtsg0lYtZdWBpUrS/Ixmd5YILSww== - dependencies: - "@types/node" ">= 8" - -"@octokit/types@^5.0.0", "@octokit/types@^5.0.1": - version "5.0.1" - resolved "https://registry.npmjs.org/@octokit/types/-/types-5.0.1.tgz#5459e9a5e9df8565dcc62c17a34491904d71971e" - integrity sha512-GorvORVwp244fGKEt3cgt/P+M0MGy4xEDbckw+K5ojEezxyMDgCaYPKVct+/eWQfZXOT7uq0xRpmrl/+hliabA== - dependencies: - "@types/node" ">= 8" - -"@open-draft/until@^1.0.3": - version "1.0.3" - resolved "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz#db9cc719191a62e7d9200f6e7bab21c5b848adca" - integrity sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q== - -"@openapi-contrib/openapi-schema-to-json-schema@^3.0.0": - version "3.0.3" - resolved "https://registry.npmjs.org/@openapi-contrib/openapi-schema-to-json-schema/-/openapi-schema-to-json-schema-3.0.3.tgz#c626eab186938f2751ee54ec68b345133bc0065c" - integrity sha512-/WX/Jos8n7CxvtWPmhlKl9qCAAW0I+VR+V4yXfQxCmB8wmjiz6lPLTGjNk5zD15qi2MGv58++hQLLdow89KdkA== - dependencies: - fast-deep-equal "^3.1.3" - lodash.clonedeep "^4.5.0" - -"@panva/asn1.js@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6" - integrity sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw== - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= - -"@reach/router@^1.2.1", "@reach/router@^1.3.3": - version "1.3.4" - resolved "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz#d2574b19370a70c80480ed91f3da840136d10f8c" - integrity sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA== - dependencies: - create-react-context "0.3.0" - invariant "^2.2.3" - prop-types "^15.6.1" - react-lifecycles-compat "^3.0.4" - -"@rjsf/core@^2.1.0": - version "2.2.2" - resolved "https://registry.npmjs.org/@rjsf/core/-/core-2.2.2.tgz#1ebb6fe47448998f3b54e2dea8d58de8a46014dc" - integrity sha512-4d6DHIiTJEkUq5vyl4LIxLGIYYKKnHcprf94oVchUtGQvRFjNUDFxeFQoyr90oaxcBMs2WDDcCgjcFaKVyfErg== - dependencies: - "@babel/runtime-corejs2" "^7.8.7" - "@types/json-schema" "^7.0.4" - ajv "^6.7.0" - core-js "^2.5.7" - json-schema-merge-allof "^0.6.0" - jsonpointer "^4.0.1" - lodash "^4.17.15" - prop-types "^15.7.2" - react-app-polyfill "^1.0.4" - react-is "^16.9.0" - shortid "^2.2.14" - -"@rjsf/material-ui@^2.1.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@rjsf/material-ui/-/material-ui-2.3.0.tgz#a051eb4db2ad778e39933a31ba806f415dd3ba90" - integrity sha512-v/xZ4Xk18ZgBARcCe99IDqdO97GU0UC784gG8PhGGFDdy5Rbdy7ixTjHkGYttkr43PB7SX6ttohNhkKSW4nATQ== - -"@roadiehq/backstage-plugin-github-pull-requests@0.3.0": - version "0.3.0" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-0.3.0.tgz#465cb74b1dab6f34a5a5bf4fa57b6c1d312bc5b7" - integrity sha512-nSyMh8p3SAYj1yj5/+Po82g7aZwF5pWb+fh7bLPdf+ywl5pa+aKQxAVNCvlvgfN2WZ9gDTMbCPyWDgCfeJ/V9g== - dependencies: - "@backstage/catalog-model" "^0.1.1-alpha.16" - "@backstage/core" "^0.1.1-alpha.16" - "@backstage/core-api" "^0.1.1-alpha.16" - "@backstage/plugin-catalog" "^0.1.1-alpha.16" - "@backstage/theme" "^0.1.1-alpha.16" - "@material-ui/core" "^4.9.1" - "@material-ui/icons" "^4.9.1" - "@material-ui/lab" "4.0.0-alpha.45" - "@octokit/rest" "^18.0.0" - "@octokit/types" "^5.0.1" - "@types/react-dom" "^16.9.8" - history "^5.0.0" - moment "^2.27.0" - react "^16.13.1" - react-dom "^16.13.1" - react-router-dom "6.0.0-beta.0" - react-use "^15.3.3" - -"@roadiehq/backstage-plugin-travis-ci@^0.1.4": - version "0.1.4" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-0.1.4.tgz#ddbb2ba5b9d47f474462ecbc8c769759578e8526" - integrity sha512-T1eJ0huhwZcRHjrDKWoAzlKBv8UbhXgrvE7wuHD7dCcmfQdln0jbn7cskOpTnVmrzGXWKQ6mDyKX3LfdEPYbAw== - dependencies: - "@backstage/core" "^0.1.1-alpha.18" - "@backstage/theme" "^0.1.1-alpha.18" - "@material-ui/core" "^4.9.1" - "@material-ui/icons" "^4.9.1" - "@material-ui/lab" "4.0.0-alpha.45" - date-fns "^2.15.0" - history "^5.0.0" - moment "^2.27.0" - react "^16.13.1" - react-dom "^16.13.1" - react-lazylog "^4.5.2" - react-router "6.0.0-beta.0" - react-router-dom "6.0.0-beta.0" - react-use "^15.3.3" - -"@rollup/plugin-commonjs@^13.0.0": - version "13.0.0" - resolved "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-13.0.0.tgz#8a1d684ba6848afe8b9e3d85649d4b2f6f7217ec" - integrity sha512-Anxc3qgkAi7peAyesTqGYidG5GRim9jtg8xhmykNaZkImtvjA7Wsqep08D2mYsqw1IF7rA3lYfciLgzUSgRoqw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - commondir "^1.0.1" - estree-walker "^1.0.1" - glob "^7.1.2" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" - -"@rollup/plugin-json@^4.0.2": - version "4.1.0" - resolved "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" - integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - -"@rollup/plugin-node-resolve@^8.1.0": - version "8.4.0" - resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" - integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== - dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" - builtin-modules "^3.1.0" - deep-freeze "^0.0.1" - deepmerge "^4.2.2" - is-module "^1.0.0" - resolve "^1.17.0" - -"@rollup/plugin-yaml@^2.1.1": - version "2.1.1" - resolved "https://registry.npmjs.org/@rollup/plugin-yaml/-/plugin-yaml-2.1.1.tgz#6c864adee22004eb325d53bc4ee5553828e056d8" - integrity sha512-CnGD3dbDhP+JeKFX7kJuaBOa7jVzXpl3G8lXp1hasB87cDYOz7qNWd4cFPmYbxMsT/8OCVsceIpRtQ+cj9uxBw== - dependencies: - "@rollup/pluginutils" "^3.0.1" - js-yaml "^3.13.1" - tosource "^1.0.0" - -"@rollup/pluginutils@^3.0.1", "@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== - dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" - -"@samverschueren/stream-to-observable@^0.3.0": - version "0.3.0" - resolved "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" - integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg== - dependencies: - any-observable "^0.3.0" - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@sindresorhus/is@^0.7.0": - version "0.7.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" - integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== - -"@sindresorhus/is@^2.0.0": - version "2.1.1" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" - integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== - -"@sindresorhus/is@^3.0.0": - version "3.1.1" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.1.tgz#6e39e4222add8b362da35720c9dd5d53345d5851" - integrity sha512-tLnujxFtfH7F+i5ghUfgGlJsvyCKvUnSMFMlWybFdX9/DdX8svb4Zwx1gV0gkkVCHXtmPSetoAR3QlKfOld6Tw== - -"@sinonjs/commons@^1.7.0": - version "1.7.1" - resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.1.tgz#da5fd19a5f71177a53778073978873964f49acf1" - integrity sha512-Debi3Baff1Qu1Unc3mjJ96MgpbwTn43S1+9yJ0llWygPwDNu2aaWBD6yc9y/Z8XDRNhx7U+u2UDg2OGQXkclUQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^6.0.1": - version "6.0.1" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" - integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@spotify/eslint-config-base@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@spotify/eslint-config-base/-/eslint-config-base-7.0.0.tgz#36804ae09ec938f1aa5f9464ea993f3f151cfaa8" - integrity sha512-XRTrTRyRRYBxPYINKNHw4B8QWlA3p4I+id/Po2sMdejtXH3LZgDgIjdschUZSdQ6J6dVYDdaVykdizRM9I+G6Q== - -"@spotify/eslint-config-oss@^1.0.1": - version "1.0.2" - resolved "https://registry.npmjs.org/@spotify/eslint-config-oss/-/eslint-config-oss-1.0.2.tgz#b0e56e549c78dcdd79063ce48521f10c3420f701" - integrity sha512-3Tn6R98f5BWeb8anOhxYdvZywasp1RaJb+y65W7Db5+xiQVmCnSFvIM3jwysQpu1xRdlUJSCqeDHR7S4Nz3thw== - dependencies: - eslint-plugin-notice "^0.9.10" - -"@spotify/eslint-config-react@^7.0.1": - version "7.0.1" - resolved "https://registry.npmjs.org/@spotify/eslint-config-react/-/eslint-config-react-7.0.1.tgz#2e70de9d7911ea9aeaa55a83a332220a28f6c431" - integrity sha512-HNDHvm19EaBXiDgsg52mjMgKWZTeA0hO2Q75ACNwb8UtjIKkANqyyuzyDGo8jiGMbWIm6wJjShlRtT95emNlqQ== - -"@spotify/eslint-config-typescript@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@spotify/eslint-config-typescript/-/eslint-config-typescript-7.0.0.tgz#fc5227e3344f74b41ac3a530df24a95ac13254e4" - integrity sha512-28I/SAf68NKbWZ5IY0WYMa0D18PxWdC9DP9gRbOTlZufmsS8jEgqf3zBUWmP6XOf1nihpKWcqvbFUG5H7/JYXA== - -"@spotify/eslint-config@^7.0.0", "@spotify/eslint-config@^7.0.1": - version "7.0.1" - resolved "https://registry.npmjs.org/@spotify/eslint-config/-/eslint-config-7.0.1.tgz#07a21cfd7fce89cfc2c6dd5ea5d747e741201b66" - integrity sha512-8GI/TZGUhS4pr7oipT2MjrZFRgXcKzk9YImEusUdD2f5vlCniRFIBQNrvTMkyjfdQqvIVqJPLcdVPXeAgprsMw== - dependencies: - "@spotify/eslint-config-base" "^7.0.0" - "@spotify/eslint-config-react" "^7.0.1" - "@spotify/eslint-config-typescript" "^7.0.0" - "@spotify/web-scripts-utils" "^7.0.0" - "@typescript-eslint/eslint-plugin" "^2.14.0" - "@typescript-eslint/parser" "^2.14.0" - eslint-config-prettier "^6.0.0" - eslint-plugin-jest "^23.6.0" - eslint-plugin-jsx-a11y "^6.2.1" - eslint-plugin-react "^7.12.4" - eslint-plugin-react-hooks "^4.0.0" - -"@spotify/prettier-config@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@spotify/prettier-config/-/prettier-config-7.0.0.tgz#47750979d1282197295108b6958360660a955c16" - integrity sha512-lIMcx/2oDqTtW84iHKkRJe+8U6HK6GPwWH5sJp9UEHcDpdXomOQYvwcGXy2I2zwPQQ14gYYE6nEJuSnnYqsYRw== - -"@spotify/prettier-config@^8.0.0": - version "8.0.0" - resolved "https://registry.npmjs.org/@spotify/prettier-config/-/prettier-config-8.0.0.tgz#8b6c2bd579ddc54887155a0721fe04e96c89f7f2" - integrity sha512-so8w32ZV42CHWxOEXcBtbNO/hLXFrQNXVmhfzhUI6dVB9cq2xjRaiqu8GjFj8LvKbWpPj+S+KwTIS4aDVWqrFQ== - -"@spotify/web-scripts-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@spotify/web-scripts-utils/-/web-scripts-utils-7.0.0.tgz#8c6b8039fc645a36ac48629eb9ba06600f4d828a" - integrity sha512-McMy0j60lxOHjgDjegthZqEWN/PabphiM30A/mI/Y7xh9+JFnYWBTSm/wgn6EW2BsPpV631xSYYkk6B1Ph14Fw== - dependencies: - glob "^7.1.4" - read-pkg-up "^7.0.1" - -"@storybook/addon-actions@^5.3.17": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-5.3.19.tgz#50548fa6e84bc79ad95233ce23ade4878fc7cfac" - integrity sha512-gXF29FFUgYlUoFf1DcVCmH1chg2ElaHWMmCi5h7aZe+g6fXBQw0UtEdJnYLMOqZCIiWoZyuf1ETD0RbNHPhRIw== - dependencies: - "@storybook/addons" "5.3.19" - "@storybook/api" "5.3.19" - "@storybook/client-api" "5.3.19" - "@storybook/components" "5.3.19" - "@storybook/core-events" "5.3.19" - "@storybook/theming" "5.3.19" - core-js "^3.0.1" - fast-deep-equal "^2.0.1" - global "^4.3.2" - polished "^3.3.1" - prop-types "^15.7.2" - react "^16.8.3" - react-inspector "^4.0.0" - uuid "^3.3.2" - -"@storybook/addon-links@^5.3.17": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-5.3.19.tgz#3c23e886d44b56978ae254fed3bf8be54c877178" - integrity sha512-gn9u8lebREfRsyzxoDPG0O+kOf5aJ0BhzcCJGZZdqha0F6OWHhh8vJYZZvjJ/Qwze+Qt2zjrgWm+Q6+JLD8ugQ== - dependencies: - "@storybook/addons" "5.3.19" - "@storybook/client-logger" "5.3.19" - "@storybook/core-events" "5.3.19" - "@storybook/csf" "0.0.1" - "@storybook/router" "5.3.19" - core-js "^3.0.1" - global "^4.3.2" - prop-types "^15.7.2" - qs "^6.6.0" - ts-dedent "^1.1.0" - -"@storybook/addon-storysource@^5.3.18": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-5.3.19.tgz#ae693e88db5d220cb256a9ef4a2366c300e8d88c" - integrity sha512-W7mIAHuxYT+b1huaHCHLkBAh2MbeWmF8CxeBCFiOgZaYYQUTDEh018HJF8u2AqiWSouRhcfzhTnGxOo0hNRBgw== - dependencies: - "@storybook/addons" "5.3.19" - "@storybook/components" "5.3.19" - "@storybook/router" "5.3.19" - "@storybook/source-loader" "5.3.19" - "@storybook/theming" "5.3.19" - core-js "^3.0.1" - estraverse "^4.2.0" - loader-utils "^1.2.3" - prettier "^1.16.4" - prop-types "^15.7.2" - react-syntax-highlighter "^11.0.2" - regenerator-runtime "^0.13.3" - util-deprecate "^1.0.2" - -"@storybook/addons@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/addons/-/addons-5.3.19.tgz#3a7010697afd6df9a41b8c8a7351d9a06ff490a4" - integrity sha512-Ky/k22p6i6FVNvs1VhuFyGvYJdcp+FgXqFgnPyY/OXJW/vPDapdElpTpHJZLFI9I2FQBDcygBPU5RXkumQ+KUQ== - dependencies: - "@storybook/api" "5.3.19" - "@storybook/channels" "5.3.19" - "@storybook/client-logger" "5.3.19" - "@storybook/core-events" "5.3.19" - core-js "^3.0.1" - global "^4.3.2" - util-deprecate "^1.0.2" - -"@storybook/addons@^6.0.4": - version "6.0.12" - resolved "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.12.tgz#f57f89e0aa55febfb5437ddc2628a0ccc9f44f44" - integrity sha512-gVCyWK4jys5cUY0d3/Bxi02oeCsgdi6xVvA+T4v+SgeduAfm/k01tdO2qDXL37Sl+2TT9HBQGazDrsIUW4d7Ug== - dependencies: - "@storybook/api" "6.0.12" - "@storybook/channels" "6.0.12" - "@storybook/client-logger" "6.0.12" - "@storybook/core-events" "6.0.12" - "@storybook/router" "6.0.12" - "@storybook/theming" "6.0.12" - core-js "^3.0.1" - global "^4.3.2" - regenerator-runtime "^0.13.3" - -"@storybook/api@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/api/-/api-5.3.19.tgz#77f15e9e2eee59fe1ddeaba1ef39bc34713a6297" - integrity sha512-U/VzDvhNCPmw2igvJYNNM+uwJCL+3teiL6JmuoL4/cmcqhI6IqqG9dZmMP1egoCd19wXEP7rnAfB/VcYVg41dQ== - dependencies: - "@reach/router" "^1.2.1" - "@storybook/channels" "5.3.19" - "@storybook/client-logger" "5.3.19" - "@storybook/core-events" "5.3.19" - "@storybook/csf" "0.0.1" - "@storybook/router" "5.3.19" - "@storybook/theming" "5.3.19" - "@types/reach__router" "^1.2.3" - core-js "^3.0.1" - fast-deep-equal "^2.0.1" - global "^4.3.2" - lodash "^4.17.15" - memoizerific "^1.11.3" - prop-types "^15.6.2" - react "^16.8.3" - semver "^6.0.0" - shallow-equal "^1.1.0" - store2 "^2.7.1" - telejson "^3.2.0" - util-deprecate "^1.0.2" - -"@storybook/api@6.0.12": - version "6.0.12" - resolved "https://registry.npmjs.org/@storybook/api/-/api-6.0.12.tgz#d6ded5c9ac8f989c4915e11a80a4db69341fc95f" - integrity sha512-8+jPtfhUVM1hT22OT4rjHRxkW924gbWrAxCFYUXOw80a0x7BcT4sL2ah1D4FWf0IpCT/onLf9jLvSVXr8V0xOw== - dependencies: - "@reach/router" "^1.3.3" - "@storybook/channels" "6.0.12" - "@storybook/client-logger" "6.0.12" - "@storybook/core-events" "6.0.12" - "@storybook/csf" "0.0.1" - "@storybook/router" "6.0.12" - "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.0.12" - "@types/reach__router" "^1.3.5" - core-js "^3.0.1" - fast-deep-equal "^3.1.1" - global "^4.3.2" - lodash "^4.17.15" - memoizerific "^1.11.3" - react "^16.8.3" - regenerator-runtime "^0.13.3" - store2 "^2.7.1" - telejson "^5.0.2" - ts-dedent "^1.1.1" - util-deprecate "^1.0.2" - -"@storybook/channel-postmessage@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-5.3.19.tgz#ef9fe974c2a529d89ce342ff7acf5cc22805bae9" - integrity sha512-Iq0f4NPHR0UVVFCWt0cI7Myadk4/SATXYJPT6sv95KhnLjKEeYw571WBlThfp8a9FM80887xG+eIRe93c8dleA== - dependencies: - "@storybook/channels" "5.3.19" - "@storybook/client-logger" "5.3.19" - core-js "^3.0.1" - global "^4.3.2" - telejson "^3.2.0" - -"@storybook/channels@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/channels/-/channels-5.3.19.tgz#65ad7cd19d70aa5eabbb2e5e39ceef5e510bcb7f" - integrity sha512-38seaeyshRGotTEZJppyYMg/Vx2zRKgFv1L6uGqkJT0LYoNSYtJhsiNFCJ2/KUJu2chAJ/j8h80bpVBVLQ/+WA== - dependencies: - core-js "^3.0.1" - -"@storybook/channels@6.0.12": - version "6.0.12" - resolved "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.12.tgz#377f8049272f1862f9235a5051d95124d53fa08e" - integrity sha512-0EMtjde4tRrBnJj5jOXSgtMYfMxGZgoe/0hvVSJuOABf0FY5x6xrqNNDfory7+TtgieuoQE4idl2/tdHE6QJJA== - dependencies: - core-js "^3.0.1" - ts-dedent "^1.1.1" - util-deprecate "^1.0.2" - -"@storybook/client-api@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/client-api/-/client-api-5.3.19.tgz#7a5630bb8fffb92742b1773881e9004ee7fdf8e0" - integrity sha512-Dh8ZLrLH91j9Fa28Gmp0KFUvvgK348aNMrDNAUdj4m4witz/BWQ2pxz6qq9/xFVErk/GanVC05kazGElqgYCRQ== - dependencies: - "@storybook/addons" "5.3.19" - "@storybook/channel-postmessage" "5.3.19" - "@storybook/channels" "5.3.19" - "@storybook/client-logger" "5.3.19" - "@storybook/core-events" "5.3.19" - "@storybook/csf" "0.0.1" - "@types/webpack-env" "^1.15.0" - core-js "^3.0.1" - eventemitter3 "^4.0.0" - global "^4.3.2" - is-plain-object "^3.0.0" - lodash "^4.17.15" - memoizerific "^1.11.3" - qs "^6.6.0" - stable "^0.1.8" - ts-dedent "^1.1.0" - util-deprecate "^1.0.2" - -"@storybook/client-logger@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-5.3.19.tgz#fbbd186e82102eaca1d6a5cca640271cae862921" - integrity sha512-nHftT9Ow71YgAd2/tsu79kwKk30mPuE0sGRRUHZVyCRciGFQweKNOS/6xi2Aq+WwBNNjPKNlbgxwRt1yKe1Vkg== - dependencies: - core-js "^3.0.1" - -"@storybook/client-logger@6.0.12": - version "6.0.12" - resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.12.tgz#33b4c3cd1f1d98dab32d8c8c906301f1ab18f969" - integrity sha512-MEFDlBbbqcivF/Xmxitx/ky8kxN7TVBZ7K754/pPEI5q6UW32DecJIRg79UWp/1nBPMX/A0U3ORwv+0MjgDZBQ== - dependencies: - core-js "^3.0.1" - global "^4.3.2" - -"@storybook/components@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/components/-/components-5.3.19.tgz#aac1f9eea1247cc85bd93b10fca803876fb84a6b" - integrity sha512-3g23/+ktlocaHLJKISu9Neu3XKa6aYP2ctDYkRtGchSB0Q55hQsUVGO+BEVuT7Pk2D59mVCxboBjxcRoPUY4pw== - dependencies: - "@storybook/client-logger" "5.3.19" - "@storybook/theming" "5.3.19" - "@types/react-syntax-highlighter" "11.0.4" - "@types/react-textarea-autosize" "^4.3.3" - core-js "^3.0.1" - global "^4.3.2" - lodash "^4.17.15" - markdown-to-jsx "^6.11.4" - memoizerific "^1.11.3" - polished "^3.3.1" - popper.js "^1.14.7" - prop-types "^15.7.2" - react "^16.8.3" - react-dom "^16.8.3" - react-focus-lock "^2.1.0" - react-helmet-async "^1.0.2" - react-popper-tooltip "^2.8.3" - react-syntax-highlighter "^11.0.2" - react-textarea-autosize "^7.1.0" - simplebar-react "^1.0.0-alpha.6" - ts-dedent "^1.1.0" - -"@storybook/core-events@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-5.3.19.tgz#18020cd52e0d8ef0973a8e9622a10d5f99796f79" - integrity sha512-lh78ySqMS7pDdMJAQAe35d1I/I4yPTqp09Cq0YIYOxx9BQZhah4DZTV1QIZt22H5p2lPb5MWLkWSxBaexZnz8A== - dependencies: - core-js "^3.0.1" - -"@storybook/core-events@6.0.12": - version "6.0.12" - resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.12.tgz#499ae06092103b149fcd9417d8e0baa356adc2c0" - integrity sha512-52yNnp+dBkHiG9S+rQO7Nv3PdSDi0XnBt7FoQ+v8H31vGpgdBLEhy8w5ZA4eTrL951VaU/4/XoOaG2+yPALaoA== - dependencies: - core-js "^3.0.1" - -"@storybook/core@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/core/-/core-5.3.19.tgz#1e61f35c5148343a0c580f5d5efb77f3b4243a30" - integrity sha512-4EYzglqb1iD6x9gxtAYpRGwGP6qJGiU2UW4GiYrErEmeu6y6tkyaqW5AwGlIo9+6jAfwD0HjaK8afvjKTtmmMQ== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.7.0" - "@babel/plugin-proposal-object-rest-spread" "^7.6.2" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - "@babel/plugin-transform-react-constant-elements" "^7.2.0" - "@babel/preset-env" "^7.4.5" - "@storybook/addons" "5.3.19" - "@storybook/channel-postmessage" "5.3.19" - "@storybook/client-api" "5.3.19" - "@storybook/client-logger" "5.3.19" - "@storybook/core-events" "5.3.19" - "@storybook/csf" "0.0.1" - "@storybook/node-logger" "5.3.19" - "@storybook/router" "5.3.19" - "@storybook/theming" "5.3.19" - "@storybook/ui" "5.3.19" - airbnb-js-shims "^2.2.1" - ansi-to-html "^0.6.11" - autoprefixer "^9.7.2" - babel-plugin-add-react-displayname "^0.0.5" - babel-plugin-emotion "^10.0.20" - babel-plugin-macros "^2.7.0" - babel-preset-minify "^0.5.0 || 0.6.0-alpha.5" - boxen "^4.1.0" - case-sensitive-paths-webpack-plugin "^2.2.0" - chalk "^3.0.0" - cli-table3 "0.5.1" - commander "^4.0.1" - core-js "^3.0.1" - corejs-upgrade-webpack-plugin "^2.2.0" - css-loader "^3.0.0" - detect-port "^1.3.0" - dotenv-webpack "^1.7.0" - ejs "^2.7.4" - express "^4.17.0" - file-loader "^4.2.0" - file-system-cache "^1.0.5" - find-cache-dir "^3.0.0" - find-up "^4.1.0" - fs-extra "^8.0.1" - glob-base "^0.3.0" - global "^4.3.2" - html-webpack-plugin "^4.0.0-beta.2" - 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" - open "^7.0.0" - pnp-webpack-plugin "1.5.0" - postcss-flexbugs-fixes "^4.1.0" - postcss-loader "^3.0.0" - pretty-hrtime "^1.0.3" - qs "^6.6.0" - raw-loader "^3.1.0" - react-dev-utils "^9.0.0" - regenerator-runtime "^0.13.3" - resolve "^1.11.0" - resolve-from "^5.0.0" - semver "^6.0.0" - serve-favicon "^2.5.0" - shelljs "^0.8.3" - style-loader "^1.0.0" - terser-webpack-plugin "^2.1.2" - ts-dedent "^1.1.0" - unfetch "^4.1.0" - url-loader "^2.0.1" - util-deprecate "^1.0.2" - webpack "^4.33.0" - webpack-dev-middleware "^3.7.0" - webpack-hot-middleware "^2.25.0" - webpack-virtual-modules "^0.2.0" - -"@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@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-5.3.19.tgz#c414e4d3781aeb06298715220012f552a36dff29" - integrity sha512-hKshig/u5Nj9fWy0OsyU04yqCxr0A9pydOHIassr4fpLAaePIN2YvqCqE2V+TxQHjZUnowSSIhbXrGt0DI5q2A== - dependencies: - "@types/npmlog" "^4.1.2" - chalk "^3.0.0" - core-js "^3.0.1" - npmlog "^4.1.2" - pretty-hrtime "^1.0.3" - regenerator-runtime "^0.13.3" - -"@storybook/react@^5.3.17": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/react/-/react-5.3.19.tgz#ad7e7a5538399e2794cdb5a1b844a2b77c10bd09" - integrity sha512-OBRUqol3YLQi/qE55x2pWkv4YpaAmmfj6/Km+7agx+og+oNQl0nnlXy7r27X/4j3ERczzURa5pJHtSjwiNaJNw== - dependencies: - "@babel/plugin-transform-react-constant-elements" "^7.6.3" - "@babel/preset-flow" "^7.0.0" - "@babel/preset-react" "^7.0.0" - "@storybook/addons" "5.3.19" - "@storybook/core" "5.3.19" - "@storybook/node-logger" "5.3.19" - "@svgr/webpack" "^4.0.3" - "@types/webpack-env" "^1.15.0" - babel-plugin-add-react-displayname "^0.0.5" - babel-plugin-named-asset-import "^0.3.1" - babel-plugin-react-docgen "^4.0.0" - core-js "^3.0.1" - global "^4.3.2" - lodash "^4.17.15" - mini-css-extract-plugin "^0.7.0" - prop-types "^15.7.2" - react-dev-utils "^9.0.0" - regenerator-runtime "^0.13.3" - semver "^6.0.0" - ts-dedent "^1.1.0" - webpack "^4.33.0" - -"@storybook/router@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/router/-/router-5.3.19.tgz#0f783b85658f99e4007f74347ad7ef17dbf7fc3a" - integrity sha512-yNClpuP7BXQlBTRf6Ggle3/R349/k6kvI5Aim4jf6X/2cFVg2pzBXDAF41imNm9PcvdxwabQLm6I48p7OvKr/w== - dependencies: - "@reach/router" "^1.2.1" - "@storybook/csf" "0.0.1" - "@types/reach__router" "^1.2.3" - core-js "^3.0.1" - global "^4.3.2" - lodash "^4.17.15" - memoizerific "^1.11.3" - qs "^6.6.0" - util-deprecate "^1.0.2" - -"@storybook/router@6.0.12": - version "6.0.12" - resolved "https://registry.npmjs.org/@storybook/router/-/router-6.0.12.tgz#f66d979ec01e15c11a378eb5dde3e696747ac184" - integrity sha512-vv1jHOOGelSzmDJnp9SdC/KR5RpE2am568ImOAQ9/XCmXNDhVshVlIS7ajy6yCKN/mS/63zKflbRNef+3SLU9Q== - dependencies: - "@reach/router" "^1.3.3" - "@types/reach__router" "^1.3.5" - core-js "^3.0.1" - global "^4.3.2" - memoizerific "^1.11.3" - qs "^6.6.0" - -"@storybook/semver@^7.3.2": - version "7.3.2" - resolved "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz#f3b9c44a1c9a0b933c04e66d0048fcf2fa10dac0" - integrity sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg== - dependencies: - core-js "^3.6.5" - find-up "^4.1.0" - -"@storybook/source-loader@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-5.3.19.tgz#ff0a00731c24c61721d8b9d84152f8542913a3b7" - integrity sha512-srSZRPgEOUse8nRVnlazweB2QGp63mPqM0uofg8zYARyaYSOzkC155ymdeiHsmiBTS3X3I0FQE4+KnwiH7iLtw== - dependencies: - "@storybook/addons" "5.3.19" - "@storybook/client-logger" "5.3.19" - "@storybook/csf" "0.0.1" - core-js "^3.0.1" - estraverse "^4.2.0" - global "^4.3.2" - loader-utils "^1.2.3" - prettier "^1.16.4" - prop-types "^15.7.2" - regenerator-runtime "^0.13.3" - -"@storybook/theming@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/theming/-/theming-5.3.19.tgz#177d9819bd64f7a1a6ea2f1920ffa5baf9a5f467" - integrity sha512-ecG+Rq3hc1GOzKHamYnD4wZ0PEP9nNg0mXbC3RhbxfHj+pMMCWWmx9B2Uu75SL1PTT8WcfkFO0hU/0IO84Pzlg== - dependencies: - "@emotion/core" "^10.0.20" - "@emotion/styled" "^10.0.17" - "@storybook/client-logger" "5.3.19" - 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.3.1" - prop-types "^15.7.2" - resolve-from "^5.0.0" - ts-dedent "^1.1.0" - -"@storybook/theming@6.0.12": - version "6.0.12" - resolved "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.12.tgz#83b2099e7a7a5bd3acadb8e4106234ede62197c7" - integrity sha512-hmF6EIbm2A7G84+JR36UQWteElSwSNfGLzccAlUMiZIhdMG0SuCtyHe6FmckAWC226Mv+MW14fr+a4+OuRpM4g== - dependencies: - "@emotion/core" "^10.0.20" - "@emotion/is-prop-valid" "^0.8.6" - "@emotion/styled" "^10.0.17" - "@storybook/client-logger" "6.0.12" - 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 "^1.1.1" - -"@storybook/ui@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/ui/-/ui-5.3.19.tgz#ac03b67320044a3892ee784111d4436b61874332" - integrity sha512-r0VxdWab49nm5tzwvveVDnsHIZHMR76veYOu/NHKDUZ5hnQl1LMG1YyMCFFa7KiwD/OrZxRWr6/Ma7ep9kR4Gw== - dependencies: - "@emotion/core" "^10.0.20" - "@storybook/addons" "5.3.19" - "@storybook/api" "5.3.19" - "@storybook/channels" "5.3.19" - "@storybook/client-logger" "5.3.19" - "@storybook/components" "5.3.19" - "@storybook/core-events" "5.3.19" - "@storybook/router" "5.3.19" - "@storybook/theming" "5.3.19" - copy-to-clipboard "^3.0.8" - core-js "^3.0.1" - core-js-pure "^3.0.1" - emotion-theming "^10.0.19" - fast-deep-equal "^2.0.1" - fuse.js "^3.4.6" - global "^4.3.2" - lodash "^4.17.15" - markdown-to-jsx "^6.11.4" - memoizerific "^1.11.3" - polished "^3.3.1" - prop-types "^15.7.2" - qs "^6.6.0" - react "^16.8.3" - react-dom "^16.8.3" - react-draggable "^4.0.3" - react-helmet-async "^1.0.2" - react-hotkeys "2.0.0" - react-sizeme "^2.6.7" - regenerator-runtime "^0.13.2" - resolve-from "^5.0.0" - semver "^6.0.0" - store2 "^2.7.1" - telejson "^3.2.0" - util-deprecate "^1.0.2" - -"@styled-system/background@^5.1.2": - version "5.1.2" - resolved "https://registry.npmjs.org/@styled-system/background/-/background-5.1.2.tgz#75c63d06b497ab372b70186c0bf608d62847a2ba" - integrity sha512-jtwH2C/U6ssuGSvwTN3ri/IyjdHb8W9X/g8Y0JLcrH02G+BW3OS8kZdHphF1/YyRklnrKrBT2ngwGUK6aqqV3A== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/border@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@styled-system/border/-/border-5.1.5.tgz#0493d4332d2b59b74bb0d57d08c73eb555761ba6" - integrity sha512-JvddhNrnhGigtzWRCVuAHepniyVi6hBlimxWDVAdcTuk7aRn9BYJUwfHslURtwYFsF5FoEs8Zmr1oZq2M1AP0A== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/color@^5.1.2": - version "5.1.2" - resolved "https://registry.npmjs.org/@styled-system/color/-/color-5.1.2.tgz#b8d6b4af481faabe4abca1a60f8daa4ccc2d9f43" - integrity sha512-1kCkeKDZkt4GYkuFNKc7vJQMcOmTl3bJY3YBUs7fCNM6mMYJeT1pViQ2LwBSBJytj3AB0o4IdLBoepgSgGl5MA== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/core@^5.1.2": - version "5.1.2" - resolved "https://registry.npmjs.org/@styled-system/core/-/core-5.1.2.tgz#b8b7b86455d5a0514f071c4fa8e434b987f6a772" - integrity sha512-XclBDdNIy7OPOsN4HBsawG2eiWfCcuFt6gxKn1x4QfMIgeO6TOlA2pZZ5GWZtIhCUqEPTgIBta6JXsGyCkLBYw== - dependencies: - object-assign "^4.1.1" - -"@styled-system/css@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@styled-system/css/-/css-5.1.5.tgz#0460d5f3ff962fa649ea128ef58d9584f403bbbc" - integrity sha512-XkORZdS5kypzcBotAMPBoeckDs9aSZVkvrAlq5K3xP8IMAUek+x2O4NtwoSgkYkWWzVBu6DGdFZLR790QWGG+A== - -"@styled-system/flexbox@^5.1.2": - version "5.1.2" - resolved "https://registry.npmjs.org/@styled-system/flexbox/-/flexbox-5.1.2.tgz#077090f43f61c3852df63da24e4108087a8beecf" - integrity sha512-6hHV52+eUk654Y1J2v77B8iLeBNtc+SA3R4necsu2VVinSD7+XY5PCCEzBFaWs42dtOEDIa2lMrgL0YBC01mDQ== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/grid@^5.1.2": - version "5.1.2" - resolved "https://registry.npmjs.org/@styled-system/grid/-/grid-5.1.2.tgz#7165049877732900b99cd00759679fbe45c6c573" - integrity sha512-K3YiV1KyHHzgdNuNlaw8oW2ktMuGga99o1e/NAfTEi5Zsa7JXxzwEnVSDSBdJC+z6R8WYTCYRQC6bkVFcvdTeg== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/layout@^5.1.2": - version "5.1.2" - resolved "https://registry.npmjs.org/@styled-system/layout/-/layout-5.1.2.tgz#12d73e79887e10062f4dbbbc2067462eace42339" - integrity sha512-wUhkMBqSeacPFhoE9S6UF3fsMEKFv91gF4AdDWp0Aym1yeMPpqz9l9qS/6vjSsDPF7zOb5cOKC3tcKKOMuDCPw== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/position@^5.1.2": - version "5.1.2" - resolved "https://registry.npmjs.org/@styled-system/position/-/position-5.1.2.tgz#56961266566836f57a24d8e8e33ce0c1adb59dd3" - integrity sha512-60IZfMXEOOZe3l1mCu6sj/2NAyUmES2kR9Kzp7s2D3P4qKsZWxD1Se1+wJvevb+1TP+ZMkGPEYYXRyU8M1aF5A== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/shadow@^5.1.2": - version "5.1.2" - resolved "https://registry.npmjs.org/@styled-system/shadow/-/shadow-5.1.2.tgz#beddab28d7de03cd0177a87ac4ed3b3b6d9831fd" - integrity sha512-wqniqYb7XuZM7K7C0d1Euxc4eGtqEe/lvM0WjuAFsQVImiq6KGT7s7is+0bNI8O4Dwg27jyu4Lfqo/oIQXNzAg== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/should-forward-prop@^5.1.2": - version "5.1.5" - resolved "https://registry.npmjs.org/@styled-system/should-forward-prop/-/should-forward-prop-5.1.5.tgz#c392008c6ae14a6eb78bf1932733594f7f7e5c76" - integrity sha512-+rPRomgCGYnUIaFabDoOgpSDc4UUJ1KsmlnzcEp0tu5lFrBQKgZclSo18Z1URhaZm7a6agGtS5Xif7tuC2s52Q== - dependencies: - "@emotion/is-prop-valid" "^0.8.1" - "@emotion/memoize" "^0.7.1" - styled-system "^5.1.5" - -"@styled-system/space@^5.1.2": - version "5.1.2" - resolved "https://registry.npmjs.org/@styled-system/space/-/space-5.1.2.tgz#38925d2fa29a41c0eb20e65b7c3efb6e8efce953" - integrity sha512-+zzYpR8uvfhcAbaPXhH8QgDAV//flxqxSjHiS9cDFQQUSznXMQmxJegbhcdEF7/eNnJgHeIXv1jmny78kipgBA== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/typography@^5.1.2": - version "5.1.2" - resolved "https://registry.npmjs.org/@styled-system/typography/-/typography-5.1.2.tgz#65fb791c67d50cd2900d234583eaacdca8c134f7" - integrity sha512-BxbVUnN8N7hJ4aaPOd7wEsudeT7CxarR+2hns8XCX1zp0DFfbWw4xYa/olA0oQaqx7F1hzDg+eRaGzAJbF+jOg== - dependencies: - "@styled-system/core" "^5.1.2" - -"@styled-system/variant@^5.1.5": - version "5.1.5" - resolved "https://registry.npmjs.org/@styled-system/variant/-/variant-5.1.5.tgz#8446d8aad06af3a4c723d717841df2dbe4ddeafd" - integrity sha512-Yn8hXAFoWIro8+Q5J8YJd/mP85Teiut3fsGVR9CAxwgNfIAiqlYxsk5iHU7VHJks/0KjL4ATSjmbtCDC/4l1qw== - dependencies: - "@styled-system/core" "^5.1.2" - "@styled-system/css" "^5.1.5" - -"@sucrase/webpack-loader@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@sucrase/webpack-loader/-/webpack-loader-2.0.0.tgz#b8a70b8d3df3eeb570e6a3315e1a9c6b723e4a37" - integrity sha512-KUfWr83g70Qm+ZqjGL+M4tX01taDP3BldQcI6NSMlDf7WTDfuo0RvLlS0ekF6dPVslNyZhbFFBy2OBTB6Sa6+Q== - dependencies: - loader-utils "^1.1.0" - -"@svgr/babel-plugin-add-jsx-attribute@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz#dadcb6218503532d6884b210e7f3c502caaa44b1" - integrity sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig== - -"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" - integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== - -"@svgr/babel-plugin-remove-jsx-attribute@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz#297550b9a8c0c7337bea12bdfc8a80bb66f85abc" - integrity sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ== - -"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" - integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== - -"@svgr/babel-plugin-remove-jsx-empty-expression@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz#c196302f3e68eab6a05e98af9ca8570bc13131c7" - integrity sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w== - -"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": - version "5.0.1" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" - integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== - -"@svgr/babel-plugin-replace-jsx-attribute-value@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz#310ec0775de808a6a2e4fd4268c245fd734c1165" - integrity sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w== - -"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": - version "5.0.1" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" - integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== - -"@svgr/babel-plugin-svg-dynamic-title@^4.3.3": - version "4.3.3" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.3.3.tgz#2cdedd747e5b1b29ed4c241e46256aac8110dd93" - integrity sha512-w3Be6xUNdwgParsvxkkeZb545VhXEwjGMwExMVBIdPQJeyMQHqm9Msnb2a1teHBqUYL66qtwfhNkbj1iarCG7w== - -"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" - integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== - -"@svgr/babel-plugin-svg-em-dimensions@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz#9a94791c9a288108d20a9d2cc64cac820f141391" - integrity sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w== - -"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" - integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== - -"@svgr/babel-plugin-transform-react-native-svg@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz#151487322843359a1ca86b21a3815fd21a88b717" - integrity sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw== - -"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" - integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== - -"@svgr/babel-plugin-transform-svg-component@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz#5f1e2f886b2c85c67e76da42f0f6be1b1767b697" - integrity sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw== - -"@svgr/babel-plugin-transform-svg-component@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.4.0.tgz#a2212b4d018e6075a058bb7e220a66959ef7a03c" - integrity sha512-zLl4Fl3NvKxxjWNkqEcpdSOpQ3LGVH2BNFQ6vjaK6sFo2IrSznrhURIPI0HAphKiiIwNYjAfE0TNoQDSZv0U9A== - -"@svgr/babel-preset@^4.3.3": - version "4.3.3" - resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-4.3.3.tgz#a75d8c2f202ac0e5774e6bfc165d028b39a1316c" - integrity sha512-6PG80tdz4eAlYUN3g5GZiUjg2FMcp+Wn6rtnz5WJG9ITGEF1pmFdzq02597Hn0OmnQuCVaBYQE1OVFAnwOl+0A== - dependencies: - "@svgr/babel-plugin-add-jsx-attribute" "^4.2.0" - "@svgr/babel-plugin-remove-jsx-attribute" "^4.2.0" - "@svgr/babel-plugin-remove-jsx-empty-expression" "^4.2.0" - "@svgr/babel-plugin-replace-jsx-attribute-value" "^4.2.0" - "@svgr/babel-plugin-svg-dynamic-title" "^4.3.3" - "@svgr/babel-plugin-svg-em-dimensions" "^4.2.0" - "@svgr/babel-plugin-transform-react-native-svg" "^4.2.0" - "@svgr/babel-plugin-transform-svg-component" "^4.2.0" - -"@svgr/babel-preset@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.4.0.tgz#da21854643e1c4ad2279239baa7d5a8b128c1f15" - integrity sha512-Gyx7cCxua04DBtyILTYdQxeO/pwfTBev6+eXTbVbxe4HTGhOUW6yo7PSbG2p6eJMl44j6XSequ0ZDP7bl0nu9A== - dependencies: - "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" - "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" - "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1" - "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1" - "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" - "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" - "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" - "@svgr/babel-plugin-transform-svg-component" "^5.4.0" - -"@svgr/core@^4.3.3": - version "4.3.3" - resolved "https://registry.npmjs.org/@svgr/core/-/core-4.3.3.tgz#b37b89d5b757dc66e8c74156d00c368338d24293" - integrity sha512-qNuGF1QON1626UCaZamWt5yedpgOytvLj5BQZe2j1k1B8DUG4OyugZyfEwBeXozCUwhLEpsrgPrE+eCu4fY17w== - dependencies: - "@svgr/plugin-jsx" "^4.3.3" - camelcase "^5.3.1" - cosmiconfig "^5.2.1" - -"@svgr/core@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/core/-/core-5.4.0.tgz#655378ee43679eb94fee3d4e1976e38252dff8e7" - integrity sha512-hWGm1DCCvd4IEn7VgDUHYiC597lUYhFau2lwJBYpQWDirYLkX4OsXu9IslPgJ9UpP7wsw3n2Ffv9sW7SXJVfqQ== - dependencies: - "@svgr/plugin-jsx" "^5.4.0" - camelcase "^6.0.0" - cosmiconfig "^6.0.0" - -"@svgr/hast-util-to-babel-ast@^4.3.2": - version "4.3.2" - resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.2.tgz#1d5a082f7b929ef8f1f578950238f630e14532b8" - integrity sha512-JioXclZGhFIDL3ddn4Kiq8qEqYM2PyDKV0aYno8+IXTLuYt6TOgHUbUAAFvqtb0Xn37NwP0BTHglejFoYr8RZg== - dependencies: - "@babel/types" "^7.4.4" - -"@svgr/hast-util-to-babel-ast@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.4.0.tgz#bb5d002e428f510aa5b53ec0a02377a95b367715" - integrity sha512-+U0TZZpPsP2V1WvVhqAOSTk+N+CjYHdZx+x9UBa1eeeZDXwH8pt0CrQf2+SvRl/h2CAPRFkm+Ey96+jKP8Bsgg== - dependencies: - "@babel/types" "^7.9.5" - -"@svgr/plugin-jsx@4.3.x", "@svgr/plugin-jsx@^4.3.3": - version "4.3.3" - resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz#e2ba913dbdfbe85252a34db101abc7ebd50992fa" - integrity sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w== - dependencies: - "@babel/core" "^7.4.5" - "@svgr/babel-preset" "^4.3.3" - "@svgr/hast-util-to-babel-ast" "^4.3.2" - svg-parser "^2.0.0" - -"@svgr/plugin-jsx@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.4.0.tgz#ab47504c55615833c6db70fca2d7e489f509787c" - integrity sha512-SGzO4JZQ2HvGRKDzRga9YFSqOqaNrgLlQVaGvpZ2Iht2gwRp/tq+18Pvv9kS9ZqOMYgyix2LLxZMY1LOe9NPqw== - dependencies: - "@babel/core" "^7.7.5" - "@svgr/babel-preset" "^5.4.0" - "@svgr/hast-util-to-babel-ast" "^5.4.0" - svg-parser "^2.0.2" - -"@svgr/plugin-svgo@4.3.x", "@svgr/plugin-svgo@^4.3.1": - version "4.3.1" - resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-4.3.1.tgz#daac0a3d872e3f55935c6588dd370336865e9e32" - integrity sha512-PrMtEDUWjX3Ea65JsVCwTIXuSqa3CG9px+DluF1/eo9mlDrgrtFE7NE/DjdhjJgSM9wenlVBzkzneSIUgfUI/w== - dependencies: - cosmiconfig "^5.2.1" - merge-deep "^3.0.2" - svgo "^1.2.2" - -"@svgr/plugin-svgo@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.4.0.tgz#45d9800b7099a6f7b4d85ebac89ab9abe8592f64" - integrity sha512-3Cgv3aYi1l6SHyzArV9C36yo4kgwVdF3zPQUC6/aCDUeXAofDYwE5kk3e3oT5ZO2a0N3lB+lLGvipBG6lnG8EA== - dependencies: - cosmiconfig "^6.0.0" - merge-deep "^3.0.2" - svgo "^1.2.2" - -"@svgr/rollup@5.4.x": - version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/rollup/-/rollup-5.4.0.tgz#b1946c8d2c13870397af014a105d40945b7371e5" - integrity sha512-hwYjrTddW6mFU9vwqRr1TULNvxiIxGdIbqrD5J7vtoATSfWazq/2JSnT4BmiH+/4kFXLEtjKuSKoDUotkOIAkg== - dependencies: - "@babel/core" "^7.7.5" - "@babel/plugin-transform-react-constant-elements" "^7.7.4" - "@babel/preset-env" "^7.9.5" - "@babel/preset-react" "^7.9.4" - "@svgr/core" "^5.4.0" - "@svgr/plugin-jsx" "^5.4.0" - "@svgr/plugin-svgo" "^5.4.0" - rollup-pluginutils "^2.8.2" - -"@svgr/webpack@4.3.x", "@svgr/webpack@^4.0.3": - version "4.3.3" - resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.3.3.tgz#13cc2423bf3dff2d494f16b17eb7eacb86895017" - integrity sha512-bjnWolZ6KVsHhgyCoYRFmbd26p8XVbulCzSG53BDQqAr+JOAderYK7CuYrB3bDjHJuF6LJ7Wrr42+goLRV9qIg== - dependencies: - "@babel/core" "^7.4.5" - "@babel/plugin-transform-react-constant-elements" "^7.0.0" - "@babel/preset-env" "^7.4.5" - "@babel/preset-react" "^7.0.0" - "@svgr/core" "^4.3.3" - "@svgr/plugin-jsx" "^4.3.3" - "@svgr/plugin-svgo" "^4.3.1" - loader-utils "^1.2.3" - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@szmarczak/http-timer@^4.0.0", "@szmarczak/http-timer@^4.0.5": - version "4.0.5" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" - integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== - dependencies: - defer-to-connect "^2.0.0" - -"@testing-library/cypress@^6.0.0": - version "6.0.0" - resolved "https://registry.npmjs.org/@testing-library/cypress/-/cypress-6.0.0.tgz#935f7716e0e495f02fd753a42621e4d350097dce" - integrity sha512-vWPQtPsIDk5STOH2XdJbJoYq9gxOSAItP0ail+MlylK230zNkf3ODKd6eqWnDdruuqrhTF3CyqvPNMA8Xks/UQ== - dependencies: - "@babel/runtime" "^7.8.7" - "@testing-library/dom" "^7.0.2" - "@types/testing-library__cypress" "^5.0.3" - -"@testing-library/dom@^7.0.2", "@testing-library/dom@^7.17.1": - version "7.17.2" - resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-7.17.2.tgz#d062e41336b885107bca8ffc7022eaf37cccaee1" - integrity sha512-TQAoIzoI9g64oNVJ+13i4cCh/DQp/n7fJOyMqlFB1oQVusPtSgiPImyb52CwtvPO7J0Im0+/4YcmxU9a+cVxxw== - dependencies: - "@babel/runtime" "^7.10.3" - aria-query "^4.2.2" - dom-accessibility-api "^0.4.5" - pretty-format "^25.5.0" - -"@testing-library/jest-dom@^5.10.1": - version "5.10.1" - resolved "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.10.1.tgz#6508a9f007bd74e5d3c0b3135b668027ab663989" - integrity sha512-uv9lLAnEFRzwUTN/y9lVVXVXlEzazDkelJtM5u92PsGkEasmdI+sfzhZHxSDzlhZVTrlLfuMh2safMr8YmzXLg== - dependencies: - "@babel/runtime" "^7.9.2" - "@types/testing-library__jest-dom" "^5.9.1" - chalk "^3.0.0" - css "^2.2.4" - css.escape "^1.5.1" - jest-diff "^25.1.0" - jest-matcher-utils "^25.1.0" - lodash "^4.17.15" - redent "^3.0.0" - -"@testing-library/react-hooks@^3.3.0": - version "3.4.1" - resolved "https://registry.npmjs.org/@testing-library/react-hooks/-/react-hooks-3.4.1.tgz#1f8ccd21208086ec228d9743fe40b69d0efcd7e5" - integrity sha512-LbzvE7oKsVzuW1cxA/aOeNgeVvmHWG2p/WSzalIGyWuqZT3jVcNDT5KPEwy36sUYWde0Qsh32xqIUFXukeywXg== - dependencies: - "@babel/runtime" "^7.5.4" - "@types/testing-library__react-hooks" "^3.3.0" - -"@testing-library/react@^10.4.1": - version "10.4.3" - resolved "https://registry.npmjs.org/@testing-library/react/-/react-10.4.3.tgz#c6f356688cffc51f6b35385583d664bb11a161f4" - integrity sha512-A/ydYXcwAcfY7vkPrfUkUTf9HQLL3/GtixTefcu3OyGQtAYQ7XBQj1S9FWbLEhfWa0BLwFwTBFS3Ao1O0tbMJg== - dependencies: - "@babel/runtime" "^7.10.3" - "@testing-library/dom" "^7.17.1" - -"@testing-library/user-event@^12.0.7": - version "12.0.7" - resolved "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.0.7.tgz#6028d8de294ebd1cbf63812bc40f99e61b82f318" - integrity sha512-v/1DS6V6P5zJVq5HCC/NU93CQaqML+exslOOYRmE71ULvtOCS4Fv6A2wgBjIsEEecjZtdS2LF+KlrOK3KvVZBA== - dependencies: - "@babel/runtime" "^7.10.2" - -"@theme-ui/color-modes@^0.3.1": - version "0.3.1" - resolved "https://registry.npmjs.org/@theme-ui/color-modes/-/color-modes-0.3.1.tgz#8c2b18fb170e6c998287b7381240a8b9cca8b0d1" - integrity sha512-WuZGgFW7M5wOWSse1PVZCEfM0OZip15/D6U3bB3B9KmWax7qiSnAm1yAMLRQKC+QYhndrjq3xU+WAQm11KnhIw== - dependencies: - "@emotion/core" "^10.0.0" - "@theme-ui/core" "^0.3.1" - "@theme-ui/css" "^0.3.1" - deepmerge "^4.2.2" - -"@theme-ui/components@^0.3.1": - version "0.3.1" - resolved "https://registry.npmjs.org/@theme-ui/components/-/components-0.3.1.tgz#fe023e156c1e1c076d5f2258466426e94adc2765" - integrity sha512-uG4dUM61s4tWv6N34uxs5VIh24bJyA/7TrYJ75WDiI+s72zbcNG7aGRpvX/hSZnAhxjdXpuskdEM3eEgOabdEg== - dependencies: - "@emotion/core" "^10.0.0" - "@emotion/styled" "^10.0.0" - "@styled-system/color" "^5.1.2" - "@styled-system/should-forward-prop" "^5.1.2" - "@styled-system/space" "^5.1.2" - "@theme-ui/css" "^0.3.1" - -"@theme-ui/core@^0.3.1": - version "0.3.1" - resolved "https://registry.npmjs.org/@theme-ui/core/-/core-0.3.1.tgz#dbe9800b9d6e923e1a7417e6adebce21524f8c02" - integrity sha512-cK6EVSOx0Kyx1Xpi4qb0JTLIxywx0DRh+53Ln1foXMplF2qKaDsFi3vD6duHIlT331E3CNOa9dftHHNM7y4rbA== - dependencies: - "@emotion/core" "^10.0.0" - "@theme-ui/css" "^0.3.1" - deepmerge "^4.2.2" - -"@theme-ui/css@^0.3.1": - version "0.3.1" - resolved "https://registry.npmjs.org/@theme-ui/css/-/css-0.3.1.tgz#b85c7e8fae948dc0de65aa30b853368993e25cb3" - integrity sha512-QB2/fZBpo4inaLHL3OrB8NOBgNfwnj8GtHzXWHb9iQSRjmtNX8zPXBe32jLT7qQP0+y8JxPT4YChZIkm5ZyIdg== - -"@theme-ui/mdx@^0.3.0": - version "0.3.0" - resolved "https://registry.npmjs.org/@theme-ui/mdx/-/mdx-0.3.0.tgz#8bb1342204acfaa69914d6b6567c5c49d9a8c1e6" - integrity sha512-/GHBNKqmUptWwkmF+zIASVQtjYs81XMEwtqPCHnHuaaCzhZxcXrtCwvcAgmCXF8hpRttCXVVxw1X3Gt0mhzaTQ== - dependencies: - "@emotion/core" "^10.0.0" - "@emotion/styled" "^10.0.0" - "@mdx-js/react" "^1.0.0" - -"@theme-ui/theme-provider@^0.3.1": - version "0.3.1" - resolved "https://registry.npmjs.org/@theme-ui/theme-provider/-/theme-provider-0.3.1.tgz#910bc43454fd61b1047d7bb0dce05e36ffb6b44b" - integrity sha512-Sjj6lD0gPxBi+hcGCkawcGZECeESV/mW2YfmPqjNgmc296x5tulfNc+0/N5CJwLVOmnkn8zR5KNWZ8BjndfeTg== - dependencies: - "@emotion/core" "^10.0.0" - "@theme-ui/color-modes" "^0.3.1" - "@theme-ui/core" "^0.3.1" - "@theme-ui/mdx" "^0.3.0" - -"@types/accepts@*", "@types/accepts@^1.3.5": - version "1.3.5" - resolved "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" - integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== - 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/babel__core@^7.1.7": - version "7.1.7" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89" - integrity sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.1" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" - integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.0.2" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" - integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.0.9" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.9.tgz#be82fab304b141c3eee81a4ce3b034d0eba1590a" - integrity sha512-jEFQ8L1tuvPjOI8lnpaf73oCJe+aoxL6ygqSy6c8LcW98zaC+4mzWuQIRCEvKeCOu+lbqdXcg4Uqmm1S8AP1tw== - dependencies: - "@babel/types" "^7.3.0" - -"@types/body-parser@*", "@types/body-parser@1.19.0", "@types/body-parser@^1.19.0": - version "1.19.0" - resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" - integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/cacheable-request@^6.0.1": - version "6.0.1" - resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" - integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "*" - "@types/node" "*" - "@types/responselike" "*" - -"@types/cheerio@^0.22.8": - version "0.22.21" - resolved "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.21.tgz#5e37887de309ba11b2e19a6e14cad7874b31a8a3" - integrity sha512-aGI3DfswwqgKPiEOTaiHV2ZPC9KEhprpgEbJnv0fZl3SGX0cGgEva1126dGrMC6AJM6v/aihlUgJn9M5DbDZ/Q== - dependencies: - "@types/node" "*" - -"@types/classnames@^2.2.9": - version "2.2.10" - resolved "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.10.tgz#cc658ca319b6355399efc1f5b9e818f1a24bf999" - integrity sha512-1UzDldn9GfYYEsWWnn/P4wkTlkZDH7lDb0wBMGbtIQc9zXEQq7FlKBdZUn6OBqD8sKZZ2RQO2mAjGpXiDGoRmQ== - -"@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.97": - version "0.0.97" - resolved "https://registry.npmjs.org/@types/codemirror/-/codemirror-0.0.97.tgz#6f2d8266b7f1b34aacfe8c77221fafe324c3d081" - integrity sha512-n5d7o9nWhC49DjfhsxANP7naWSeTzrjXASkUDQh7626sM4zK9XP2EVcHp1IcCf/IPV6c7ORzDUDF3Bkt231VKg== - dependencies: - "@types/tern" "*" - -"@types/color-convert@*": - version "1.9.0" - resolved "https://registry.npmjs.org/@types/color-convert/-/color-convert-1.9.0.tgz#bfa8203e41e7c65471e9841d7e306a7cd8b5172d" - integrity sha512-OKGEfULrvSL2VRbkl/gnjjgbbF7ycIlpSsX7Nkab4MOWi5XxmgBYvuiQ7lcCFY5cPDz7MUNaKgxte2VRmtr4Fg== - dependencies: - "@types/color-name" "*" - -"@types/color-name@*", "@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/color@^3.0.1": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/color/-/color-3.0.1.tgz#2900490ed04da8116c5058cd5dba3572d5a25071" - integrity sha512-oeUWVaAwI+xINDUx+3F2vJkl/vVB03VChFF/Gl3iQCdbcakjuoJyMOba+3BXRtnBhxZ7uBYqQBi9EpLnvSoztA== - dependencies: - "@types/color-convert" "*" - -"@types/compression@^1.7.0": - version "1.7.0" - resolved "https://registry.npmjs.org/@types/compression/-/compression-1.7.0.tgz#8dc2a56604873cf0dd4e746d9ae4d31ae77b2390" - integrity sha512-3LzWUM+3k3XdWOUk/RO+uSjv7YWOatYq2QADJntK1pjkk4DfVP0KrIEPDnXRJxAAGKe0VpIPRmlINLDuCedZWw== - dependencies: - "@types/express" "*" - -"@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" - integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A== - dependencies: - "@types/node" "*" - -"@types/content-disposition@*": - version "0.5.3" - resolved "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.3.tgz#0aa116701955c2faa0717fc69cd1596095e49d96" - integrity sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg== - -"@types/cookie-parser@^1.4.2": - version "1.4.2" - resolved "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.2.tgz#e4d5c5ffda82b80672a88a4281aaceefb1bd9df5" - integrity sha512-uwcY8m6SDQqciHsqcKDGbo10GdasYsPCYkH3hVegj9qAah6pX5HivOnOuI3WYmyQMnOATV39zv/Ybs0bC/6iVg== - dependencies: - "@types/express" "*" - -"@types/cookie@^0.4.0": - version "0.4.0" - resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz#14f854c0f93d326e39da6e3b6f34f7d37513d108" - integrity sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg== - -"@types/cookiejar@*": - version "2.1.1" - resolved "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.1.tgz#90b68446364baf9efd8e8349bb36bd3852b75b80" - integrity sha512-aRnpPa7ysx3aNW60hTiCtLHlQaIFsXFCgQlpakNgDNVFzbtusSY8PwjAQgRWfSk0ekNoBjO51eQRB6upA9uuyw== - -"@types/cookies@*": - version "0.7.4" - resolved "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.4.tgz#26dedf791701abc0e36b5b79a5722f40e455f87b" - integrity sha512-oTGtMzZZAVuEjTwCjIh8T8FrC8n/uwy+PG0yTvQcdZ7etoel7C7/3MSd7qrukENTgQtotG7gvBlBojuVs7X5rw== - dependencies: - "@types/connect" "*" - "@types/express" "*" - "@types/keygrip" "*" - "@types/node" "*" - -"@types/cors@^2.8.4", "@types/cors@^2.8.6": - version "2.8.6" - resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.6.tgz#cfaab33c49c15b1ded32f235111ce9123009bd02" - integrity sha512-invOmosX0DqbpA+cE2yoHGUlF/blyf7nB0OGYBBiH27crcVm5NmFaZkLP4Ta1hGaesckCi5lVLlydNJCxkTOSg== - dependencies: - "@types/express" "*" - -"@types/cssnano@*": - version "4.0.0" - resolved "https://registry.npmjs.org/@types/cssnano/-/cssnano-4.0.0.tgz#f1bb29d6d0813861a3d87e02946b2988d0110d4e" - integrity sha512-BC/2ibKZfPIaBLBNzkitdW1IvvX/LKW6/QXGc4Su/tAJ7mQ3f2CKBuGCCKaqGAnoKwzfuC7G/recpkARwdOwuA== - dependencies: - postcss "5 - 7" - -"@types/d3-force@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@types/d3-force/-/d3-force-1.2.1.tgz#c28803ea36fe29788db69efa0ad6c2dc09544e83" - integrity sha512-jqK+I36uz4kTBjyk39meed5y31Ab+tXYN/x1dn3nZEus9yOHCLc+VrcIYLc/aSQ0Y7tMPRlIhLetulME76EiiA== - -"@types/diff@^4.0.2": - version "4.0.2" - resolved "https://registry.npmjs.org/@types/diff/-/diff-4.0.2.tgz#2e9bb89f9acc3ab0108f0f3dc4dbdcf2fff8a99c" - integrity sha512-mIenTfsIe586/yzsyfql69KRnA75S8SVXQbTLpDejRrjH0QSJcpu3AUOi/Vjnt9IOsXKxPhJfGpQUNMueIU1fQ== - -"@types/dockerode@^2.5.32", "@types/dockerode@^2.5.34": - version "2.5.34" - resolved "https://registry.npmjs.org/@types/dockerode/-/dockerode-2.5.34.tgz#9adb884f7cc6c012a6eb4b2ad794cc5d01439959" - integrity sha512-LcbLGcvcBwBAvjH9UrUI+4qotY+A5WCer5r43DR5XHv2ZIEByNXFdPLo1XxR+v/BjkGjlggW8qUiXuVEhqfkpA== - dependencies: - "@types/node" "*" - -"@types/eslint-visitor-keys@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" - integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== - -"@types/eslint@*": - version "6.1.8" - resolved "https://registry.npmjs.org/@types/eslint/-/eslint-6.1.8.tgz#7e868f89bc1e520323d405940e49cb912ede5bba" - integrity sha512-CJBhm9pYdUS8cFVbXACWlLxZWFBTQMiM0eI6RYxng3u9oQ9gHdQ5PN89DHPrK4RISRzX62nRsteUlbBgEIdSug== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*": - version "0.0.44" - resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.44.tgz#980cc5a29a3ef3bea6ff1f7d021047d7ea575e21" - integrity sha512-iaIVzr+w2ZJ5HkidlZ3EJM8VTZb2MJLCjw3V+505yVts0gRC4UMvjw0d1HPtGqI/HQC/KdsYtayfzl+AXY2R8g== - -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - -"@types/events@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== - -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.5": - version "4.17.9" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.9.tgz#2d7b34dcfd25ec663c25c85d76608f8b249667f1" - integrity sha512-DG0BYg6yO+ePW+XoDENYz8zhNGC3jDDEpComMYn7WJc4mY1Us8Rw9ax2YhJXxpyk2SF47PQAoQ0YyVT1a0bEkA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - -"@types/express@*", "@types/express@4.17.7", "@types/express@^4.17.6": - version "4.17.7" - resolved "https://registry.npmjs.org/@types/express/-/express-4.17.7.tgz#42045be6475636d9801369cd4418ef65cdb0dd59" - integrity sha512-dCOT5lcmV/uC2J9k0rPafATeeyz+99xTt54ReX11/LObZgfzJqZNcW27zGhYyX+9iSEGXGt5qLPwRSvBZcLvtQ== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "*" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/fs-capacitor@*": - version "2.0.0" - resolved "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz#17113e25817f584f58100fb7a08eed288b81956e" - integrity sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ== - dependencies: - "@types/node" "*" - -"@types/fs-extra@^9.0.1": - version "9.0.1" - resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.1.tgz#91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918" - integrity sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg== - dependencies: - "@types/node" "*" - -"@types/git-url-parse@^9.0.0": - version "9.0.0" - resolved "https://registry.npmjs.org/@types/git-url-parse/-/git-url-parse-9.0.0.tgz#aac1315a44fa4ed5a52c3820f6c3c2fb79cbd12d" - integrity sha512-kA2RxBT/r/ZuDDKwMl+vFWn1Z0lfm1/Ik6Qb91wnSzyzCDa/fkM8gIOq6ruB7xfr37n6Mj5dyivileUVKsidlg== - -"@types/github-slugger@^1.3.0": - version "1.3.0" - 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@^7.1.1": - version "7.1.1" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== - dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" - -"@types/google-protobuf@^3.7.2": - version "3.7.3" - resolved "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.7.3.tgz#429512e541bbd777f2c867692e6335ee08d1f6d4" - integrity sha512-FRwj40euE2bYkG+0X5w2nEA8yAzgJRcEa7RBd0Gsdkb9/tPM2pctVVAvnOUTbcXo2VmIHPo0Ae94Gl9vRHfKzg== - -"@types/graceful-fs@^4.1.2": - version "4.1.3" - resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" - integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ== - dependencies: - "@types/node" "*" - -"@types/graphql-upload@^8.0.0": - version "8.0.3" - resolved "https://registry.npmjs.org/@types/graphql-upload/-/graphql-upload-8.0.3.tgz#b371edb5f305a2a1f7b7843a890a2a7adc55c3ec" - integrity sha512-hmLg9pCU/GmxBscg8GCr1vmSoEmbItNNxdD5YH2TJkXm//8atjwuprB+xJBK714JG1dkxbbhp5RHX+Pz1KsCMA== - dependencies: - "@types/express" "*" - "@types/fs-capacitor" "*" - "@types/koa" "*" - graphql "^14.5.3" - -"@types/helmet@^0.0.47": - version "0.0.47" - resolved "https://registry.npmjs.org/@types/helmet/-/helmet-0.0.47.tgz#ec5161541b649142205b7c558bca14801c5ce129" - integrity sha512-TcHA/djjdUtrMtq/QAayVLrsgjNNZ1Uhtz0KhfH01mrmjH44E54DA1A0HNbwW0H/NBFqV+tGMo85ACuEhMXcdg== - dependencies: - "@types/express" "*" - -"@types/history@*": - version "4.7.5" - resolved "https://registry.npmjs.org/@types/history/-/history-4.7.5.tgz#527d20ef68571a4af02ed74350164e7a67544860" - integrity sha512-wLD/Aq2VggCJXSjxEwrMafIP51Z+13H78nXIX0ABEuIGhmB5sNGbR113MOKo+yfw+RDo1ZU3DM6yfnnRF/+ouw== - -"@types/html-minifier-terser@^5.0.0": - version "5.1.0" - 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.3" - resolved "https://registry.npmjs.org/@types/html-webpack-plugin/-/html-webpack-plugin-3.2.3.tgz#865323e30e82560c0ca898dbf9f6f9d1c541cd7f" - integrity sha512-Y7dsVhTn75IaD4lMIY02UP1L8e0ou8KQu8DKPJAegEFKdJR28/8ejayDG8ykfR0DtYCx3dCEHIkdpN8AOB6txQ== - dependencies: - "@types/html-minifier" "*" - "@types/tapable" "*" - "@types/webpack" "*" - -"@types/http-assert@*": - version "1.5.1" - resolved "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b" - integrity sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ== - -"@types/http-cache-semantics@*": - version "4.0.0" - resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" - integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== - -"@types/http-errors@^1.6.3": - version "1.8.0" - resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.0.tgz#682477dbbbd07cd032731cb3b0e7eaee3d026b69" - integrity sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA== - -"@types/http-proxy-middleware@*": - version "0.19.3" - resolved "https://registry.npmjs.org/@types/http-proxy-middleware/-/http-proxy-middleware-0.19.3.tgz#b2eb96fbc0f9ac7250b5d9c4c53aade049497d03" - integrity sha512-lnBTx6HCOUeIJMLbI/LaL5EmdKLhczJY5oeXZpX/cXE4rRqb3RmV7VcMpiEfYkmTjipv3h7IAyIINe4plEv7cA== - dependencies: - "@types/connect" "*" - "@types/http-proxy" "*" - "@types/node" "*" - -"@types/http-proxy@*", "@types/http-proxy@^1.17.4": - version "1.17.4" - resolved "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.4.tgz#e7c92e3dbe3e13aa799440ff42e6d3a17a9d045b" - integrity sha512-IrSHl2u6AWXduUaDLqYpt45tLVCtYv7o4Z0s1KghBCDgIIS9oW5K1H8mZG/A2CfeLdEa7rTd1ACOiHBc1EMT2Q== - dependencies: - "@types/node" "*" - -"@types/inquirer@^6.5.0": - version "6.5.0" - resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz#b83b0bf30b88b8be7246d40e51d32fe9d10e09be" - integrity sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw== - dependencies: - "@types/through" "*" - rxjs "^6.4.0" - -"@types/is-function@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@types/is-function/-/is-function-1.0.0.tgz#1b0b819b1636c7baf0d6785d030d12edf70c3e83" - integrity sha512-iTs9HReBu7evG77Q4EC8hZnqRt57irBDkK9nvmHroiOIVwYMQc4IvYvdRgwKfYepunIY7Oh/dBuuld+Gj9uo6w== - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.1" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" - integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^1.1.1": - version "1.1.1" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a" - integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA== - dependencies: - "@types/istanbul-lib-coverage" "*" - "@types/istanbul-lib-report" "*" - -"@types/jest@*", "@types/jest@^26.0.7": - version "26.0.9" - resolved "https://registry.npmjs.org/@types/jest/-/jest-26.0.9.tgz#0543b57da5f0cd949c5f423a00c56c492289c989" - integrity sha512-k4qFfJ5AUKrWok5KYXp2EPm89b0P/KZpl7Vg4XuOTVVQEhLDBDBU3iBFrjjdgd8fLw96aAtmnwhXHl63bWeBQQ== - dependencies: - jest-diff "^25.2.1" - pretty-format "^25.2.1" - -"@types/jquery@^3.3.34": - version "3.5.1" - resolved "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.1.tgz#cebb057acf5071c40e439f30e840c57a30d406c3" - integrity sha512-Tyctjh56U7eX2b9udu3wG853ASYP0uagChJcQJXLUXEU6C/JiW5qt5dl8ao01VRj1i5pgXPAf8f1mq4+FDLRQg== - dependencies: - "@types/sizzle" "*" - -"@types/js-cookie@2.2.6": - version "2.2.6" - resolved "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.6.tgz#f1a1cb35aff47bc5cfb05cb0c441ca91e914c26f" - integrity sha512-+oY0FDTO2GYKEV0YPvSshGq9t7YozVkgvXLty7zogQNuCxBhT9/3INX9Q7H1aRZ4SUDRXAKlJuA4EA5nTt7SNw== - -"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5": - version "7.0.5" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" - integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= - -"@types/jwt-decode@2.2.1": - version "2.2.1" - resolved "https://registry.npmjs.org/@types/jwt-decode/-/jwt-decode-2.2.1.tgz#afdf5c527fcfccbd4009b5fd02d1e18241f2d2f2" - integrity sha512-aWw2YTtAdT7CskFyxEX2K21/zSDStuf/ikI3yBqmwpwJF0pS+/IX5DWv+1UFffZIbruP6cnT9/LAJV1gFwAT1A== - -"@types/keygrip@*": - version "1.0.2" - resolved "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" - integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== - -"@types/keyv@*", "@types/keyv@^3.1.1": - version "3.1.1" - resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" - integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== - dependencies: - "@types/node" "*" - -"@types/koa-compose@*": - version "3.2.5" - resolved "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" - integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== - dependencies: - "@types/koa" "*" - -"@types/koa@*": - version "2.11.3" - resolved "https://registry.npmjs.org/@types/koa/-/koa-2.11.3.tgz#540ece376581b12beadf9a417dd1731bc31c16ce" - integrity sha512-ABxVkrNWa4O/Jp24EYI/hRNqEVRlhB9g09p48neQp4m3xL1TJtdWk2NyNQSMCU45ejeELMQZBYyfstyVvO2H3Q== - dependencies: - "@types/accepts" "*" - "@types/content-disposition" "*" - "@types/cookies" "*" - "@types/http-assert" "*" - "@types/keygrip" "*" - "@types/koa-compose" "*" - "@types/node" "*" - -"@types/lodash@^4.14.151": - version "4.14.159" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.159.tgz#61089719dc6fdd9c5cb46efc827f2571d1517065" - integrity sha512-gF7A72f7WQN33DpqOWw9geApQPh4M3PxluMtaHxWHXEGSN12/WbcEk/eNSqWNQcQhF66VSZ06vCF94CrHwXJDg== - -"@types/long@^4.0.0": - version "4.0.1" - resolved "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" - integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== - -"@types/mime@*": - version "2.0.1" - resolved "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d" - integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw== - -"@types/mini-css-extract-plugin@^0.9.1": - version "0.9.1" - resolved "https://registry.npmjs.org/@types/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.1.tgz#d4bdde5197326fca039d418f4bdda03dc74dc451" - integrity sha512-+mN04Oszdz9tGjUP/c1ReVwJXxSniLd7lF++sv+8dkABxVNthg6uccei+4ssKxRHGoMmPxdn7uBdJWONSJGTGQ== - dependencies: - "@types/webpack" "*" - -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - -"@types/minipass@*": - version "2.2.0" - resolved "https://registry.npmjs.org/@types/minipass/-/minipass-2.2.0.tgz#51ad404e8eb1fa961f75ec61205796807b6f9651" - integrity sha512-wuzZksN4w4kyfoOv/dlpov4NOunwutLA/q7uc00xU02ZyUY+aoM5PWIXEKBMnm0NHd4a+N71BMjq+x7+2Af1fg== - dependencies: - "@types/node" "*" - -"@types/morgan@^1.9.0": - version "1.9.1" - resolved "https://registry.npmjs.org/@types/morgan/-/morgan-1.9.1.tgz#6457872df95647c1dbc6b3741e8146b71ece74bf" - integrity sha512-2j5IKrgJpEP6xw/uiVb2Xfga0W0sSVD9JP9t7EZLvpBENdB0OKgcnoKS8IsjNeNnZ/86robdZ61Orl0QCFGOXg== - dependencies: - "@types/node" "*" - -"@types/node-fetch@2.5.7", "@types/node-fetch@^2.5.7": - version "2.5.7" - resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz#20a2afffa882ab04d44ca786449a276f9f6bbf3c" - integrity sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw== - dependencies: - "@types/node" "*" - form-data "^3.0.0" - -"@types/node@*", "@types/node@>= 8": - version "14.0.26" - resolved "https://registry.npmjs.org/@types/node/-/node-14.0.26.tgz#22a3b8a46510da8944b67bfc27df02c34a35331c" - integrity sha512-W+fpe5s91FBGE0pEa0lnqGLL4USgpLgs4nokw16SrBBco/gQxuua7KnArSEOd5iaMqbbSHV10vUDkJYJJqpXKA== - -"@types/node@^10.1.0": - version "10.17.28" - resolved "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz#0e36d718a29355ee51cec83b42d921299200f6d9" - integrity sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ== - -"@types/node@^12.0.0": - version "12.12.53" - resolved "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz#be0d375933c3d15ef2380dafb3b0350ea7021129" - integrity sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ== - -"@types/node@^13.7.2": - version "13.13.15" - resolved "https://registry.npmjs.org/@types/node/-/node-13.13.15.tgz#fe1cc3aa465a3ea6858b793fd380b66c39919766" - integrity sha512-kwbcs0jySLxzLsa2nWUAGOd/s21WU1jebrEdtzhsj1D4Yps1EOuyI1Qcu+FD56dL7NRNIJtDDjcqIG22NwkgLw== - -"@types/nodegit@0.26.7": - version "0.26.7" - resolved "https://registry.npmjs.org/@types/nodegit/-/nodegit-0.26.7.tgz#3fc8f5108dcabddd6238509748c0e812ba02b9b7" - integrity sha512-qVwQupq4To/wkRtUnaiwbNhuRiVJShOG9CYIWiGdKQRkvWijtHmEnrC1KJHOVrzK04sMdHRClyecrfmN17VMFQ== - dependencies: - "@types/node" "*" - -"@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" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== - -"@types/npmlog@^4.1.2": - version "4.1.2" - resolved "https://registry.npmjs.org/@types/npmlog/-/npmlog-4.1.2.tgz#d070fe6a6b78755d1092a3dc492d34c3d8f871c4" - integrity sha512-4QQmOF5KlwfxJ5IGXFIudkeLCdMABz03RcUXu+LCb24zmln8QW6aDjuGl4d4XPVLf2j+FnjelHTP7dvceAFbhA== - -"@types/oauth@*": - version "0.9.1" - resolved "https://registry.npmjs.org/@types/oauth/-/oauth-0.9.1.tgz#e17221e7f7936b0459ae7d006255dff61adca305" - integrity sha512-a1iY62/a3yhZ7qH7cNUsxoI3U/0Fe9+RnuFrpTKr+0WVOzbKlSLojShCKe20aOD1Sppv+i8Zlq0pLDuTJnwS4A== - dependencies: - "@types/node" "*" - -"@types/ora@^3.2.0": - version "3.2.0" - resolved "https://registry.npmjs.org/@types/ora/-/ora-3.2.0.tgz#b2f65d1283a8f36d8b0f9ee767e0732a2f429362" - integrity sha512-jll99xUKpiFbIFZSQcxm4numfsLaOWBzWNaRk3PvTSE7BPqTzzOCFmS0mQ7m8qkTfmYhuYbehTGsxkvRLPC++w== - dependencies: - ora "*" - -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - -"@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" - integrity sha512-dtGtA0Uyzk6ne3SrgQi/I1ClClLE3i7JmSiMaJgkGH8v1nbE9JdBpG7QWJ1XPlLdcf7EvoPdHmkWN2+Kln9y8g== - dependencies: - "@types/express" "*" - "@types/passport" "*" - "@types/passport-oauth2" "*" - -"@types/passport-google-oauth20@^2.0.3": - version "2.0.3" - resolved "https://registry.npmjs.org/@types/passport-google-oauth20/-/passport-google-oauth20-2.0.3.tgz#f554ff6d39f395acff3f1d762e54462194dac8da" - integrity sha512-6EUEGzEg4acwowvgR/yVZIj8S2Kkwc6JmlY2/wnM1wJHNz20o7s1TIGrxnah8ymLgJasYDpy95P3TMMqlmetPw== - dependencies: - "@types/express" "*" - "@types/passport" "*" - "@types/passport-oauth2" "*" - -"@types/passport-microsoft@^0.0.0": - version "0.0.0" - resolved "https://registry.npmjs.org/@types/passport-microsoft/-/passport-microsoft-0.0.0.tgz#ba71bccdd793711239d6b02e8d5953c21abc1c8d" - integrity sha512-jfkltRosn+P/+RoFMTl+mCyBTgPTFhjDEF832j7fmlYpuf+5yuzPLz7Rm5XMKN/Gqpro6myCyGPTuCc4yBQ2jQ== - dependencies: - "@types/passport-oauth2" "*" - -"@types/passport-oauth2@*": - version "1.4.9" - resolved "https://registry.npmjs.org/@types/passport-oauth2/-/passport-oauth2-1.4.9.tgz#134007c4b505a82548c9cb19094c5baeb2205c92" - integrity sha512-QP0q+NVQOaIu2r0e10QWkiUA0Ya5mOBHRJN0UrI+LolMLOP1/VN4EVIpJ3xVwFo+xqNFRoFvFwJhBvKnk7kpUA== - dependencies: - "@types/express" "*" - "@types/oauth" "*" - "@types/passport" "*" - -"@types/passport-saml@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@types/passport-saml/-/passport-saml-1.1.2.tgz#f32ac2321eb25ec7bdbb1f3a5313b596bb0887e6" - integrity sha512-vpSdcb7V/bFxrvZJwSqnBr0qEqIhtOnwRBxw+Dvq4UkVbEgcCOkxF4tERCCFfA+FP3lp63VCCAifZLQrF5JkXA== - dependencies: - "@types/express" "*" - "@types/passport" "*" - -"@types/passport@*", "@types/passport@^1.0.3": - version "1.0.3" - resolved "https://registry.npmjs.org/@types/passport/-/passport-1.0.3.tgz#e459ed6c262bf0686684d1b05901be0d0b192a9c" - integrity sha512-nyztuxtDPQv9utCzU0qW7Gl8BY2Dn8BKlYAFFyxKipFxjaVd96celbkLCV/tRqqBUZ+JB8If3UfgV8347DTo3Q== - dependencies: - "@types/express" "*" - -"@types/prettier@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.0.0.tgz#dc85454b953178cc6043df5208b9e949b54a3bc4" - integrity sha512-/rM+sWiuOZ5dvuVzV37sUuklsbg+JPOP8d+nNFlo2ZtfpzPiPvh1/gc8liWOLBqe+sR+ZM7guPaIcTt6UZTo7Q== - -"@types/prop-types@*": - version "15.7.3" - resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" - integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== - -"@types/q@^1.5.1": - version "1.5.2" - resolved "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" - integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== - -"@types/qs@*": - version "6.9.4" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.4.tgz#a59e851c1ba16c0513ea123830dd639a0a15cb6a" - integrity sha512-+wYo+L6ZF6BMoEjtf8zB2esQsqdV6WsjRK/GP9WOgLPrq87PbNWgIxS76dS5uvl/QXtHGakZmwTznIfcPXcKlQ== - -"@types/range-parser@*": - version "1.2.3" - resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" - integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== - -"@types/reach__router@^1.2.3", "@types/reach__router@^1.3.5": - version "1.3.5" - resolved "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.5.tgz#14e1e981cccd3a5e50dc9e969a72de0b9d472f6d" - integrity sha512-h0NbqXN/tJuBY/xggZSej1SKQEstbHO7J/omt1tYoFGmj3YXOodZKbbqD4mNDh7zvEGYd7YFrac1LTtAr3xsYQ== - dependencies: - "@types/history" "*" - "@types/react" "*" - -"@types/react-dev-utils@^9.0.4": - version "9.0.4" - resolved "https://registry.npmjs.org/@types/react-dev-utils/-/react-dev-utils-9.0.4.tgz#3e4bee79b7536777cef219427ab1d38adc24f3f2" - integrity sha512-8cv9rAeSP1EmyRQAbZ/i6uYtai1VoKHGSBwDyCLM82wCkqoh3WPjJgI1pfi2kiLc0C5hNU7DLo7/c4hylfHLWg== - dependencies: - "@types/eslint" "*" - "@types/express" "*" - "@types/html-webpack-plugin" "*" - "@types/webpack" "*" - "@types/webpack-dev-server" "*" - -"@types/react-dom@^16.9.8": - version "16.9.8" - resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.8.tgz#fe4c1e11dfc67155733dfa6aa65108b4971cb423" - integrity sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA== - dependencies: - "@types/react" "*" - -"@types/react-helmet@^6.1.0": - version "6.1.0" - resolved "https://registry.npmjs.org/@types/react-helmet/-/react-helmet-6.1.0.tgz#af586ed685f4905e2adc7462d1d65ace52beee7a" - integrity sha512-PYRoU1XJFOzQ3BHvWL1T8iDNbRjdMDJMT5hFmZKGbsq09kbSqJy61uwEpTrbTNWDopVphUT34zUSVLK9pjsgYQ== - dependencies: - "@types/react" "*" - -"@types/react-lazylog@^4.5.0": - version "4.5.0" - resolved "https://registry.npmjs.org/@types/react-lazylog/-/react-lazylog-4.5.0.tgz#1677ac520f29ada2e95b8cd5f8ec54b897227278" - integrity sha512-yg0IhKtDRGqUUtXJwi9Y/sSmgX/gmVP0vu0cr5uAECmJnRQbAgsGoVUntQGtwH0Z7Y2iiTh+QW5LkOFsmtIisg== - dependencies: - "@types/react" "*" - immutable ">=3.8.2" - -"@types/react-sparklines@^1.7.0": - version "1.7.0" - resolved "https://registry.npmjs.org/@types/react-sparklines/-/react-sparklines-1.7.0.tgz#f956d0f7b0e746ad445ce1cd250fe81f8a384684" - integrity sha512-Vd+cME7+Yy3kFNhnid9EBIKiyCQ/at8nqDczIs0UYfIB8AtaRJPqekigv02biOsIbQCvxyvIAIjiTKOC+hHNbA== - 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-test-renderer@*": - version "16.9.2" - resolved "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.9.2.tgz#e1c408831e8183e5ad748fdece02214a7c2ab6c5" - integrity sha512-4eJr1JFLIAlWhzDkBCkhrOIWOvOxcCAfQh+jiKg7l/nNZcCIL2MHl2dZhogIFKyHzedVWHaVP1Yydq/Ruu4agw== - dependencies: - "@types/react" "*" - -"@types/react-textarea-autosize@^4.3.3": - version "4.3.5" - resolved "https://registry.npmjs.org/@types/react-textarea-autosize/-/react-textarea-autosize-4.3.5.tgz#6c4d2753fa1864c98c0b2b517f67bb1f6e4c46de" - integrity sha512-PiDL83kPMTolyZAWW3lyzO6ktooTb9tFTntVy7CA83/qFLWKLJ5bLeRboy6J6j3b1e8h2Eec6gBTEOOJRjV14A== - dependencies: - "@types/react" "*" - -"@types/react-transition-group@^4.2.0": - version "4.2.4" - resolved "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.2.4.tgz#c7416225987ccdb719262766c1483da8f826838d" - integrity sha512-8DMUaDqh0S70TjkqU0DxOu80tFUiiaS9rxkWip/nb7gtvAsbqOXm02UCmR8zdcjWujgeYPiPNTVpVpKzUDotwA== - dependencies: - "@types/react" "*" - -"@types/react-wait@^0.3.0": - version "0.3.1" - resolved "https://registry.npmjs.org/@types/react-wait/-/react-wait-0.3.1.tgz#193cbd8fe86baa53b6f65dfa73f03d562f462a27" - integrity sha512-BS9AEjWZItDgpx6LlICcuf53M27zBFCsHx/llCbrmrt/WI7ecG2LGquCss3n8O8bwEDiTX4yYLjy8yLeIfgYTg== - dependencies: - "@types/react" "*" - -"@types/react@*", "@types/react@^16.9": - version "16.9.37" - resolved "https://registry.npmjs.org/@types/react/-/react-16.9.37.tgz#8fb93e7dbd5b1d3796f69aa979a7fe0439bc7bea" - integrity sha512-ZqnAXallQiZ08LTSqMfWMNvAfJEzRLOxdlbbbCIJlYGjU98BEU6bE2uBpKPGeWn+v3hIgCraHKtqUcKZBzMP/Q== - dependencies: - "@types/prop-types" "*" - csstype "^2.2.0" - -"@types/react@16.4.6": - version "16.4.6" - resolved "https://registry.npmjs.org/@types/react/-/react-16.4.6.tgz#5024957c6bcef4f02823accf5974faba2e54fada" - integrity sha512-9LDZdhsuKSc+DjY65SjBkA958oBWcTWSVWAd2cD9XqKBjhGw1KzAkRhWRw2eIsXvaIE/TOTjjKMFVC+JA1iU4g== - dependencies: - csstype "^2.2.0" - -"@types/recursive-readdir@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@types/recursive-readdir/-/recursive-readdir-2.2.0.tgz#b39cd5474fd58ea727fe434d5c68b7a20ba9121c" - integrity sha512-HGk753KRu2N4mWduovY4BLjYq4jTOL29gV2OfGdGxHcPSWGFkC5RRIdk+VTs5XmYd7MVAD+JwKrcb5+5Y7FOCg== - dependencies: - "@types/node" "*" - -"@types/relateurl@*": - version "0.2.28" - resolved "https://registry.npmjs.org/@types/relateurl/-/relateurl-0.2.28.tgz#6bda7db8653fa62643f5ee69e9f69c11a392e3a6" - integrity sha1-a9p9uGU/piZD9e5p6facEaOS46Y= - -"@types/resolve@1.17.1": - version "1.17.1" - resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" - integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== - dependencies: - "@types/node" "*" - -"@types/responselike@*", "@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== - dependencies: - "@types/node" "*" - -"@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" - integrity sha512-BiztED+KYJPBI3ihLSOuuZSzy836WAOpC9UrMtDqk3+VeByR8A5pJJ9pCVnq/dfB4wyCeiFL+FlyJnqZuP3pxg== - dependencies: - "@types/node" "*" - rollup "^0.63.4" - -"@types/rollup-plugin-postcss@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@types/rollup-plugin-postcss/-/rollup-plugin-postcss-2.0.0.tgz#b1bcc686c7dbe441f2fcfb47cac01acc508f46c0" - integrity sha512-lw4LvCcWpQ/Yomb9bxT69uAN5ZfW6nhL9itEu3z0IzsNNqKalwIDo7pEK8jxoiHQmcPaYzayAfo4M1JT/h8crw== - dependencies: - "@types/cssnano" "*" - "@types/node" "*" - rollup "^0.63.4" - -"@types/serve-handler@^6.1.0": - version "6.1.0" - resolved "https://registry.npmjs.org/@types/serve-handler/-/serve-handler-6.1.0.tgz#6952aaf864e542297ce8a2480b3e0d9ea59de7f6" - integrity sha512-F9BpWotLZrQvq1CdE3oCnVmQUb6dWq20HSB/qjF4mG7WkZjPQ6fye8veznMKoBPhFJve4yz9C1NOITdTcoLngQ== - dependencies: - "@types/node" "*" - -"@types/serve-static@*": - version "1.13.3" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz#eb7e1c41c4468272557e897e9171ded5e2ded9d1" - integrity sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g== - dependencies: - "@types/express-serve-static-core" "*" - "@types/mime" "*" - -"@types/sinonjs__fake-timers@^6.0.1": - version "6.0.1" - resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz#681df970358c82836b42f989188d133e218c458e" - integrity sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA== - -"@types/sizzle@*", "@types/sizzle@^2.3.2": - version "2.3.2" - resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" - integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== - -"@types/source-list-map@*": - version "0.1.2" - resolved "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" - integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== - -"@types/stack-utils@^1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" - integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== - -"@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" - integrity sha512-BRR23Q9CJduH7AM6mk4JRttd8XyFkb4qIPZu4mdLF+VoP+wcjIxIWIKiBbN78NBbEuynrAyMPtzOHnIp2B/JPQ== - dependencies: - "@types/node" "*" - -"@types/styled-jsx@^2.2.8": - version "2.2.8" - resolved "https://registry.npmjs.org/@types/styled-jsx/-/styled-jsx-2.2.8.tgz#b50d13d8a3c34036282d65194554cf186bab7234" - integrity sha512-Yjye9VwMdYeXfS71ihueWRSxrruuXTwKCbzue4+5b2rjnQ//AtyM7myZ1BEhNhBQ/nL/RE7bdToUoLln2miKvg== - dependencies: - "@types/react" "*" - -"@types/superagent@*": - version "4.1.7" - resolved "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.7.tgz#a7d92d98c490ee0f802a127fdf149b9a114f77a5" - integrity sha512-JSwNPgRYjIC4pIeOqLwWwfGj6iP1n5NE6kNBEbGx2V8H78xCPwx7QpNp9plaI30+W3cFEzJO7BIIsXE+dbtaGg== - dependencies: - "@types/cookiejar" "*" - "@types/node" "*" - -"@types/supertest@^2.0.8": - version "2.0.9" - resolved "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.9.tgz#049bddbcb0ee0d60a9b836ccc977d813a1c32325" - integrity sha512-0BTpWWWAO1+uXaP/oA0KW1eOZv4hc0knhrWowV06Gwwz3kqQxNO98fUFM2e15T+PdPRmOouNFrYvaBgdojPJ3g== - dependencies: - "@types/superagent" "*" - -"@types/swagger-ui-react@^3.23.3": - version "3.23.3" - resolved "https://registry.npmjs.org/@types/swagger-ui-react/-/swagger-ui-react-3.23.3.tgz#56bcf3872d8655500e6d51d29ba3916397806fa3" - integrity sha512-JKWYWAliabBxMxURagpRR6RHLEZxxp2W2tf1IN7ftqye6dIxC2e4mh4eZzARPG8+2OpzKlodHIOIwueFTYWaag== - dependencies: - "@types/react" "*" - -"@types/tapable@*", "@types/tapable@^1.0.5": - version "1.0.5" - resolved "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.5.tgz#9adbc12950582aa65ead76bffdf39fe0c27a3c02" - integrity sha512-/gG2M/Imw7cQFp8PGvz/SwocNrmKFjFsm5Pb8HdbHkZ1K8pmuPzOX4VeVoiEecFCVf4CsN1r3/BRvx+6sNqwtQ== - -"@types/tar@^4.0.3": - version "4.0.3" - resolved "https://registry.npmjs.org/@types/tar/-/tar-4.0.3.tgz#e2cce0b8ff4f285293243f5971bd7199176ac489" - integrity sha512-Z7AVMMlkI8NTWF0qGhC4QIX0zkV/+y0J8x7b/RsHrN0310+YNjoJd8UrApCiGBCWtKjxS9QhNqLi2UJNToh5hA== - dependencies: - "@types/minipass" "*" - "@types/node" "*" - -"@types/tern@*": - version "0.23.3" - resolved "https://registry.npmjs.org/@types/tern/-/tern-0.23.3.tgz#4b54538f04a88c9ff79de1f6f94f575a7f339460" - integrity sha512-imDtS4TAoTcXk0g7u4kkWqedB3E4qpjXzCpD2LU5M5NAXHzCDsypyvXSaG7mM8DKYkCRa7tFp4tS/lp/Wo7Q3w== - dependencies: - "@types/estree" "*" - -"@types/testing-library__cypress@^5.0.3": - version "5.0.3" - resolved "https://registry.npmjs.org/@types/testing-library__cypress/-/testing-library__cypress-5.0.3.tgz#94969b7c1eea96e09d8e023a1d225590fa75a1fe" - integrity sha512-efMwaVnsWEBDz0Ikm84Kh/oiUxMfz5LQtWx/Y6s2Bj0KkQ6+569/101X3Gz2bJy+otaXWPzOUOwDeAfzOJWoeQ== - dependencies: - "@types/testing-library__dom" "*" - cypress "*" - -"@types/testing-library__dom@*": - version "6.14.0" - resolved "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.14.0.tgz#1aede831cb4ed4a398448df5a2c54b54a365644e" - integrity sha512-sMl7OSv0AvMOqn1UJ6j1unPMIHRXen0Ita1ujnMX912rrOcawe4f7wu0Zt9GIQhBhJvH2BaibqFgQ3lP+Pj2hA== - dependencies: - pretty-format "^24.3.0" - -"@types/testing-library__jest-dom@^5.9.1": - version "5.9.1" - resolved "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.1.tgz#aba5ee062b7880f69c212ef769389f30752806e5" - integrity sha512-yYn5EKHO3MPEMSOrcAb1dLWY+68CG29LiXKsWmmpVHqoP5+ZRiAVLyUHvPNrO2dABDdUGZvavMsaGpWNjM6N2g== - dependencies: - "@types/jest" "*" - -"@types/testing-library__react-hooks@^3.3.0": - version "3.4.0" - resolved "https://registry.npmjs.org/@types/testing-library__react-hooks/-/testing-library__react-hooks-3.4.0.tgz#be148b7fa7d19cd3349c4ef9d9534486bc582fcc" - integrity sha512-QYLZipqt1hpwYsBU63Ssa557v5wWbncqL36No59LI7W3nCMYKrLWTnYGn2griZ6v/3n5nKXNYkTeYpqPHY7Ukg== - dependencies: - "@types/react-test-renderer" "*" - -"@types/through@*": - version "0.0.30" - resolved "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz#e0e42ce77e897bd6aead6f6ea62aeb135b8a3895" - integrity sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg== - dependencies: - "@types/node" "*" - -"@types/uglify-js@*": - version "3.0.4" - resolved "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.0.4.tgz#96beae23df6f561862a830b4288a49e86baac082" - integrity sha512-SudIN9TRJ+v8g5pTG8RRCqfqTMNqgWCKKd3vtynhGzkIIjxaicNAMuY5TRadJ6tzDu3Dotf3ngaMILtmOdmWEQ== - dependencies: - source-map "^0.6.1" - -"@types/uuid@^8.0.0": - version "8.0.0" - resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.0.0.tgz#165aae4819ad2174a17476dbe66feebd549556c0" - integrity sha512-xSQfNcvOiE5f9dyd4Kzxbof1aTrLobL278pGLKOZI6esGfZ7ts9Ka16CzIN6Y8hFHE1C7jIBZokULhK1bOgjRw== - -"@types/webpack-dev-server@*", "@types/webpack-dev-server@^3.10.0": - version "3.11.0" - resolved "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#bcc3b85e7dc6ac2db25330610513f2228c2fcfb2" - integrity sha512-3+86AgSzl18n5P1iUP9/lz3G3GMztCp+wxdDvVuNhx1sr1jE79GpYfKHL8k+Vht3N74K2n98CuAEw4YPJCYtDA== - dependencies: - "@types/connect-history-api-fallback" "*" - "@types/express" "*" - "@types/http-proxy-middleware" "*" - "@types/serve-static" "*" - "@types/webpack" "*" - -"@types/webpack-env@^1.15.0", "@types/webpack-env@^1.15.2": - version "1.15.2" - resolved "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.15.2.tgz#927997342bb9f4a5185a86e6579a0a18afc33b0a" - integrity sha512-67ZgZpAlhIICIdfQrB5fnDvaKFcDxpKibxznfYRVAT4mQE41Dido/3Ty+E3xGBmTogc5+0Qb8tWhna+5B8z1iQ== - -"@types/webpack-node-externals@^2.5.0": - version "2.5.0" - resolved "https://registry.npmjs.org/@types/webpack-node-externals/-/webpack-node-externals-2.5.0.tgz#bcd161af84a4960416e5850e06931b35321c6654" - integrity sha512-KaWfhUQlpWknM/CMBKhV7i0vxX/N2xEy3WeaE500s4ZNxC4nLnKB+0F3gD3Fg+5octPq0nn8ZlfFR/P3dSkXpw== - dependencies: - "@types/webpack" "*" - -"@types/webpack-sources@*": - version "0.1.6" - resolved "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.6.tgz#3d21dfc2ec0ad0c77758e79362426a9ba7d7cbcb" - integrity sha512-FtAWR7wR5ocJ9+nP137DV81tveD/ZgB1sadnJ/axUGM3BUVfRPx8oQNMtv3JNfTeHx3VP7cXiyfR/jmtEsVHsQ== - dependencies: - "@types/node" "*" - "@types/source-list-map" "*" - source-map "^0.6.1" - -"@types/webpack@*", "@types/webpack@^4.41.7", "@types/webpack@^4.41.8": - version "4.41.21" - resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.21.tgz#cc685b332c33f153bb2f5fc1fa3ac8adeb592dee" - integrity sha512-2j9WVnNrr/8PLAB5csW44xzQSJwS26aOnICsP3pSGCEdsu6KYtfQ6QJsVUKHWRnm1bL7HziJsfh5fHqth87yKA== - dependencies: - "@types/anymatch" "*" - "@types/node" "*" - "@types/tapable" "*" - "@types/uglify-js" "*" - "@types/webpack-sources" "*" - source-map "^0.6.0" - -"@types/websocket@1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.1.tgz#039272c196c2c0e4868a0d8a1a27bbb86e9e9138" - integrity sha512-f5WLMpezwVxCLm1xQe/kdPpQIOmL0TXYx2O15VYfYzc7hTIdxiOoOvez+McSIw3b7z/1zGovew9YSL7+h4h7/Q== - dependencies: - "@types/node" "*" - -"@types/whatwg-streams@^0.0.7": - version "0.0.7" - resolved "https://registry.npmjs.org/@types/whatwg-streams/-/whatwg-streams-0.0.7.tgz#28bfe73dc850562296367249c4b32a50db81e9d3" - integrity sha512-6sDiSEP6DWcY2ZolsJ2s39ZmsoGQ7KVwBDI3sESQsEm9P2dHTcqnDIHRZFRNtLCzWp7hCFGqYbw5GyfpQnJ01A== - -"@types/ws@^7.0.0": - version "7.2.6" - resolved "https://registry.npmjs.org/@types/ws/-/ws-7.2.6.tgz#516cbfb818310f87b43940460e065eb912a4178d" - integrity sha512-Q07IrQUSNpr+cXU4E4LtkSIBPie5GLZyyMC1QtQYRLWz701+XcoVygGUZgvLqElq1nU4ICldMYPnexlBsg3dqQ== - dependencies: - "@types/node" "*" - -"@types/yaml@^1.9.7": - version "1.9.7" - resolved "https://registry.npmjs.org/@types/yaml/-/yaml-1.9.7.tgz#2331f36e0aac91311a63d33eb026c21687729679" - integrity sha512-8WMXRDD1D+wCohjfslHDgICd2JtMATZU8CkhH8LVJqcJs6dyYj5TGptzP8wApbmEullGBSsCEzzap73DQ1HJaA== - dependencies: - yaml "*" - -"@types/yargs-parser@*": - version "15.0.0" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" - integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== - -"@types/yargs@^13.0.0": - version "13.0.8" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz#a38c22def2f1c2068f8971acb3ea734eb3c64a99" - integrity sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^15.0.0": - version "15.0.4" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299" - integrity sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg== - dependencies: - "@types/yargs-parser" "*" - -"@types/yup@^0.28.2": - version "0.28.3" - resolved "https://registry.npmjs.org/@types/yup/-/yup-0.28.3.tgz#387c35f9a6a36b8d3561f6601eb4e72518b92899" - integrity sha512-0Sir2LxOmupF8HBUvpJoZghLmOqKfZsBk1GYlMwSIccLDDUoN04LHvo0KzDp9qxt1IKf9Fudpj35SrJ8VqetkQ== - -"@types/zen-observable@^0.8.0": - version "0.8.0" - resolved "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d" - integrity sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg== - -"@typescript-eslint/eslint-plugin@^2.14.0": - version "2.24.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.24.0.tgz#a86cf618c965a462cddf3601f594544b134d6d68" - integrity sha512-wJRBeaMeT7RLQ27UQkDFOu25MqFOBus8PtOa9KaT5ZuxC1kAsd7JEHqWt4YXuY9eancX0GK9C68i5OROnlIzBA== - dependencies: - "@typescript-eslint/experimental-utils" "2.24.0" - eslint-utils "^1.4.3" - functional-red-black-tree "^1.0.1" - regexpp "^3.0.0" - tsutils "^3.17.1" - -"@typescript-eslint/experimental-utils@2.24.0", "@typescript-eslint/experimental-utils@^2.5.0": - version "2.24.0" - resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.24.0.tgz#a5cb2ed89fedf8b59638dc83484eb0c8c35e1143" - integrity sha512-DXrwuXTdVh3ycNCMYmWhUzn/gfqu9N0VzNnahjiDJvcyhfBy4gb59ncVZVxdp5XzBC77dCncu0daQgOkbvPwBw== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.24.0" - eslint-scope "^5.0.0" - -"@typescript-eslint/parser@^2.14.0": - version "2.24.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.24.0.tgz#2cf0eae6e6dd44d162486ad949c126b887f11eb8" - integrity sha512-H2Y7uacwSSg8IbVxdYExSI3T7uM1DzmOn2COGtCahCC3g8YtM1xYAPi2MAHyfPs61VKxP/J/UiSctcRgw4G8aw== - dependencies: - "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "2.24.0" - "@typescript-eslint/typescript-estree" "2.24.0" - eslint-visitor-keys "^1.1.0" - -"@typescript-eslint/typescript-estree@2.24.0": - version "2.24.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.24.0.tgz#38bbc8bb479790d2f324797ffbcdb346d897c62a" - integrity sha512-RJ0yMe5owMSix55qX7Mi9V6z2FDuuDpN6eR5fzRJrp+8in9UF41IGNQHbg5aMK4/PjVaEQksLvz0IA8n+Mr/FA== - dependencies: - debug "^4.1.1" - eslint-visitor-keys "^1.1.0" - glob "^7.1.6" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^6.3.0" - tsutils "^3.17.1" - -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@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.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.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@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.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@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.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.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" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.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" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.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" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.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" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@wry/equality@^0.1.2": - version "0.1.11" - resolved "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" - integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== - dependencies: - tslib "^1.9.3" - -"@xobotyi/scrollbar-width@1.9.5": - version "1.9.5" - resolved "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d" - integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ== - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -"@zkochan/cmd-shim@^3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e" - integrity sha512-o8l0+x7C7sMZU3v9GuJIAU10qQLtwR1dtRQIOmlNMtyaqhmpXOzx1HWiYoWfmmf9HHZoAkXpc9TM9PQYF9d4Jg== - dependencies: - is-windows "^1.0.0" - mkdirp-promise "^5.0.1" - mz "^2.5.0" - -JSONStream@^1.0.4, JSONStream@^1.3.4: - version "1.3.5" - resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -abab@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" - integrity sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4= - -abab@^2.0.0, abab@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" - integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== - -abbrev@1: - version "1.1.1" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -accepts@^1.3.5, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn-globals@^1.0.4: - version "1.0.9" - resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz#55bb5e98691507b74579d0513413217c380c54cf" - integrity sha1-VbtemGkVB7dFedBRNBMhfDgMVM8= - dependencies: - acorn "^2.1.0" - -acorn-globals@^4.1.0: - version "4.3.4" - resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" - integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== - dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-jsx@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" - integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== - -acorn-walk@^6.0.1: - version "6.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" - integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== - -acorn-walk@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e" - integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ== - -acorn@^2.1.0, acorn@^2.4.0: - version "2.7.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" - integrity sha1-q259nYhqrKiwhbwzEreaGYQz8Oc= - -acorn@^5.5.3: - version "5.7.4" - resolved "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" - integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== - -acorn@^6.0.1, acorn@^6.4.1: - version "6.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== - -acorn@^7.1.1, acorn@^7.2.0: - version "7.3.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" - integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== - -address@1.1.2, address@^1.0.1: - version "1.1.2" - resolved "https://registry.npmjs.org/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" - integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== - -agent-base@4, agent-base@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" - integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== - dependencies: - es6-promisify "^5.0.0" - -agent-base@~4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" - integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== - dependencies: - es6-promisify "^5.0.0" - -agentkeepalive@^3.4.1: - version "3.5.2" - resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" - integrity sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ== - dependencies: - humanize-ms "^1.2.1" - -aggregate-error@3.0.1, aggregate-error@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" - integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -airbnb-js-shims@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/airbnb-js-shims/-/airbnb-js-shims-2.2.1.tgz#db481102d682b98ed1daa4c5baa697a05ce5c040" - integrity sha512-wJNXPH66U2xjgo1Zwyjf9EydvJ2Si94+vSdk6EERcBfB2VZkeltpqIats0cqIZMLCXP3zcyaUKGYQeIBT6XjsQ== - dependencies: - array-includes "^3.0.3" - array.prototype.flat "^1.2.1" - array.prototype.flatmap "^1.2.1" - es5-shim "^4.5.13" - es6-shim "^0.35.5" - function.prototype.name "^1.1.0" - globalthis "^1.0.0" - object.entries "^1.1.0" - object.fromentries "^2.0.0 || ^1.0.0" - object.getownpropertydescriptors "^2.0.3" - object.values "^1.1.0" - promise.allsettled "^1.0.0" - promise.prototype.finally "^3.1.0" - string.prototype.matchall "^4.0.0 || ^3.0.1" - string.prototype.padend "^3.0.0" - string.prototype.padstart "^3.0.0" - symbol.prototype.description "^1.0.0" - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.4.1" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== - -ajv@6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz#678495f9b82f7cca6be248dd92f59bff5e1f4360" - integrity sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA== - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.1" - -ajv@^5.0.0: - version "5.5.2" - resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.1, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5, ajv@^6.7.0: - version "6.12.3" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" - integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== - dependencies: - string-width "^3.0.0" - -ansi-colors@^3.0.0, ansi-colors@^3.2.1: - version "3.2.4" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: - version "4.3.1" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== - dependencies: - type-fest "^0.11.0" - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-red@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" - integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= - dependencies: - ansi-wrap "0.1.0" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.0.0, ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - -ansi-to-html@^0.6.11: - version "0.6.14" - resolved "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.14.tgz#65fe6d08bba5dd9db33f44a20aec331e0010dad8" - integrity sha512-7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA== - dependencies: - entities "^1.1.2" - -ansi-wrap@0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" - integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= - -any-observable@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" - integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== - -any-promise@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.0.3, anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -apollo-cache-control@^0.11.1: - version "0.11.1" - resolved "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.1.tgz#3bce0924ae7322a8b9f7ca1e2fb036d1fc9f1df5" - integrity sha512-6iHa8TkcKt4rx5SKRzDNjUIpCQX+7/FlZwD7vRh9JDnM4VH8SWhpj8fUR3CiEY8Kuc4ChXnOY8bCcMju5KPnIQ== - dependencies: - apollo-server-env "^2.4.5" - apollo-server-plugin-base "^0.9.1" - -apollo-datasource@^0.7.2: - version "0.7.2" - resolved "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.2.tgz#1662ee93453a9b89af6f73ce561bde46b41ebf31" - integrity sha512-ibnW+s4BMp4K2AgzLEtvzkjg7dJgCaw9M5b5N0YKNmeRZRnl/I/qBTQae648FsRKgMwTbRQIvBhQ0URUFAqFOw== - dependencies: - apollo-server-caching "^0.5.2" - apollo-server-env "^2.4.5" - -apollo-engine-reporting-protobuf@^0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.5.2.tgz#b01812508a1c583328a8dc603769bc63b8895e7e" - integrity sha512-4wm9FR3B7UvJxcK/69rOiS5CAJPEYKufeRWb257ZLfX7NGFTMqvbc1hu4q8Ch7swB26rTpkzfsftLED9DqH9qg== - dependencies: - "@apollo/protobufjs" "^1.0.3" - -apollo-engine-reporting@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-2.3.0.tgz#3bb59f81aaf6b967ed098896a4a60a053b4eed5a" - integrity sha512-SbcPLFuUZcRqDEZ6mSs8uHM9Ftr8yyt2IEu0JA8c3LNBmYXSLM7MHqFe80SVcosYSTBgtMz8mLJO8orhYoSYZw== - dependencies: - apollo-engine-reporting-protobuf "^0.5.2" - apollo-graphql "^0.5.0" - apollo-server-caching "^0.5.2" - apollo-server-env "^2.4.5" - apollo-server-errors "^2.4.2" - apollo-server-plugin-base "^0.9.1" - apollo-server-types "^0.5.1" - async-retry "^1.2.1" - uuid "^8.0.0" - -apollo-env@^0.6.5: - version "0.6.5" - resolved "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.5.tgz#5a36e699d39e2356381f7203493187260fded9f3" - integrity sha512-jeBUVsGymeTHYWp3me0R2CZRZrFeuSZeICZHCeRflHTfnQtlmbSXdy5E0pOyRM9CU4JfQkKDC98S1YglQj7Bzg== - dependencies: - "@types/node-fetch" "2.5.7" - core-js "^3.0.1" - node-fetch "^2.2.0" - sha.js "^2.4.11" - -apollo-graphql@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.5.0.tgz#7e9152093211b58352aa6504d8d39ec7241d6872" - integrity sha512-YSdF/BKPbsnQpxWpmCE53pBJX44aaoif31Y22I/qKpB6ZSGzYijV5YBoCL5Q15H2oA/v/02Oazh9lbp4ek3eig== - dependencies: - apollo-env "^0.6.5" - lodash.sortby "^4.7.0" - -apollo-link@^1.2.14: - version "1.2.14" - resolved "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9" - integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== - dependencies: - apollo-utilities "^1.3.0" - ts-invariant "^0.4.0" - tslib "^1.9.3" - zen-observable-ts "^0.8.21" - -apollo-server-caching@^0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.2.tgz#bef5d5e0d48473a454927a66b7bb947a0b6eb13e" - integrity sha512-HUcP3TlgRsuGgeTOn8QMbkdx0hLPXyEJehZIPrcof0ATz7j7aTPA4at7gaiFHCo8gk07DaWYGB3PFgjboXRcWQ== - dependencies: - lru-cache "^5.0.0" - -apollo-server-core@^2.16.1: - version "2.16.1" - resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.16.1.tgz#5b5b8245ab9c0cb6c2367ec19ab855dea6ccea3a" - integrity sha512-nuwn5ZBbmzPwDetb3FgiFFJlNK7ZBFg8kis/raymrjd3eBGdNcOyMTJDl6J9673X9Xqp+dXQmFYDW/G3G8S1YA== - dependencies: - "@apollographql/apollo-tools" "^0.4.3" - "@apollographql/graphql-playground-html" "1.6.26" - "@types/graphql-upload" "^8.0.0" - "@types/ws" "^7.0.0" - apollo-cache-control "^0.11.1" - apollo-datasource "^0.7.2" - apollo-engine-reporting "^2.3.0" - apollo-server-caching "^0.5.2" - apollo-server-env "^2.4.5" - apollo-server-errors "^2.4.2" - apollo-server-plugin-base "^0.9.1" - apollo-server-types "^0.5.1" - apollo-tracing "^0.11.1" - fast-json-stable-stringify "^2.0.0" - graphql-extensions "^0.12.4" - graphql-tag "^2.9.2" - graphql-tools "^4.0.0" - graphql-upload "^8.0.2" - loglevel "^1.6.7" - sha.js "^2.4.11" - subscriptions-transport-ws "^0.9.11" - ws "^6.0.0" - -apollo-server-env@^2.4.5: - version "2.4.5" - resolved "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.5.tgz#73730b4f0439094a2272a9d0caa4079d4b661d5f" - integrity sha512-nfNhmGPzbq3xCEWT8eRpoHXIPNcNy3QcEoBlzVMjeglrBGryLG2LXwBSPnVmTRRrzUYugX0ULBtgE3rBFNoUgA== - dependencies: - node-fetch "^2.1.2" - util.promisify "^1.0.0" - -apollo-server-errors@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.4.2.tgz#1128738a1d14da989f58420896d70524784eabe5" - integrity sha512-FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ== - -apollo-server-express@^2.16.0, apollo-server-express@^2.16.1: - version "2.16.1" - resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.16.1.tgz#7438bca590ef8577d24d20ba0b6d582c120c0146" - integrity sha512-Oq5YNcaMYnRk6jDmA9LWf8oSd2KHDVe7jQ4wtooAvG9FVUD+FaFBgSkytXHMvtifQh2wdF07Ri8uDLMz6IQjTw== - dependencies: - "@apollographql/graphql-playground-html" "1.6.26" - "@types/accepts" "^1.3.5" - "@types/body-parser" "1.19.0" - "@types/cors" "^2.8.4" - "@types/express" "4.17.7" - accepts "^1.3.5" - apollo-server-core "^2.16.1" - apollo-server-types "^0.5.1" - body-parser "^1.18.3" - cors "^2.8.4" - express "^4.17.1" - graphql-subscriptions "^1.0.0" - graphql-tools "^4.0.0" - parseurl "^1.3.2" - subscriptions-transport-ws "^0.9.16" - type-is "^1.6.16" - -apollo-server-plugin-base@^0.9.1: - version "0.9.1" - resolved "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.9.1.tgz#a62ae9ab4e89790fd4cc5d123bb616da34e8e5fb" - integrity sha512-kvrX4Z3FdpjrZdHkyl5iY2A1Wvp4b6KQp00DeZqss7GyyKNUBKr80/7RQgBLEw7EWM7WB19j459xM/TjvW0FKQ== - dependencies: - apollo-server-types "^0.5.1" - -apollo-server-types@^0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.5.1.tgz#091c09652894d6532db9ba873574443adabf85b9" - integrity sha512-my2cPw+DAb2qVnIuBcsRKGyS28uIc2vjFxa1NpRoJZe9gK0BWUBk7wzXnIzWy3HZ5Er11e/40MPTUesNfMYNVA== - dependencies: - apollo-engine-reporting-protobuf "^0.5.2" - apollo-server-caching "^0.5.2" - apollo-server-env "^2.4.5" - -apollo-server@^2.16.0: - version "2.16.1" - resolved "https://registry.npmjs.org/apollo-server/-/apollo-server-2.16.1.tgz#edc319606eb29f73132239bdc005dd88ac40a142" - integrity sha512-oy9NVRzGwlpQ+W1DwLKRH+KASmodSYpvYIRY5DMAZtGqNmT2zOCpbIZVjBt23SuPB5NhIhhE4ROzoObRv3zy5w== - dependencies: - apollo-server-core "^2.16.1" - apollo-server-express "^2.16.1" - express "^4.0.0" - graphql-subscriptions "^1.0.0" - graphql-tools "^4.0.0" - -apollo-tracing@^0.11.1: - version "0.11.1" - resolved "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.11.1.tgz#3e3a4ce4b21e57dcc57b10bbd539db243b752606" - integrity sha512-l7g+uILw7v32GA46IRXIx5XXbZhFI96BhSqrGK9yyvfq+NMcvVZrj3kIhRImPGhAjMdV+5biA/jztabElAbDjg== - dependencies: - apollo-server-env "^2.4.5" - apollo-server-plugin-base "^0.9.1" - -apollo-utilities@^1.0.1, apollo-utilities@^1.3.0: - version "1.3.4" - resolved "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf" - integrity sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig== - dependencies: - "@wry/equality" "^0.1.2" - fast-json-stable-stringify "^2.0.0" - ts-invariant "^0.4.0" - tslib "^1.10.0" - -app-root-dir@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz#38187ec2dea7577fff033ffcb12172692ff6e118" - integrity sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg= - -aproba@^1.0.3, aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -aproba@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== - -arch@^2.1.0, arch@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/arch/-/arch-2.1.2.tgz#0c52bbe7344bb4fa260c443d2cbad9c00ff2f0bf" - integrity sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ== - -archive-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70" - integrity sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA= - dependencies: - file-type "^4.2.0" - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.10, argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -aria-query@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" - integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w= - dependencies: - ast-types-flow "0.0.7" - commander "^2.11.0" - -aria-query@^4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" - integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== - dependencies: - "@babel/runtime" "^7.10.2" - "@babel/runtime-corejs3" "^7.10.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-differ@^2.0.3: - version "2.1.0" - resolved "https://registry.npmjs.org/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" - integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w== - -array-each@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" - integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= - -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= - -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" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-ify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= - -array-includes@^3.0.3, array-includes@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" - integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0" - is-string "^1.0.5" - -array-slice@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" - integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== - -array-union@^1.0.1, array-union@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" - integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -array.prototype.flatmap@^1.2.1: - version "1.2.3" - resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz#1c13f84a178566042dd63de4414440db9222e443" - integrity sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - -array.prototype.map@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz#9a4159f416458a23e9483078de1106b2ef68f8ec" - integrity sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.4" - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -asap@^2.0.0, asap@~2.0.3, asap@~2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.0, asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -ast-types-flow@0.0.7, ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= - -ast-types@0.11.3: - version "0.11.3" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.11.3.tgz#c20757fe72ee71278ea0ff3d87e5c2ca30d9edf8" - integrity sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA== - -ast-types@^0.13.2: - version "0.13.2" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz#df39b677a911a83f3a049644fb74fdded23cea48" - integrity sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA== - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async-retry@^1.2.1: - version "1.3.1" - resolved "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz#139f31f8ddce50c0870b0ba558a6079684aaed55" - integrity sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA== - dependencies: - retry "0.12.0" - -async@^2.6.1, async@^2.6.2: - version "2.6.3" - resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -async@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" - integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -atob-lite@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" - integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY= - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autolinker@^3.11.0: - version "3.14.1" - resolved "https://registry.npmjs.org/autolinker/-/autolinker-3.14.1.tgz#6ae4b812b6eaf42d4d68138b9e67757cbf2bc1e4" - integrity sha512-yvsRHIaY51EYDml6MGlbqyJGfl4n7zezGYf+R7gvM8c5LNpRGc4SISkvgAswSS8SWxk/OrGCylKV9mJyVstz7w== - dependencies: - tslib "^1.9.3" - -autolinker@~0.28.0: - version "0.28.1" - resolved "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47" - integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc= - dependencies: - gulp-header "^1.7.1" - -autoprefixer@^9.7.2, autoprefixer@^9.7.5: - version "9.8.6" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" - integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - colorette "^1.2.1" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.9.1" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" - integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== - -axios@^0.19.0, axios@^0.19.2: - version "0.19.2" - resolved "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" - integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== - dependencies: - follow-redirects "1.5.10" - -axobject-query@^2.0.2: - version "2.1.2" - resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-2.1.2.tgz#2bdffc0371e643e5f03ba99065d5179b9ca79799" - integrity sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ== - -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-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.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-26.0.1.tgz#450139ce4b6c17174b136425bda91885c397bc46" - integrity sha512-Z4GGmSNQ8pX3WS1O+6v3fo41YItJJZsVxG5gIQ+HuB/iuAQBJxMTHTwz292vuYws1LnHfwSRgoqI+nxdy/pcvw== - dependencies: - "@jest/transform" "^26.0.1" - "@jest/types" "^26.0.1" - "@types/babel__core" "^7.1.7" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - -babel-plugin-add-react-displayname@^0.0.5: - version "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-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" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-emotion@^10.0.20, 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== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@emotion/hash" "0.8.0" - "@emotion/memoize" "0.7.4" - "@emotion/serialize" "^0.11.16" - babel-plugin-macros "^2.0.0" - babel-plugin-syntax-jsx "^6.18.0" - convert-source-map "^1.5.0" - escape-string-regexp "^1.0.5" - find-root "^1.1.0" - source-map "^0.5.7" - -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" - integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^4.0.0" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.0.0.tgz#fd1d35f95cf8849fc65cb01b5e58aedd710b34a8" - integrity sha512-+AuoehOrjt9irZL7DOt2+4ZaTM6dlu1s5TTS46JBa0/qem4dy7VNW3tMb96qeEqcIh20LD73TVNtmVEeymTG7w== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.7.0: - version "2.8.0" - resolved "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" - integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== - dependencies: - "@babel/runtime" "^7.7.2" - 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== - 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-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-react-docgen@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.1.0.tgz#1dfa447dac9ca32d625a123df5733a9e47287c26" - integrity sha512-vzpnBlfGv8XOhJM2zbPyyqw2OLEbelgZZsaaRRTpVwNKuYuc+pUg4+dy7i9gCRms0uOQn4osX571HRcCJMJCmA== - dependencies: - lodash "^4.17.15" - react-docgen "^5.0.0" - recast "^0.14.7" - -babel-plugin-syntax-jsx@^6.18.0: - version "6.18.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= - -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@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz#fb4a4c51fe38ca60fede1dc74ab35eb843cb41d6" - integrity sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@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-preset-jest@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.0.0.tgz#1eac82f513ad36c4db2e9263d7c485c825b1faa6" - integrity sha512-9ce+DatAa31DpR4Uir8g4Ahxs5K4W4L8refzt+qHWQANb6LhGcAEfIFgLUwk67oya2cCUd6t4eUMtO/z64ocNw== - dependencies: - babel-plugin-jest-hoist "^26.0.0" - babel-preset-current-node-syntax "^0.1.2" - -"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" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -backo2@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - -bail@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" - integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-arraybuffer@^0.1.5: - version "0.1.5" - resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= - -base64-js@^1.0.2, base64-js@^1.2.0: - version "1.3.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -base64url@3.x.x: - version "3.0.1" - resolved "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" - integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -basic-auth@~2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" - integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== - dependencies: - safe-buffer "5.1.2" - -batch-processor@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz#75c95c32b748e0850d10c2b168f6bdbe9891ace8" - integrity sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg= - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - -bcrypt-pbkdf@^1.0.0, bcrypt-pbkdf@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -before-after-hook@^2.0.0, before-after-hook@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" - integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== - -bfj@^7.0.2: - version "7.0.2" - resolved "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz#1988ce76f3add9ac2913fd8ba47aad9e651bfbb2" - integrity sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw== - dependencies: - bluebird "^3.5.5" - check-types "^11.1.1" - hoopy "^0.1.4" - tryer "^1.0.1" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -bin-build@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz#c5780a25a8a9f966d8244217e6c1f5082a143861" - integrity sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA== - dependencies: - decompress "^4.0.0" - download "^6.2.2" - execa "^0.7.0" - p-map-series "^1.0.0" - tempfile "^2.0.0" - -bin-check@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz#fc495970bdc88bb1d5a35fc17e65c4a149fc4a49" - integrity sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA== - dependencies: - execa "^0.7.0" - executable "^4.1.0" - -bin-version-check@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz#7d819c62496991f80d893e6e02a3032361608f71" - integrity sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ== - dependencies: - bin-version "^3.0.0" - semver "^5.6.0" - semver-truncate "^1.1.2" - -bin-version@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz#5b09eb280752b1bd28f0c9db3f96f2f43b6c0839" - integrity sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ== - dependencies: - execa "^1.0.0" - find-versions "^3.0.0" - -bin-wrapper@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz#99348f2cf85031e3ef7efce7e5300aeaae960605" - integrity sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q== - dependencies: - bin-check "^4.1.0" - bin-version-check "^4.0.0" - download "^7.1.0" - import-lazy "^3.1.0" - os-filter-obj "^2.0.0" - pify "^4.0.1" - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bintrees@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz#0e655c9b9c2435eaab68bf4027226d2b55a34524" - integrity sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ= - -bl@^1.0.0: - version "1.2.2" - resolved "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" - integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== - dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" - -bl@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a" - integrity sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bluebird@3.7.2, bluebird@^3.3.5, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5, bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -body-parser@1.19.0, body-parser@^1.18.3, body-parser@^1.19.0: - version "1.19.0" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -body@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" - integrity sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk= - dependencies: - continuable-cache "^0.3.1" - error "^7.0.0" - raw-body "~1.1.0" - safe-json-parse "~1.0.1" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -bowser@^1.7.3: - version "1.9.4" - resolved "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz#890c58a2813a9d3243704334fa81b96a5c150c9a" - integrity sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ== - -boxen@^4.1.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== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^3.0.0" - cli-boxes "^2.2.0" - string-width "^4.1.0" - term-size "^2.1.0" - type-fest "^0.8.1" - widest-line "^3.1.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - 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.7.0: - version "4.7.0" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" - integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== - dependencies: - caniuse-lite "^1.0.30000989" - electron-to-chromium "^1.3.247" - node-releases "^1.1.29" - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.8.3: - version "4.13.0" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz#42556cba011e1b0a2775b611cba6a8eca18e940d" - integrity sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ== - dependencies: - caniuse-lite "^1.0.30001093" - electron-to-chromium "^1.3.488" - escalade "^3.0.1" - node-releases "^1.1.58" - -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -btoa-lite@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" - integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= - -btoa@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" - integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== - -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@1.x, buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-writer@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.1.tgz#22a936901e3029afcd7547eb4487ceb697a3bf08" - integrity sha1-Iqk2kB4wKa/NdUfrRIfOtpejvwg= - -buffer-writer@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" - integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: - version "5.6.0" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -builtin-modules@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" - integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -builtins@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= - -busboy@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b" - integrity sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw== - dependencies: - dicer "0.3.0" - -byline@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" - integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE= - -byte-size@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" - integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== - -bytes@1: - version "1.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" - integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: - version "12.0.3" - resolved "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" - integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cacache@^13.0.1: - version "13.0.1" - resolved "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" - integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== - dependencies: - chownr "^1.1.2" - figgy-pudding "^3.5.1" - fs-minipass "^2.0.0" - glob "^7.1.4" - graceful-fs "^4.2.2" - infer-owner "^1.0.4" - lru-cache "^5.1.1" - minipass "^3.0.0" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - p-map "^3.0.0" - promise-inflight "^1.0.1" - rimraf "^2.7.1" - ssri "^7.0.0" - unique-filename "^1.1.1" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cacheable-lookup@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz#87be64a18b925234875e10a9bb1ebca4adce6b38" - integrity sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg== - dependencies: - "@types/keyv" "^3.1.1" - keyv "^4.0.0" - -cacheable-lookup@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz#049fdc59dffdd4fc285e8f4f82936591bd59fec3" - integrity sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w== - -cacheable-request@^2.1.1: - version "2.1.4" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" - integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= - dependencies: - clone-response "1.0.2" - get-stream "3.0.0" - http-cache-semantics "3.8.1" - keyv "3.0.0" - lowercase-keys "1.0.0" - normalize-url "2.0.1" - responselike "1.0.2" - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -cacheable-request@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" - integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^2.0.0" - -cachedir@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" - integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== - -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camel-case@4.1.1, camel-case@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz#1fc41c854f00e2f7d0139dfeba1542d6896fe547" - integrity sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q== - dependencies: - pascal-case "^3.1.1" - tslib "^1.10.0" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" - integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= - dependencies: - camelcase "^4.1.0" - map-obj "^2.0.0" - quick-lru "^1.0.0" - -camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" - integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== - dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e" - integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== - -can-use-dom@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz#22cc4a34a0abc43950f42c6411024a3f6366b45a" - integrity sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo= - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001109: - version "1.0.30001113" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001113.tgz#22016ab55b5a8b04fa00ca342d9ee1b98df48065" - integrity sha512-qMvjHiKH21zzM/VDZr6oosO6Ri3U0V2tC015jRXjOecwQCJtsU5zklTNTk31jQbIOP8gha0h1ccM/g0ECP+4BA== - -canvas@^2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz#0d087dd4d60f5a5a9efa202757270abea8bef89e" - integrity sha512-S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA== - dependencies: - nan "^2.14.0" - node-pre-gyp "^0.11.0" - simple-get "^3.0.3" - -canvg@1.5.3: - version "1.5.3" - resolved "https://registry.npmjs.org/canvg/-/canvg-1.5.3.tgz#aad17915f33368bf8eb80b25d129e3ae922ddc5f" - integrity sha512-7Gn2IuQzvUQWPIuZuFHrzsTM0gkPz2RRT9OcbdmA03jeKk8kltrD8gqUzNX15ghY/4PV5bbe5lmD6yDLDY6Ybg== - dependencies: - jsdom "^8.1.0" - rgbcolor "^1.0.1" - stackblur-canvas "^1.4.1" - xmldom "^0.1.22" - -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - 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== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -caw@^2.0.0, caw@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95" - integrity sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA== - dependencies: - get-proxy "^2.0.0" - isurl "^1.0.0-alpha5" - tunnel-agent "^0.6.0" - url-to-options "^1.0.1" - -chalk@2.4.2, chalk@^2.0.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^1.0.0, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -character-entities-legacy@^1.0.0: - version "1.1.4" - resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" - integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== - -character-entities@^1.0.0: - version "1.2.4" - resolved "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" - integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== - -character-reference-invalid@^1.0.0: - version "1.1.4" - resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" - integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -check-more-types@2.24.0, check-more-types@^2.24.0: - version "2.24.0" - resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" - integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= - -check-types@^11.1.1: - version "11.1.2" - resolved "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f" - integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== - -cheerio@0.22.0: - version "0.22.0" - resolved "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" - integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= - dependencies: - css-select "~1.2.0" - dom-serializer "~0.1.0" - entities "~1.1.1" - htmlparser2 "^3.9.1" - lodash.assignin "^4.0.9" - lodash.bind "^4.1.4" - lodash.defaults "^4.0.1" - lodash.filter "^4.4.0" - lodash.flatten "^4.2.0" - lodash.foreach "^4.3.0" - lodash.map "^4.4.0" - lodash.merge "^4.4.0" - lodash.pick "^4.2.1" - lodash.reduce "^4.4.0" - lodash.reject "^4.4.0" - lodash.some "^4.4.0" - -chokidar@^2.0.4, chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.2.2, chokidar@^3.3.0, chokidar@^3.3.1: - version "3.4.1" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1" - integrity sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.4.0" - optionalDependencies: - fsevents "~2.1.2" - -chownr@^1.0.1, chownr@^1.1.1, chownr@^1.1.2: - version "1.1.4" - resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -circleci-api@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/circleci-api/-/circleci-api-4.0.0.tgz#d773fe68f4a59e1968881269883a23b0805b3546" - integrity sha512-D/THFyhOv6THSkYXJhrOLIOmV7fmyDqgs1+pBFMAqDR+ywXszxa2Dqx1Zw+YD3O2zD2y5LQOifCDT96VidRG7Q== - dependencies: - axios "^0.19.0" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -classnames@^2.2.5, classnames@^2.2.6: - version "2.2.6" - resolved "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" - integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== - -clean-css@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" - integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== - dependencies: - source-map "~0.6.0" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-boxes@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" - integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== - -cli-cursor@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" - integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= - dependencies: - restore-cursor "^1.0.1" - -cli-cursor@^2.0.0, cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-spinners@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77" - integrity sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ== - -cli-table3@0.5.1, cli-table3@~0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" - integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== - dependencies: - object-assign "^4.1.0" - string-width "^2.1.1" - optionalDependencies: - colors "^1.1.2" - -cli-truncate@2.1.0, cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - -cli-truncate@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" - integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ= - dependencies: - 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" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - -clipboard@^2.0.0: - version "2.0.6" - resolved "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" - integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg== - dependencies: - good-listener "^1.2.2" - select "^1.1.2" - tiny-emitter "^2.0.0" - -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= - dependencies: - string-width "^1.0.1" - 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" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -clone-deep@^0.2.4: - version "0.2.4" - resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" - integrity sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY= - dependencies: - for-own "^0.1.3" - is-plain-object "^2.0.1" - kind-of "^3.0.2" - lazy-cache "^1.0.3" - shallow-clone "^0.1.2" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -clone-response@1.0.2, clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - -clsx@^1.0.1, clsx@^1.0.2, clsx@^1.0.4, clsx@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" - integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -code-error-fragment@0.0.230: - version "0.0.230" - resolved "https://registry.npmjs.org/code-error-fragment/-/code-error-fragment-0.0.230.tgz#d736d75c832445342eca1d1fedbf17d9618b14d7" - integrity sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw== - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -codemirror-graphql@^0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/codemirror-graphql/-/codemirror-graphql-0.12.0.tgz#55f782ffaaea7ff8dbda037e6b97b584dff2402a" - integrity sha512-C/0vKzQT5Uw+DLz6/MwKer29FQM52sh9Bem+VdDW42094j8nES1sdnuqj4k5ahNdQpW4FmVeoj/ngn2g3AWmgg== - dependencies: - graphql-language-service-interface "^2.4.0" - graphql-language-service-parser "^1.6.0" - -codemirror@^5.52.2: - version "5.53.2" - resolved "https://registry.npmjs.org/codemirror/-/codemirror-5.53.2.tgz#9799121cf8c50809cca487304e9de3a74d33f428" - integrity sha512-wvSQKS4E+P8Fxn/AQ+tQtJnF1qH5UOlxtugFLpubEZ5jcdH2iXTVinb+Xc/4QjshuOxRm4fUsU2QPF1JJKiyXA== - -coffee-script@^1.12.4: - version "1.12.7" - resolved "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz#c05dae0cb79591d05b3070a8433a98c9a89ccc53" - integrity sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw== - -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" - integrity sha512-VKIhJgvk8E1W28m5avZ2Gv2Ruv5YiF56ug2oclvaG9md69BuZImMG2sk9g7QNKLUbtYAKQjXjYxbYZVUlMMKmQ== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.1: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.5.2: - version "1.5.3" - resolved "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" - integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@3.0.x: - version "3.0.0" - resolved "https://registry.npmjs.org/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a" - integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.2" - -color@^3.0.0, color@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" - integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.2" - -colorette@1.2.1, colorette@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" - integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== - -colornames@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96" - integrity sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y= - -colors@^1.1.2, colors@^1.2.1: - version "1.4.0" - resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -colorspace@1.1.x: - version "1.1.2" - resolved "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz#e0128950d082b86a2168580796a0aa5d6c68d8c5" - integrity sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ== - dependencies: - color "3.0.x" - text-hex "1.0.x" - -columnify@^1.5.4: - version "1.5.4" - resolved "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" - integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs= - dependencies: - strip-ansi "^3.0.0" - wcwidth "^1.0.0" - -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -comma-separated-tokens@^1.0.0: - version "1.0.8" - resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" - integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== - -command-exists-promise@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/command-exists-promise/-/command-exists-promise-2.0.2.tgz#7beecc4b218299f3c61fa69a4047aa0b36a64a99" - integrity sha512-T6PB6vdFrwnHXg/I0kivM3DqaCGZLjjYSOe0a5WgFKcz1sOnmOeIjnhQPXVXX3QjVbLyTJ85lJkX6lUpukTzaA== - -commander@^2.11.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3, commander@^2.8.1, commander@~2.20.3: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^4.0.0, commander@^4.0.1, commander@^4.1.1: - version "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: - version "5.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - -common-tags@^1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" - integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -compare-func@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" - integrity sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg= - dependencies: - array-ify "^1.0.0" - dot-prop "^3.0.0" - -compare-versions@^3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== - -component-emitter@^1.2.0, component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -compute-gcd@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.0.tgz#fc1ede5b65001e950226502f46543863e4fea10e" - integrity sha1-/B7eW2UAHpUCJlAvRlQ4Y+T+oQ4= - dependencies: - validate.io-array "^1.0.3" - validate.io-function "^1.0.2" - validate.io-integer-array "^1.0.0" - -compute-lcm@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.0.tgz#abd96d040b41b0a166f89944b5c8b7c511e21ad5" - integrity sha1-q9ltBAtBsKFm+JlEtci3xRHiGtU= - dependencies: - compute-gcd "^1.2.0" - validate.io-array "^1.0.3" - validate.io-function "^1.0.2" - validate.io-integer-array "^1.0.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.2: - version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -concat-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" - integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.0.2" - typedarray "^0.0.6" - -concat-with-sourcemaps@*, concat-with-sourcemaps@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" - integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== - dependencies: - source-map "^0.6.1" - -concurrently@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/concurrently/-/concurrently-5.3.0.tgz#7500de6410d043c912b2da27de3202cb489b1e7b" - integrity sha512-8MhqOB6PWlBfA2vJ8a0bSFKATOdWlHiQlk11IfmQBPaHVP8oP2gsh2MObE6UR3hqDHqvaIvLTyceNW6obVuFHQ== - dependencies: - chalk "^2.4.2" - date-fns "^2.0.1" - lodash "^4.17.15" - read-pkg "^4.0.1" - rxjs "^6.5.2" - spawn-command "^0.0.2-1" - supports-color "^6.1.0" - tree-kill "^1.2.2" - yargs "^13.3.0" - -config-chain@^1.1.11: - version "1.1.12" - resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -console-stream@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44" - integrity sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ= - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -constate@^1.2.0: - version "1.3.2" - resolved "https://registry.npmjs.org/constate/-/constate-1.3.2.tgz#fa5f0fc292207f1ec21b46a5eb81f59c8b0a8b84" - integrity sha512-aaILV4vXwGTUZaQZHS5F1xBV8wRCR0Ow1505fdkS5/BPg6hbQrhNqdHL4wgxWgaDeEj43mu/Fb+LhqOKTMcrgQ== - -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= - -content-disposition@0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" - integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= - -content-disposition@0.5.3, content-disposition@^0.5.2: - version "0.5.3" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -continuable-cache@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" - integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8= - -conventional-changelog-angular@^5.0.3: - version "5.0.6" - resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.6.tgz#269540c624553aded809c29a3508fdc2b544c059" - integrity sha512-QDEmLa+7qdhVIv8sFZfVxU1VSyVvnXPsxq8Vam49mKUcO1Z8VTLEJk9uI21uiJUsnmm0I4Hrsdc9TgkOQo9WSA== - dependencies: - compare-func "^1.3.1" - q "^1.5.1" - -conventional-changelog-core@^3.1.6: - version "3.2.3" - resolved "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz#b31410856f431c847086a7dcb4d2ca184a7d88fb" - integrity sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ== - dependencies: - conventional-changelog-writer "^4.0.6" - conventional-commits-parser "^3.0.3" - dateformat "^3.0.0" - get-pkg-repo "^1.0.0" - git-raw-commits "2.0.0" - git-remote-origin-url "^2.0.0" - git-semver-tags "^2.0.3" - lodash "^4.2.1" - normalize-package-data "^2.3.5" - q "^1.5.1" - read-pkg "^3.0.0" - read-pkg-up "^3.0.0" - through2 "^3.0.0" - -conventional-changelog-preset-loader@^2.1.1: - version "2.3.0" - resolved "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.0.tgz#580fa8ab02cef22c24294d25e52d7ccd247a9a6a" - integrity sha512-/rHb32J2EJnEXeK4NpDgMaAVTFZS3o1ExmjKMtYVgIC4MQn0vkNSbYpdGRotkfGGRWiqk3Ri3FBkiZGbAfIfOQ== - -conventional-changelog-writer@^4.0.6: - version "4.0.11" - resolved "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.11.tgz#9f56d2122d20c96eb48baae0bf1deffaed1edba4" - integrity sha512-g81GQOR392I+57Cw3IyP1f+f42ME6aEkbR+L7v1FBBWolB0xkjKTeCWVguzRrp6UiT1O6gBpJbEy2eq7AnV1rw== - dependencies: - compare-func "^1.3.1" - conventional-commits-filter "^2.0.2" - dateformat "^3.0.0" - handlebars "^4.4.0" - json-stringify-safe "^5.0.1" - lodash "^4.17.15" - meow "^5.0.0" - semver "^6.0.0" - split "^1.0.0" - through2 "^3.0.0" - -conventional-commits-filter@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz#f122f89fbcd5bb81e2af2fcac0254d062d1039c1" - integrity sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ== - dependencies: - lodash.ismatch "^4.4.0" - modify-values "^1.0.0" - -conventional-commits-parser@^3.0.3: - version "3.0.8" - resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.8.tgz#23310a9bda6c93c874224375e72b09fb275fe710" - integrity sha512-YcBSGkZbYp7d+Cr3NWUeXbPDFUN6g3SaSIzOybi8bjHL5IJ5225OSCxJJ4LgziyEJ7AaJtE9L2/EU6H7Nt/DDQ== - dependencies: - JSONStream "^1.0.4" - is-text-path "^1.0.1" - lodash "^4.17.15" - meow "^5.0.0" - split2 "^2.0.0" - through2 "^3.0.0" - trim-off-newlines "^1.0.0" - -conventional-recommended-bump@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-5.0.1.tgz#5af63903947b6e089e77767601cb592cabb106ba" - integrity sha512-RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ== - dependencies: - concat-stream "^2.0.0" - conventional-changelog-preset-loader "^2.1.1" - conventional-commits-filter "^2.0.2" - conventional-commits-parser "^3.0.3" - git-raw-commits "2.0.0" - git-semver-tags "^2.0.3" - meow "^4.0.0" - q "^1.5.1" - -convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cookie-parser@^1.4.5: - version "1.4.5" - resolved "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz#3e572d4b7c0c80f9c61daf604e4336831b5d1d49" - integrity sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw== - dependencies: - cookie "0.4.0" - cookie-signature "1.0.6" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -cookie@^0.4.1, cookie@~0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== - -cookiejar@^2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" - integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - 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: - 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.6.2: - version "3.6.4" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17" - integrity sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA== - dependencies: - browserslist "^4.8.3" - semver "7.0.0" - -core-js-pure@^3.0.0, core-js-pure@^3.0.1: - version "3.6.4" - resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.4.tgz#4bf1ba866e25814f149d4e9aaa08c36173506e3a" - integrity sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw== - -core-js@^2.4.0, core-js@^2.5.7, core-js@^2.6.11, core-js@^2.6.5: - version "2.6.11" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== - -core-js@^3.0.1, core-js@^3.0.4, core-js@^3.5.0, core-js@^3.6.5: - version "3.6.5" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -corejs-upgrade-webpack-plugin@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/corejs-upgrade-webpack-plugin/-/corejs-upgrade-webpack-plugin-2.2.0.tgz#503293bf1fdcb104918eb40d0294e4776ad6923a" - integrity sha512-J0QMp9GNoiw91Kj/dkIQFZeiCXgXoja/Wlht1SPybxerBWh4NCmb0pOgCv61lrlQZETwvVVfAFAA3IqoEO9aqQ== - dependencies: - resolve-from "^5.0.0" - webpack "^4.38.0" - -cors@^2.8.4, cors@^2.8.5: - version "2.8.5" - resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - -cosmiconfig@6.0.0, cosmiconfig@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.7.2" - -cosmiconfig@^5.0.0, cosmiconfig@^5.1.0, cosmiconfig@^5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.2.0" - resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.7" - resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -create-react-context@0.3.0, create-react-context@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c" - integrity sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw== - dependencies: - gud "^1.0.0" - warning "^4.0.3" - -cross-env@^7.0.0: - version "7.0.2" - resolved "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz#bd5ed31339a93a3418ac4f3ca9ca3403082ae5f9" - integrity sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw== - dependencies: - cross-spawn "^7.0.1" - -cross-fetch@3.0.5, cross-fetch@^3.0.4, cross-fetch@^3.0.5: - version "3.0.5" - resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.5.tgz#2739d2981892e7ab488a7ad03b92df2816e03f4c" - integrity sha512-FFLcLtraisj5eteosnX1gf01qYDCOc4fDy0+euOt8Kn9YBY2NtXL/pCoYPavw24NIQkQqm5ZOLsGD5Zzj0gyew== - dependencies: - node-fetch "2.6.0" - -cross-spawn@6.0.5, cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@7.0.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@^5.0.1: - version "5.1.0" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crowdin-cli@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/crowdin-cli/-/crowdin-cli-0.3.0.tgz#eac9989a6fe7feaaf33090397afc187c67b46191" - integrity sha1-6smYmm/n/qrzMJA5evwYfGe0YZE= - dependencies: - request "^2.53.0" - yamljs "^0.2.1" - yargs "^2.3.0" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - -css-box-model@^1.2.0: - version "1.2.1" - resolved "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz#59951d3b81fd6b2074a62d49444415b0d2b4d7c1" - integrity sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw== - dependencies: - tiny-invariant "^1.0.6" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-in-js-utils@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz#3b472b398787291b47cfe3e44fecfdd9e914ba99" - integrity sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA== - dependencies: - hyphenate-style-name "^1.0.2" - isobject "^3.0.1" - -css-line-break@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/css-line-break/-/css-line-break-1.0.1.tgz#19f2063a33e95fb2831b86446c0b80c188af450a" - integrity sha1-GfIGOjPpX7KDG4ZEbAuAwYivRQo= - dependencies: - base64-arraybuffer "^0.1.5" - -css-loader@^3.0.0, css-loader@^3.5.3: - version "3.6.0" - resolved "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" - integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== - dependencies: - camelcase "^5.3.1" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^2.7.0" - semver "^6.3.0" - -css-modules-loader-core@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz#5908668294a1becd261ae0a4ce21b0b551f21d16" - integrity sha1-WQhmgpShvs0mGuCkziGwtVHyHRY= - dependencies: - icss-replace-symbols "1.1.0" - postcss "6.0.1" - postcss-modules-extract-imports "1.1.0" - postcss-modules-local-by-default "1.2.0" - postcss-modules-scope "1.1.0" - postcss-modules-values "1.3.0" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^1.1.0, css-select@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-selector-tokenizer@^0.7.0: - version "0.7.2" - resolved "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz#11e5e27c9a48d90284f22d45061c303d7a25ad87" - integrity sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw== - dependencies: - cssesc "^3.0.0" - fastparse "^1.1.2" - regexpu-core "^4.6.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" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.0.0-alpha.28: - version "1.0.0-alpha.39" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" - integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== - dependencies: - mdn-data "2.0.6" - source-map "^0.6.1" - -css-vendor@^2.0.7: - version "2.0.7" - resolved "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.7.tgz#4e6d53d953c187981576d6a542acc9fb57174bda" - integrity sha512-VS9Rjt79+p7M0WkPqcAza4Yq1ZHrsHrwf7hPL/bjQB+c1lwmAI+1FXxYTYt818D/50fFVflw0XKleiBN5RITkg== - dependencies: - "@babel/runtime" "^7.6.2" - is-in-browser "^1.0.2" - -css-what@2.1: - version "2.1.3" - resolved "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== - -css-what@^3.2.1: - version "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.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" - integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= - -css@^2.2.4: - version "2.2.4" - resolved "https://registry.npmjs.org/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" - integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== - dependencies: - inherits "^2.0.3" - source-map "^0.6.1" - source-map-resolve "^0.5.2" - urix "^0.1.0" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssfilter@0.0.10: - version "0.0.10" - resolved "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" - integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= - -cssnano-preset-default@^4.0.7: - version "4.0.7" - resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" - integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.2" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10: - version "4.1.10" - resolved "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" - integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.7" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/csso/-/csso-4.0.2.tgz#e5f81ab3a56b8eefb7f0092ce7279329f454de3d" - integrity sha512-kS7/oeNVXkHWxby5tHVxlhjizRCSv8QdU7hB2FpdAibDU8FjTAolhNjKNTiLzXtUrKT6HwClE81yXwEk1309wg== - dependencies: - css-tree "1.0.0-alpha.37" - -cssom@0.3.x, "cssom@>= 0.3.0 < 0.4.0", "cssom@>= 0.3.2 < 0.4.0", cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -"cssstyle@>= 0.2.34 < 0.3.0": - version "0.2.37" - resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" - integrity sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ= - dependencies: - cssom "0.3.x" - -cssstyle@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" - integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== - dependencies: - cssom "0.3.x" - -cssstyle@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -csstype@^2.2.0, csstype@^2.5.2, csstype@^2.5.5, csstype@^2.5.7, csstype@^2.6.5, csstype@^2.6.7: - version "2.6.9" - resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098" - integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q== - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= - dependencies: - array-find-index "^1.0.1" - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - -cypress@*, cypress@^4.2.0: - version "4.12.1" - resolved "https://registry.npmjs.org/cypress/-/cypress-4.12.1.tgz#0ead1b9f4c0917d69d8b57f996b6e01fe693b6ec" - integrity sha512-9SGIPEmqU8vuRA6xst2CMTYd9sCFCxKSzrHt0wr+w2iAQMCIIsXsQ5Gplns1sT6LDbZcmLv6uehabAOl3fhc9Q== - dependencies: - "@cypress/listr-verbose-renderer" "^0.4.1" - "@cypress/request" "^2.88.5" - "@cypress/xvfb" "^1.2.4" - "@types/sinonjs__fake-timers" "^6.0.1" - "@types/sizzle" "^2.3.2" - arch "^2.1.2" - bluebird "^3.7.2" - cachedir "^2.3.0" - chalk "^2.4.2" - check-more-types "^2.24.0" - cli-table3 "~0.5.1" - commander "^4.1.1" - common-tags "^1.8.0" - debug "^4.1.1" - eventemitter2 "^6.4.2" - execa "^1.0.0" - executable "^4.1.1" - extract-zip "^1.7.0" - fs-extra "^8.1.0" - getos "^3.2.1" - is-ci "^2.0.0" - is-installed-globally "^0.3.2" - lazy-ass "^1.6.0" - listr "^0.14.3" - lodash "^4.17.19" - log-symbols "^3.0.0" - minimist "^1.2.5" - moment "^2.27.0" - ospath "^1.2.2" - pretty-bytes "^5.3.0" - ramda "~0.26.1" - request-progress "^3.0.0" - supports-color "^7.1.0" - tmp "~0.1.0" - untildify "^4.0.0" - url "^0.11.0" - yauzl "^2.10.0" - -d3-dispatch@1: - version "1.0.6" - resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" - integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== - -d3-force@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/d3-force/-/d3-force-2.0.1.tgz#31750eee8c43535301d571195bf9683beda534e2" - integrity sha512-zh73/N6+MElRojiUG7vmn+3vltaKon7iD5vB/7r9nUaBeftXMzRo5IWEG63DLBCto4/8vr9i3m9lwr1OTJNiCg== - dependencies: - d3-dispatch "1" - d3-quadtree "1" - d3-timer "1" - -d3-quadtree@1: - version "1.0.7" - resolved "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz#ca8b84df7bb53763fe3c2f24bd435137f4e53135" - integrity sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA== - -d3-timer@1: - version "1.0.10" - resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" - integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -damerau-levenshtein@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" - integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== - -dargs@^4.0.1: - version "4.1.0" - resolved "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" - integrity sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc= - dependencies: - number-is-nan "^1.0.0" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -dashify@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/dashify/-/dashify-2.0.0.tgz#fff270ca2868ca427fee571de35691d6e437a648" - integrity sha512-hpA5C/YrPjucXypHPPc0oJ1l9Hf6wWbiOL7Ik42cxnsUOhWiCB/fylKbKqqJalW9FgkNQCw16YO8uW9Hs0Iy1A== - -data-urls@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" - integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== - dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -date-fns@^1.27.2: - version "1.30.1" - resolved "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" - integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== - -date-fns@^2.0.0-alpha.27, date-fns@^2.0.1, date-fns@^2.15.0: - version "2.15.0" - resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.15.0.tgz#424de6b3778e4e69d3ff27046ec136af58ae5d5f" - integrity sha512-ZCPzAMJZn3rNUvvQIMlXhDr4A+Ar07eLeGsGREoWU19a3Pqf5oYa+ccd+B3F6XVtQY6HANMFdOQ8A+ipFnvJdQ== - -dateformat@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" - integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== - -debounce@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131" - integrity sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg== - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@3.1.0, debug@=3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" - integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== - dependencies: - ms "^2.1.1" - -debug@4.1.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: - version "3.2.6" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debuglog@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= - -decamelize-keys@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decimal.js@^10.2.0: - version "10.2.0" - resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz#39466113a9e036111d02f82489b5fd6b0b5ed231" - integrity sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw== - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.2.0, decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -decompress-response@^4.2.0: - version "4.2.1" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" - integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== - dependencies: - mimic-response "^2.0.0" - -decompress-response@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz#7849396e80e3d1eba8cb2f75ef4930f76461cb0f" - integrity sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw== - dependencies: - mimic-response "^2.0.0" - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" - integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== - dependencies: - file-type "^5.2.0" - is-stream "^1.1.0" - tar-stream "^1.5.2" - -decompress-tarbz2@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" - integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== - dependencies: - decompress-tar "^4.1.0" - file-type "^6.1.0" - is-stream "^1.1.0" - seek-bzip "^1.0.5" - unbzip2-stream "^1.0.9" - -decompress-targz@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" - integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== - dependencies: - decompress-tar "^4.1.1" - file-type "^5.2.0" - is-stream "^1.1.0" - -decompress-unzip@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" - integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k= - dependencies: - file-type "^3.8.0" - get-stream "^2.2.0" - pify "^2.3.0" - yauzl "^2.4.2" - -decompress@^4.0.0, decompress@^4.2.0: - version "4.2.1" - resolved "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" - integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== - dependencies: - decompress-tar "^4.0.0" - decompress-tarbz2 "^4.0.0" - decompress-targz "^4.0.0" - decompress-unzip "^4.0.1" - graceful-fs "^4.1.10" - make-dir "^1.0.0" - pify "^2.3.0" - strip-dirs "^2.0.0" - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= - -deep-equal@^1.0.1, deep-equal@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-extend@0.6.0, deep-extend@^0.6.0, deep-extend@~0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-freeze@^0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" - integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ= - -deep-is@^0.1.3, deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -deep-object-diff@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.0.tgz#d6fabf476c2ed1751fc94d5ca693d2ed8c18bc5a" - integrity sha512-b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw== - -deepmerge@^4.2.2: - version "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== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= - dependencies: - clone "^1.0.2" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -defer-to-connect@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" - integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== - -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" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - 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@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7" - integrity sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA== - dependencies: - globby "^10.0.1" - graceful-fs "^4.2.2" - is-glob "^4.0.1" - is-path-cwd "^2.2.0" - is-path-inside "^3.0.1" - p-map "^3.0.0" - rimraf "^3.0.0" - slash "^3.0.0" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delegate@^3.1.2: - version "3.2.0" - resolved "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" - integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -depd@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -deprecated-decorator@^0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" - integrity sha1-AJZjF7ehL+kvPMgx91g68ym4bDc= - -deprecation@^2.0.0, deprecation@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" - integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - -detect-indent@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" - integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - -detect-port-alt@1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" - integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== - dependencies: - address "^1.0.1" - debug "^2.6.0" - -detect-port@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" - integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== - dependencies: - address "^1.0.1" - debug "^2.6.0" - -dezalgo@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" - integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= - dependencies: - asap "^2.0.0" - wrappy "1" - -diacritics-map@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz#6dfc0ff9d01000a2edf2865371cac316e94977af" - integrity sha1-bfwP+dAQAKLt8oZTccrDFulJd68= - -diagnostics@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a" - integrity sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ== - dependencies: - colorspace "1.1.x" - enabled "1.0.x" - kuler "1.0.x" - -dicer@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872" - integrity sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA== - dependencies: - streamsearch "0.1.2" - -diff-sequences@^25.2.6: - version "25.2.6" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" - integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== - -diff-sequences@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.0.0.tgz#0760059a5c287637b842bd7085311db7060e88a6" - integrity sha512-JC/eHYEC3aSS0vZGjuoc4vHA0yAQTzhQQldXMeMF+JlxLGJlCO38Gma82NV9gk1jGFz8mDzUMeaKXvjRRdJ2dg== - -diff@^4.0.1, diff@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.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" - integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== - dependencies: - path-type "^3.0.0" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= - dependencies: - buffer-indexof "^1.0.0" - -docker-modem@^2.1.0: - version "2.1.3" - resolved "https://registry.npmjs.org/docker-modem/-/docker-modem-2.1.3.tgz#15432225f63db02eb5de4bb9a621b7293e5f264d" - integrity sha512-cwaRptBmYZwu/FyhGcqBm2MzXA77W2/E6eVkpOZVDk6PkI9Bjj84xPrXiHMA+OWjzNy+DFjgKh8Q+1hMR7/OHg== - dependencies: - debug "^4.1.1" - readable-stream "^3.5.0" - split-ca "^1.0.1" - ssh2 "^0.8.7" - -dockerode@^3.2.0, dockerode@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/dockerode/-/dockerode-3.2.1.tgz#4a2222e3e1df536bf595e78e76d3cfbf6d4d93b9" - integrity sha512-XsSVB5Wu5HWMg1aelV5hFSqFJaKS5x1aiV/+sT7YOzOq1IRl49I/UwV8Pe4x6t0iF9kiGkWu5jwfvbkcFVupBw== - dependencies: - docker-modem "^2.1.0" - tar-fs "~2.0.1" - -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -docusaurus@^2.0.0-alpha.61: - version "2.0.0-alpha.61" - resolved "https://registry.npmjs.org/docusaurus/-/docusaurus-2.0.0-alpha.61.tgz#f347b81c98c66f1de3ecfccf63fa421ddff52fbb" - integrity sha512-qDU3nOA4Xs95tIjjSETnEuRmTukTzgxyTZ5MgMyuG7y6h4oDHtpLcYf8F+xlXuuWHKv3VSxRJNzV8fZHPgnK3g== - dependencies: - "@babel/core" "^7.9.0" - "@babel/plugin-proposal-class-properties" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.9.0" - "@babel/polyfill" "^7.8.7" - "@babel/preset-env" "^7.9.0" - "@babel/preset-react" "^7.9.4" - "@babel/register" "^7.9.0" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - autoprefixer "^9.7.5" - babylon "^6.18.0" - chalk "^3.0.0" - classnames "^2.2.6" - commander "^4.0.1" - crowdin-cli "^0.3.0" - cssnano "^4.1.10" - escape-string-regexp "^2.0.0" - express "^4.17.1" - feed "^4.0.0" - fs-extra "^8.1.0" - gaze "^1.1.3" - github-slugger "^1.2.1" - glob "^7.1.6" - highlight.js "^9.16.2" - imagemin "^6.0.0" - imagemin-gifsicle "^6.0.1" - imagemin-jpegtran "^6.0.0" - imagemin-optipng "^6.0.0" - imagemin-svgo "^7.0.0" - lodash "^4.17.15" - markdown-toc "^1.2.0" - mkdirp "^0.5.1" - portfinder "^1.0.25" - postcss "^7.0.23" - prismjs "^1.17.1" - react "^16.8.4" - react-dev-utils "^9.1.0" - react-dom "^16.8.4" - remarkable "^2.0.0" - request "^2.88.0" - shelljs "^0.8.4" - sitemap "^3.2.2" - tcp-port-used "^1.0.1" - tiny-lr "^1.1.1" - tree-node-cli "^1.2.5" - truncate-html "^1.0.3" - -dom-accessibility-api@^0.4.5: - version "0.4.5" - resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.4.5.tgz#d9c1cefa89f509d8cf132ab5d250004d755e76e3" - integrity sha512-HcPDilI95nKztbVikaN2vzwvmv0sE8Y2ZJFODy/m15n7mGXLeOKGiys9qWVbFbh+aq/KYj2lqMLybBOkYAEXqg== - -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== - dependencies: - utila "~0.4" - -dom-helpers@^5.0.0, dom-helpers@^5.0.1: - version "5.1.4" - resolved "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.4.tgz#4609680ab5c79a45f2531441f1949b79d6587f4b" - integrity sha512-TjMyeVUvNEnOnhzs6uAn9Ya47GmMo3qq7m+Lr/3ON0Rs5kHvb8I+SQYjLUSYn7qhEm0QjW0yrBkvz9yOrwwz1A== - dependencies: - "@babel/runtime" "^7.8.7" - csstype "^2.6.7" - -dom-serializer@0, dom-serializer@^0.2.1: - version "0.2.2" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@~0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" - integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== - dependencies: - domelementtype "^1.3.0" - entities "^1.1.1" - -dom-walk@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" - integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg= - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== - -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== - dependencies: - webidl-conversions "^4.0.2" - -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== - dependencies: - domelementtype "1" - -domhandler@^3.0, domhandler@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-3.0.0.tgz#51cd13efca31da95bbb0c5bee3a48300e333b3e9" - integrity sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw== - dependencies: - domelementtype "^2.0.1" - -dompurify@^1.0.11: - version "1.0.11" - resolved "https://registry.npmjs.org/dompurify/-/dompurify-1.0.11.tgz#fe0f4a40d147f7cebbe31a50a1357539cfc1eb4d" - integrity sha512-XywCTXZtc/qCX3iprD1pIklRVk/uhl8BKpkTxr+ZyMVUzSUg7wkQXRBp/euJ5J5moa1QvfpvaPQVP71z1O59dQ== - -dompurify@^2.0.7: - version "2.0.12" - resolved "https://registry.npmjs.org/dompurify/-/dompurify-2.0.12.tgz#284a2b041e1c60b8e72d7b4d2fadad36141254ae" - integrity sha512-Fl8KseK1imyhErHypFPA8qpq9gPzlsJ/EukA6yk9o0gX23p1TzC+rh9LqNg1qvErRTc0UNMYlKxEGSfSh43NDg== - -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^1.5.1, domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-2.0.0.tgz#15b8278e37bfa8468d157478c58c367718133c08" - integrity sha512-n5SelJ1axbO636c2yUtOGia/IcJtVtlhQbFiVDBZHKV5ReJO1ViX7sFEemtuyoAnBxk5meNSYgA8V4s0271efg== - dependencies: - dom-serializer "^0.2.1" - domelementtype "^2.0.1" - domhandler "^3.0.0" - -dot-case@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz#21d3b52efaaba2ea5fda875bb1aa8124521cf4aa" - integrity sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA== - dependencies: - no-case "^3.0.3" - tslib "^1.10.0" - -dot-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" - integrity sha1-G3CK8JSknJoOfbyteQq6U52sEXc= - dependencies: - is-obj "^1.0.0" - -dot-prop@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== - dependencies: - is-obj "^1.0.0" - -dot-prop@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" - integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== - dependencies: - is-obj "^2.0.0" - -dotenv-defaults@^1.0.2: - version "1.1.1" - resolved "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-1.1.1.tgz#032c024f4b5906d9990eb06d722dc74cc60ec1bd" - integrity sha512-6fPRo9o/3MxKvmRZBD3oNFdxODdhJtIy1zcJeUSCs6HCy4tarUpd+G67UTU9tF6OWXeSPqsm4fPAB+2eY9Rt9Q== - dependencies: - dotenv "^6.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== - dependencies: - dotenv-defaults "^1.0.2" - -dotenv@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" - integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w== - -dotenv@^8.0.0: - version "8.2.0" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== - -download@^6.2.2: - version "6.2.5" - resolved "https://registry.npmjs.org/download/-/download-6.2.5.tgz#acd6a542e4cd0bb42ca70cfc98c9e43b07039714" - integrity sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA== - dependencies: - caw "^2.0.0" - content-disposition "^0.5.2" - decompress "^4.0.0" - ext-name "^5.0.0" - file-type "5.2.0" - filenamify "^2.0.0" - get-stream "^3.0.0" - got "^7.0.0" - make-dir "^1.0.0" - p-event "^1.0.0" - pify "^3.0.0" - -download@^7.1.0: - version "7.1.0" - resolved "https://registry.npmjs.org/download/-/download-7.1.0.tgz#9059aa9d70b503ee76a132897be6dec8e5587233" - integrity sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ== - dependencies: - archive-type "^4.0.0" - caw "^2.0.1" - content-disposition "^0.5.2" - decompress "^4.2.0" - ext-name "^5.0.0" - file-type "^8.1.0" - filenamify "^2.0.0" - get-stream "^3.0.0" - got "^8.3.1" - make-dir "^1.2.0" - p-event "^2.1.0" - pify "^3.0.0" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -duplexer@^0.1.1, duplexer@~0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -ejs@^2.7.4: - version "2.7.4" - resolved "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" - integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== - -electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.488: - version "1.3.509" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.509.tgz#830fcb89cd66dc2984d18d794973b99e3f00584c" - integrity sha512-cN4lkjNRuTG8rtAqTOVgwpecEC2kbKA04PG6YijcKGHK/kD0xLjiqExcAOmLUwtXZRF8cBeam2I0VZcih919Ug== - -elegant-spinner@^1.0.1: - version "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" - -elliptic@^6.0.0: - version "6.5.3" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emitter-component@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/emitter-component/-/emitter-component-1.1.1.tgz#065e2dbed6959bf470679edabeaf7981d1003ab6" - integrity sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY= - -"emoji-regex@>=6.0.0 <=6.1.1": - version "6.1.1" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" - integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= - -emoji-regex@^7.0.1, emoji-regex@^7.0.2: - version "7.0.3" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -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: - 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== - dependencies: - "@babel/runtime" "^7.5.5" - "@emotion/weak-memoize" "0.2.5" - hoist-non-react-statics "^3.3.0" - -enabled@1.0.x: - version "1.0.2" - resolved "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93" - integrity sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M= - dependencies: - env-variable "0.0.x" - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= - dependencies: - iconv-lite "~0.4.13" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" - integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -enquirer@^2.3.5: - version "2.3.5" - resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.5.tgz#3ab2b838df0a9d8ab9e7dff235b0e8712ef92381" - integrity sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA== - dependencies: - ansi-colors "^3.2.1" - -entities@^1.1.1, entities@^1.1.2, entities@~1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -entities@^2.0.0, entities@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" - integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== - -env-paths@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" - integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== - -env-variable@0.0.x: - version "0.0.6" - resolved "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz#74ab20b3786c545b62b4a4813ab8cf22726c9808" - integrity sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg== - -envinfo@^7.3.1: - version "7.5.0" - resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.5.0.tgz#91410bb6db262fb4f1409bd506e9ff57e91023f4" - integrity sha512-jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ== - -err-code@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" - integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= - -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -error-stack-parser@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" - integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== - dependencies: - stackframe "^1.1.1" - -error@^7.0.0: - version "7.2.1" - resolved "https://registry.npmjs.org/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" - integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== - dependencies: - string-template "~0.2.1" - -es-abstract@^1.17.0, es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.4: - version "1.17.4" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184" - integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.1.5" - is-regex "^1.0.5" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimleft "^2.1.1" - string.prototype.trimright "^2.1.1" - -es-array-method-boxes-properly@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" - integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== - -es-get-iterator@^1.0.2: - version "1.1.0" - resolved "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz#bb98ad9d6d63b31aacdc8f89d5d0ee57bcb5b4c8" - integrity sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ== - dependencies: - es-abstract "^1.17.4" - has-symbols "^1.0.1" - is-arguments "^1.0.4" - is-map "^2.0.1" - is-set "^2.0.1" - is-string "^1.0.5" - isarray "^2.0.5" - -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" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: - version "0.10.53" - resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - -es5-shim@^4.5.13: - version "4.5.13" - resolved "https://registry.npmjs.org/es5-shim/-/es5-shim-4.5.13.tgz#5d88062de049f8969f83783f4a4884395f21d28b" - integrity sha512-xi6hh6gsvDE0MaW4Vp1lgNEBpVcCXRWfPXj5egDvtgLz4L9MEvNwYEMdJH+JJinWkwa8c3c3o5HduV7dB/e1Hw== - -es6-iterator@^2.0.3, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= - dependencies: - es6-promise "^4.0.3" - -es6-shim@^0.35.5: - version "0.35.5" - resolved "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.5.tgz#46f59dc0a84a1c5029e8ff1166ca0a902077a9ab" - integrity sha512-E9kK/bjtCQRpN1K28Xh4BlmP8egvZBGJJ+9GtnzOwt7mdqtrjHFuVGr7QJfdjBIKqrlU5duPf3pCBoDrkjVYFg== - -es6-symbol@^3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -es6-weak-map@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" - integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== - dependencies: - d "1" - es5-ext "^0.10.46" - es6-iterator "^2.0.3" - es6-symbol "^3.1.1" - -esbuild@0.6.3: - version "0.6.3" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.6.3.tgz#a957e22f2503c745793514388110f9b55b3a6f83" - integrity sha512-4lHgz/EvGLRQnDYzzrvW+eilaPHim5pCLz4mP0k0QIalD/n8Ji2NwQwoIa1uX+yKkbn9R/FAZvaEbodjx55rDg== - -escalade@^3.0.1: - version "3.0.2" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4" - integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== - -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== - -escape-html@^1.0.3, escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escodegen@^1.14.1, escodegen@^1.6.1, escodegen@^1.9.1: - version "1.14.3" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-config-prettier@^6.0.0: - version "6.10.0" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.10.0.tgz#7b15e303bf9c956875c948f6b21500e48ded6a7f" - integrity sha512-AtndijGte1rPILInUdHjvKEGbIV06NuvPrqlIEaEaWtbtvJh464mDeyGMdZEQMsGvC0ZVkiex1fSNcC4HAbRGg== - dependencies: - get-stdin "^6.0.0" - -eslint-formatter-friendly@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/eslint-formatter-friendly/-/eslint-formatter-friendly-7.0.0.tgz#32a4998ababa0a39994aed629b831fda7dabc864" - integrity sha512-WXg2D5kMHcRxIZA3ulxdevi8/BGTXu72pfOO5vXHqcAfClfIWDSlOljROjCSOCcKvilgmHz1jDWbvFCZHjMQ5w== - dependencies: - "@babel/code-frame" "7.0.0" - chalk "2.4.2" - extend "3.0.2" - strip-ansi "5.2.0" - text-table "0.2.0" - -eslint-import-resolver-node@^0.3.3: - version "0.3.3" - resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" - integrity sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg== - dependencies: - debug "^2.6.9" - resolve "^1.13.1" - -eslint-module-utils@^2.1.1, eslint-module-utils@^2.6.0: - version "2.6.0" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" - integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== - dependencies: - debug "^2.6.9" - pkg-dir "^2.0.0" - -eslint-plugin-cypress@^2.10.3: - version "2.11.1" - resolved "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.11.1.tgz#a945e2774b88211e2c706a059d431e262b5c2862" - integrity sha512-MxMYoReSO5+IZMGgpBZHHSx64zYPSPTpXDwsgW7ChlJTF/sA+obqRbHplxD6sBStE+g4Mi0LCLkG4t9liu//mQ== - dependencies: - globals "^11.12.0" - -eslint-plugin-graphql@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/eslint-plugin-graphql/-/eslint-plugin-graphql-4.0.0.tgz#d238ff2baee4d632cfcbe787a7a70a1f50428358" - integrity sha512-d5tQm24YkVvCEk29ZR5ScsgXqAGCjKlMS8lx3mS7FS/EKsWbkvXQImpvic03EpMIvNTBW5e+2xnHzXB/VHNZJw== - dependencies: - "@babel/runtime" "^7.10.0" - graphql-config "^3.0.2" - lodash.flatten "^4.4.0" - lodash.without "^4.4.0" - -eslint-plugin-import@^2.20.2, eslint-plugin-import@^2.22.0: - version "2.22.0" - resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz#92f7736fe1fde3e2de77623c838dd992ff5ffb7e" - integrity sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg== - dependencies: - array-includes "^3.1.1" - array.prototype.flat "^1.2.3" - contains-path "^0.1.0" - debug "^2.6.9" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.3" - eslint-module-utils "^2.6.0" - has "^1.0.3" - minimatch "^3.0.4" - object.values "^1.1.1" - read-pkg-up "^2.0.0" - resolve "^1.17.0" - tsconfig-paths "^3.9.0" - -eslint-plugin-jest@^23.6.0: - version "23.8.2" - resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.8.2.tgz#6f28b41c67ef635f803ebd9e168f6b73858eb8d4" - integrity sha512-xwbnvOsotSV27MtAe7s8uGWOori0nUsrXh2f1EnpmXua8sDfY6VZhHAhHg2sqK7HBNycRQExF074XSZ7DvfoFg== - dependencies: - "@typescript-eslint/experimental-utils" "^2.5.0" - -eslint-plugin-jsx-a11y@^6.2.1: - version "6.2.3" - resolved "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz#b872a09d5de51af70a97db1eea7dc933043708aa" - integrity sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg== - dependencies: - "@babel/runtime" "^7.4.5" - aria-query "^3.0.0" - array-includes "^3.0.3" - ast-types-flow "^0.0.7" - axobject-query "^2.0.2" - damerau-levenshtein "^1.0.4" - emoji-regex "^7.0.2" - has "^1.0.3" - jsx-ast-utils "^2.2.1" - -eslint-plugin-monorepo@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/eslint-plugin-monorepo/-/eslint-plugin-monorepo-0.2.1.tgz#96cfc4af241077675f40d7017377897fb8ea537b" - integrity sha512-82JaAjuajVAsDT+pMvdt275H6F55H3MEofaMZbJurGqfXpPDT4eayTgYyyjfd1XR8VD1S+ORbuHCULnSqNyD9g== - dependencies: - eslint-module-utils "^2.1.1" - get-monorepo-packages "^1.1.0" - globby "^7.1.1" - load-json-file "^4.0.0" - minimatch "^3.0.4" - parse-package-name "^0.1.0" - path-is-inside "^1.0.2" - -eslint-plugin-notice@^0.9.10: - version "0.9.10" - resolved "https://registry.npmjs.org/eslint-plugin-notice/-/eslint-plugin-notice-0.9.10.tgz#89cf6377bf1c004a219c4e541321ea9125b408c8" - integrity sha512-rF79EuqdJKu9hhTmwUkNeSvLmmq03m/NXq/NHwUENHbdJ0wtoyOjxZBhW4QCug8v5xYE6cGe3AWkGqSIe9KUbQ== - dependencies: - find-root "^1.1.0" - lodash "^4.17.15" - metric-lcs "^0.1.2" - -eslint-plugin-react-hooks@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.0.4.tgz#aed33b4254a41b045818cacb047b81e6df27fa58" - integrity sha512-equAdEIsUETLFNCmmCkiCGq6rkSK5MoJhXFPFYeUebcjKgBmWWcgVOqZyQC8Bv1BwVCnTq9tBxgJFgAJTWoJtA== - -eslint-plugin-react@^7.12.4: - version "7.19.0" - resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666" - integrity sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ== - dependencies: - array-includes "^3.1.1" - doctrine "^2.1.0" - has "^1.0.3" - jsx-ast-utils "^2.2.3" - object.entries "^1.1.1" - object.fromentries "^2.0.2" - object.values "^1.1.1" - prop-types "^15.7.2" - resolve "^1.15.1" - semver "^6.3.0" - string.prototype.matchall "^4.0.2" - xregexp "^4.3.0" - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^5.0.0, eslint-scope@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" - integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-utils@^1.4.3: - version "1.4.3" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" - integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz#74415ac884874495f78ec2a97349525344c981fa" - integrity sha512-WFb4ihckKil6hu3Dp798xdzSfddwKKU3+nGniKF6HfeW6OLd2OUDEPP7TcHtB5+QXOKg2s6B2DaMPE1Nn/kxKQ== - -eslint@^7.1.0: - version "7.4.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-7.4.0.tgz#4e35a2697e6c1972f9d6ef2b690ad319f80f206f" - integrity sha512-gU+lxhlPHu45H3JkEGgYhWhkR9wLHHEXC9FbWFnTlEkbKyZKWgWRLgf61E8zWmBuI6g5xKBph9ltg3NtZMVF8g== - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.0.1" - doctrine "^3.0.0" - enquirer "^2.3.5" - eslint-scope "^5.1.0" - eslint-utils "^2.0.0" - eslint-visitor-keys "^1.2.0" - espree "^7.1.0" - esquery "^1.2.0" - esutils "^2.0.2" - file-entry-cache "^5.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" - globals "^12.1.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash "^4.17.14" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^5.2.3" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -esm@^3.2.25: - version "3.2.25" - resolved "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" - integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== - -espree@^7.1.0: - version "7.1.0" - resolved "https://registry.npmjs.org/espree/-/espree-7.1.0.tgz#a9c7f18a752056735bf1ba14cb1b70adc3a5ce1c" - integrity sha512-dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw== - dependencies: - acorn "^7.2.0" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.2.0" - -esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.2.0: - version "1.3.1" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" - integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== - dependencies: - estraverse "^4.1.0" - -estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" - integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== - -estree-walker@^0.6.0, estree-walker@^0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== - -estree-walker@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -event-emitter@^0.3.5: - version "0.3.5" - resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= - dependencies: - d "1" - es5-ext "~0.10.14" - -event-stream@=3.3.4: - version "3.3.4" - resolved "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" - integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= - dependencies: - duplexer "~0.1.1" - from "~0" - map-stream "~0.1.0" - pause-stream "0.0.11" - split "0.3" - stream-combiner "~0.0.4" - through "~2.3.1" - -eventemitter2@^6.4.2: - version "6.4.3" - resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.3.tgz#35c563619b13f3681e7eb05cbdaf50f56ba58820" - integrity sha512-t0A2msp6BzOf+QAcI6z9XMktLj52OjGQg+8SJH6v5+3uxNpWYRR3wQmfA+6xtMU9kOC59qk9licus5dYcrYkMQ== - -eventemitter3@^3.1.0: - version "3.1.2" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - -eventemitter3@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" - integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== - -events@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" - integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== - -eventsource@^1.0.5, eventsource@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" - integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== - dependencies: - original "^1.0.0" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -exec-buffer@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz#b1686dbd904c7cf982e652c1f5a79b1e5573082b" - integrity sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA== - dependencies: - execa "^0.7.0" - p-finally "^1.0.0" - pify "^3.0.0" - rimraf "^2.5.4" - tempfile "^2.0.0" - -exec-sh@^0.3.2: - version "0.3.4" - resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" - integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== - -execa@3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" - integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^4.0.0, execa@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/execa/-/execa-4.0.2.tgz#ad87fb7b2d9d564f70d2b62d511bee41d5cbb240" - integrity sha512-QI2zLa6CjGWdiQsmSkZoGtDx2N+cQIGb3yNolGTdjSQzydzLgYYf8LRuagp7S7fPimjcrzUDSUFd/MgzELMi4Q== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -executable@^4.1.0, executable@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" - integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== - dependencies: - pify "^2.2.0" - -exit-hook@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" - integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= - dependencies: - fill-range "^2.1.0" - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - -expect@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/expect/-/expect-26.0.1.tgz#18697b9611a7e2725e20ba3ceadda49bc9865421" - integrity sha512-QcCy4nygHeqmbw564YxNbHTJlXh47dVID2BUP52cZFpLU9zHViMFK6h07cC1wf7GYCTIigTdAXhVua8Yl1FkKg== - dependencies: - "@jest/types" "^26.0.1" - ansi-styles "^4.0.0" - jest-get-type "^26.0.0" - jest-matcher-utils "^26.0.1" - jest-message-util "^26.0.1" - jest-regex-util "^26.0.0" - -express-prom-bundle@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/express-prom-bundle/-/express-prom-bundle-6.1.0.tgz#8fd72e5bedbbd686b8e7c49e0aecbc1b14b28743" - integrity sha512-krlvp5r6sgJ1IwL6M6/coMrNbAlwtpk+uyivfeyRMCupTK4HzIEQHH0gwrNhLiKyPmSbtZcSmtO6s+PRumRp5g== - dependencies: - on-finished "^2.3.0" - url-value-parser "^2.0.0" - -express-promise-router@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/express-promise-router/-/express-promise-router-3.0.3.tgz#5e6d22a5a3f013d71833172fe8d7ab780c3f6b70" - integrity sha1-Xm0ipaPwE9cYMxcv6NereAw/a3A= - dependencies: - is-promise "^2.1.0" - lodash.flattendeep "^4.0.0" - methods "^1.0.0" - -express@^4.0.0, express@^4.17.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== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -ext-list@^2.0.0: - version "2.2.2" - resolved "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" - integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== - dependencies: - mime-db "^1.28.0" - -ext-name@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" - integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== - dependencies: - ext-list "^2.0.0" - sort-keys-length "^1.0.0" - -ext@^1.1.2: - version "1.4.0" - resolved "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" - integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== - dependencies: - type "^2.0.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@3.0.2, extend@^3.0.0, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extract-zip@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" - integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== - dependencies: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" - yauzl "^2.10.0" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@2.0.1, fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= - -fast-deep-equal@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= - -fast-deep-equal@^3.0.0, fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "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: - version "2.2.7" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" - integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - -fast-glob@^3.0.3, fast-glob@^3.1.1: - version "3.2.2" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz#ade1a9d91148965d4bf7c51f72e1ca662d32e63d" - integrity sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" - merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" - -fast-json-patch@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-2.2.1.tgz#18150d36c9ab65c7209e7d4eb113f4f8eaabe6d9" - integrity sha512-4j5uBaTnsYAV5ebkidvxiLUYOwjQ+JSFljeqfTxCrH9bDmlCQaOJFS84oDJ2rAXZq2yskmk3ORfoP9DCwqFNig== - dependencies: - fast-deep-equal "^2.0.1" - -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fast-safe-stringify@^2.0.4: - version "2.0.7" - resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" - integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== - -fast-shallow-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz#d4dcaf6472440dcefa6f88b98e3251e27f25628b" - integrity sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw== - -fast-url-parser@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" - integrity sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0= - dependencies: - punycode "^1.3.2" - -fastest-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/fastest-stable-stringify/-/fastest-stable-stringify-1.0.1.tgz#9122d406d4c9d98bea644a6b6853d5874b87b028" - integrity sha1-kSLUBtTJ2YvqZEpraFPVh0uHsCg= - -fastparse@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - -fastq@^1.6.0: - version "1.6.1" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.6.1.tgz#4570c74f2ded173e71cf0beb08ac70bb85826791" - integrity sha512-mpIH5sKYueh3YyeJwqtVo8sORi0CgtmkVbK6kZStpQlZBYQuTzG2CZ7idSiJuA7bY0SFCWUc5WIs+oYumGCQNw== - dependencies: - reusify "^1.0.4" - -fault@^1.0.0, fault@^1.0.2: - version "1.0.4" - resolved "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13" - integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA== - dependencies: - format "^0.2.0" - -faye-websocket@^0.10.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: - 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== - dependencies: - websocket-driver ">=0.5.1" - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - -fecha@^2.3.3: - version "2.3.3" - resolved "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd" - integrity sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg== - -feed@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/feed/-/feed-4.2.1.tgz#b246ef891051c7dbf088ca203341d9fb0444baee" - integrity sha512-l28KKcK1J/u3iq5dRDmmoB2p7dtBfACC2NqJh4dI2kFptxH0asfjmOfcxqh5Sv8suAlVa73gZJ4REY5RrafVvg== - dependencies: - xml-js "^1.6.11" - -fetch-readablestream@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/fetch-readablestream/-/fetch-readablestream-0.2.0.tgz#eaa6d1a76b12de2d4731a343393c6ccdcfe2c795" - integrity sha512-qu4mXWf4wus4idBIN/kVH+XSer8IZ9CwHP+Pd7DL7TuKNC1hP7ykon4kkBjwJF3EMX2WsFp4hH7gU7CyL7ucXw== - -figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: - version "3.5.1" - resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" - integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== - -figures@^1.3.5, figures@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - -figures@^3.0.0, figures@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== - dependencies: - flat-cache "^2.0.1" - -file-loader@^4.2.0: - version "4.3.0" - resolved "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" - integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA== - dependencies: - loader-utils "^1.2.3" - schema-utils "^2.5.0" - -file-saver@eligrey/FileSaver.js#1.3.8: - version "1.3.8" - resolved "https://codeload.github.com/eligrey/FileSaver.js/tar.gz/e865e37af9f9947ddcced76b549e27dc45c1cb2e" - -file-system-cache@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/file-system-cache/-/file-system-cache-1.0.5.tgz#84259b36a2bbb8d3d6eb1021d3132ffe64cfff4f" - integrity sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08= - dependencies: - bluebird "^3.3.5" - fs-extra "^0.30.0" - ramda "^0.21.0" - -file-type@5.2.0, file-type@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" - integrity sha1-LdvqfHP/42No365J3DOMBYwritY= - -file-type@^10.4.0, file-type@^10.7.0: - version "10.11.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz#2961d09e4675b9fb9a3ee6b69e9cd23f43fd1890" - integrity sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw== - -file-type@^3.8.0: - version "3.9.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" - integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= - -file-type@^4.2.0: - version "4.4.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" - integrity sha1-G2AOX8ofvcboDApwxxyNul95BsU= - -file-type@^6.1.0: - version "6.2.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" - integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== - -file-type@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz#244f3b7ef641bbe0cca196c7276e4b332399f68c" - integrity sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ== - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -filefy@0.1.10: - version "0.1.10" - resolved "https://registry.npmjs.org/filefy/-/filefy-0.1.10.tgz#174677c8e2fa5bc39a3af0ed6fb492f16b8fbf42" - integrity sha512-VgoRVOOY1WkTpWH+KBy8zcU1G7uQTVsXqhWEgzryB9A5hg2aqCyZ6aQ/5PSzlqM5+6cnVrX6oYV0XqD3HZSnmQ== - -filename-reserved-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" - integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= - -filenamify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz#88faf495fb1b47abfd612300002a16228c677ee9" - integrity sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA== - dependencies: - filename-reserved-regex "^2.0.0" - strip-outer "^1.0.0" - trim-repeated "^1.0.0" - -filesize@3.6.1: - version "3.6.1" - resolved "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" - integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== - -filesize@6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz#f850b509909c7c86f7e450ea19006c31c2ed3d2f" - integrity sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg== - -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-cache-dir@^3.0.0, find-cache-dir@^3.2.0: - version "3.3.1" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-root@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" - integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== - -find-up@3.0.0, find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-versions@^3.0.0, find-versions@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" - integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== - dependencies: - semver-regex "^2.0.0" - -findup-sync@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - -fined@^1.0.1: - version "1.2.0" - resolved "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" - integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== - dependencies: - expand-tilde "^2.0.2" - is-plain-object "^2.0.3" - object.defaults "^1.1.0" - object.pick "^1.2.0" - parse-filepath "^1.0.1" - -flagged-respawn@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" - integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== - -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== - dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" - -flatted@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -fn-name@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/fn-name/-/fn-name-3.0.0.tgz#0596707f635929634d791f452309ab41558e3c5c" - integrity sha512-eNMNr5exLoavuAMhIUVsOKF79SWd/zG104ef6sxBTSw+cZc6BXdQXDvYcGvp0VbxVVSp1XDUNoz7mg1xMtSznA== - -focus-lock@^0.6.6: - version "0.6.6" - resolved "https://registry.npmjs.org/focus-lock/-/focus-lock-0.6.6.tgz#98119a755a38cfdbeda0280eaa77e307eee850c7" - integrity sha512-Dx69IXGCq1qsUExWuG+5wkiMqVM/zGx/reXSJSLogECwp3x6KeNQZ+NAetgxEFpnC41rD8U3+jRCW68+LNzdtw== - -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" - -follow-redirects@^1.0.0: - version "1.10.0" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.10.0.tgz#01f5263aee921c6a54fb91667f08f4155ce169eb" - integrity sha512-4eyLK6s6lH32nOvLLwlIOnr9zrL8Sm+OvW4pVTJNoXeGzYIkHVf+pADQi+OJ0E67hiuSLezPVPyBcIZO50TmmQ== - dependencies: - debug "^3.0.0" - -for-in@^0.1.3: - version "0.1.8" - resolved "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" - integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE= - -for-in@^1.0.1, for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -for-own@^0.1.3: - version "0.1.5" - resolved "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= - dependencies: - for-in "^1.0.1" - -for-own@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" - integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= - dependencies: - for-in "^1.0.1" - -foreach@^2.0.4: - version "2.0.5" - resolved "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= - -forever-agent@~0.6.1: - version "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@1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz#ce1d77190b44d81a761b10b6284a373795e41f0c" - integrity sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA== - dependencies: - babel-code-frame "^6.22.0" - chalk "^2.4.1" - chokidar "^2.0.4" - 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@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.0.5: - 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== - dependencies: - "@babel/code-frame" "^7.5.5" - chalk "^2.4.1" - micromatch "^3.1.10" - minimatch "^3.0.4" - semver "^5.6.0" - tapable "^1.0.0" - worker-rpc "^0.1.0" - -form-data@^2.3.1, form-data@^2.3.2: - version "2.5.1" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" - integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -form-data@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" - integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -format@^0.2.0: - version "0.2.2" - resolved "https://registry.npmjs.org/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" - integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= - -formidable@^1.2.0: - version "1.2.2" - resolved "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9" - integrity sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q== - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from2@^2.1.0, from2@^2.1.1: - version "2.3.0" - resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -from@~0: - version "0.1.7" - resolved "https://registry.npmjs.org/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= - -fs-capacitor@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz#5a22e72d40ae5078b4fe64fe4d08c0d3fc88ad3c" - integrity sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA== - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-extra@8.1.0, fs-extra@^8.0.1, fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@9.0.1, fs-extra@^9.0.0, fs-extra@^9.0.1: - version "9.0.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" - integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^1.0.0" - -fs-extra@^0.30.0: - version "0.30.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - integrity sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A= - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - -fs-extra@^7.0.0: - version "7.0.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.12" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c" - integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@^2.1.2, fsevents@~2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" - integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function.prototype.name@^1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45" - integrity sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - functions-have-names "^1.2.0" - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -functions-have-names@^1.2.0: - version "1.2.1" - resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91" - integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA== - -fuse.js@^3.4.6: - version "3.6.1" - resolved "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz#7de85fdd6e1b3377c23ce010892656385fd9b10c" - integrity sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw== - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -gaze@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" - integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== - dependencies: - globule "^1.0.0" - -generic-names@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" - integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== - dependencies: - loader-utils "^1.1.0" - -generic-pool@2.4.3: - version "2.4.3" - resolved "https://registry.npmjs.org/generic-pool/-/generic-pool-2.4.3.tgz#780c36f69dfad05a5a045dd37be7adca11a4f6ff" - integrity sha1-eAw29p360FpaBF3Te+etyhGk9v8= - -genfun@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" - integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== - -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-monorepo-packages@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/get-monorepo-packages/-/get-monorepo-packages-1.2.0.tgz#3eee88d30b11a5f65955dec6ae331958b2a168e4" - integrity sha512-aDP6tH+eM3EuVSp3YyCutOcFS4Y9AhRRH9FAd+cjtR/g63Hx+DCXdKoP1ViRPUJz5wm+BOEXB4FhoffGHxJ7jQ== - dependencies: - globby "^7.1.1" - load-json-file "^4.0.0" - -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - -get-pkg-repo@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" - integrity sha1-xztInAbYDMVTbCyFP54FIyBWly0= - dependencies: - hosted-git-info "^2.1.4" - meow "^3.3.0" - normalize-package-data "^2.3.0" - parse-github-repo-url "^1.3.0" - through2 "^2.0.0" - -get-port@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119" - integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== - -get-port@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" - integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== - -get-proxy@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93" - integrity sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw== - dependencies: - npm-conf "^1.1.0" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= - -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== - -get-stream@3.0.0, get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^2.2.0: - version "2.3.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" - integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - -get-stream@^4.0.0, get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0, get-stream@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getopts@2.2.5: - version "2.2.5" - resolved "https://registry.npmjs.org/getopts/-/getopts-2.2.5.tgz#67a0fe471cacb9c687d817cab6450b96dde8313b" - integrity sha512-9jb7AW5p3in+IiJWhQiZmmwkpLaR/ccTWdWQCtZM66HJcHHLegowh4q4tSD7gouUyeNvFWRavfK9GXosQHDpFA== - -getos@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" - integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== - dependencies: - async "^3.2.0" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -gifsicle@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/gifsicle/-/gifsicle-4.0.1.tgz#30e1e61e3ee4884ef702641b2e98a15c2127b2e2" - integrity sha512-A/kiCLfDdV+ERV/UB+2O41mifd+RxH8jlRG8DMxZO84Bma/Fw0htqZ+hY2iaalLRNyUu7tYZQslqUBJxBggxbg== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.0" - execa "^1.0.0" - logalot "^2.0.0" - -git-raw-commits@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz#d92addf74440c14bcc5c83ecce3fb7f8a79118b5" - integrity sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg== - dependencies: - dargs "^4.0.1" - lodash.template "^4.0.2" - meow "^4.0.0" - split2 "^2.0.0" - through2 "^2.0.0" - -git-remote-origin-url@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" - integrity sha1-UoJlna4hBxRaERJhEq0yFuxfpl8= - dependencies: - gitconfiglocal "^1.0.0" - pify "^2.3.0" - -git-semver-tags@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.3.tgz#48988a718acf593800f99622a952a77c405bfa34" - integrity sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA== - dependencies: - meow "^4.0.0" - semver "^6.0.0" - -git-up@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz#cb2ef086653640e721d2042fe3104857d89007c0" - integrity sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw== - dependencies: - is-ssh "^1.3.0" - parse-url "^5.0.0" - -git-url-parse@^11.1.2, git-url-parse@^11.1.3: - version "11.1.3" - resolved "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.1.3.tgz#03625b6fc09905e9ad1da7bb2b84be1bf9123143" - integrity sha512-GPsfwticcu52WQ+eHp0IYkAyaOASgYdtsQDIt4rUp6GbiNt1P9ddrh3O0kQB0eD4UJZszVqNT3+9Zwcg40fywA== - dependencies: - git-up "^4.0.0" - -gitconfiglocal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" - integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= - dependencies: - ini "^1.3.2" - -github-slugger@^1.2.1, github-slugger@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" - integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== - 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" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== - dependencies: - is-glob "^4.0.1" - -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= - -glob@7.1.6, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1: - version "7.1.6" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-dirs@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" - integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== - dependencies: - ini "^1.3.5" - -global-modules@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -global@^4.3.0, global@^4.3.2, 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== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - -globals@^11.1.0, globals@^11.12.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - -globalthis@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9" - integrity sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw== - dependencies: - define-properties "^1.1.3" - -globby@11.0.1, globby@^11.0.0: - version "11.0.1" - resolved "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" - integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== - 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@8.0.2, globby@^8.0.1: - 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@^10.0.1: - version "10.0.2" - resolved "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" - integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.0.3" - glob "^7.1.3" - ignore "^5.1.1" - merge2 "^1.2.3" - 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" - integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= - dependencies: - array-union "^1.0.1" - dir-glob "^2.0.0" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" - -globby@^9.2.0: - version "9.2.0" - resolved "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" - integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^1.0.2" - dir-glob "^2.2.2" - fast-glob "^2.2.6" - glob "^7.1.3" - ignore "^4.0.3" - pify "^4.0.1" - slash "^2.0.0" - -globule@^1.0.0: - version "1.3.2" - resolved "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4" - integrity sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA== - dependencies: - glob "~7.1.1" - lodash "~4.17.10" - minimatch "~3.0.2" - -good-listener@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" - integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= - dependencies: - delegate "^3.1.2" - -got@^10.7.0: - version "10.7.0" - resolved "https://registry.npmjs.org/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" - integrity sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg== - dependencies: - "@sindresorhus/is" "^2.0.0" - "@szmarczak/http-timer" "^4.0.0" - "@types/cacheable-request" "^6.0.1" - cacheable-lookup "^2.0.0" - cacheable-request "^7.0.1" - decompress-response "^5.0.0" - duplexer3 "^0.1.4" - get-stream "^5.0.0" - lowercase-keys "^2.0.0" - mimic-response "^2.1.0" - p-cancelable "^2.0.0" - p-event "^4.0.0" - responselike "^2.0.0" - to-readable-stream "^2.0.0" - type-fest "^0.10.0" - -got@^11.5.2: - version "11.5.2" - resolved "https://registry.npmjs.org/got/-/got-11.5.2.tgz#772e3f3a06d9c7589c7c94dc3c83cdb31ddbf742" - integrity sha512-yUhpEDLeuGiGJjRSzEq3kvt4zJtAcjKmhIiwNp/eUs75tRlXfWcHo5tcBaMQtnjHWC7nQYT5HkY/l0QOQTkVww== - dependencies: - "@sindresorhus/is" "^3.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.1" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.0" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - -got@^7.0.0: - version "7.1.0" - resolved "https://registry.npmjs.org/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" - integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== - dependencies: - decompress-response "^3.2.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-plain-obj "^1.1.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^1.1.1" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - url-parse-lax "^1.0.0" - url-to-options "^1.0.1" - -got@^8.3.1: - version "8.3.2" - resolved "https://registry.npmjs.org/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" - integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== - dependencies: - "@sindresorhus/is" "^0.7.0" - cacheable-request "^2.1.1" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - into-stream "^3.1.0" - is-retry-allowed "^1.1.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - mimic-response "^1.0.0" - p-cancelable "^0.4.0" - p-timeout "^2.0.1" - pify "^3.0.0" - safe-buffer "^5.1.1" - timed-out "^4.0.1" - url-parse-lax "^3.0.0" - url-to-options "^1.0.1" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, 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== - -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - -graphiql@^1.0.0-alpha.10: - version "1.0.3" - resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.0.3.tgz#f6b5d5c417d8f1a28786d3228a69883426ba74ad" - integrity sha512-6YW76m2exdpGiVS75I0QsbM4NanvenKFR9FtW/IFbui0mWv89iVa1FbdjhUt+kxa+LX/WlqTshiqiZRz7E5Bgg== - dependencies: - "@emotion/core" "^10.0.28" - "@mdx-js/react" "^1.5.2" - codemirror "^5.52.2" - codemirror-graphql "^0.12.0" - copy-to-clipboard "^3.2.0" - entities "^2.0.0" - markdown-it "^10.0.0" - monaco-graphql "^0.2.0" - regenerator-runtime "^0.13.5" - theme-ui "^0.3.1" - -graphql-config@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/graphql-config/-/graphql-config-3.0.3.tgz#58907c65ed7d6e04132321450b60e57863ea9a5f" - integrity sha512-MBY0wEjvcgJtZUyoqpPvOE1e5qPI0hJaa1gKTqjonSFiCsNHX2lykNjpOPcodmAgH1V06ELxhGnm9kcVzqvi/g== - dependencies: - "@graphql-tools/graphql-file-loader" "^6.0.0" - "@graphql-tools/json-file-loader" "^6.0.0" - "@graphql-tools/load" "^6.0.0" - "@graphql-tools/merge" "^6.0.0" - "@graphql-tools/url-loader" "^6.0.0" - "@graphql-tools/utils" "^6.0.0" - cosmiconfig "6.0.0" - minimatch "3.0.4" - string-env-interpolation "1.0.1" - tslib "^2.0.0" - -graphql-extensions@^0.12.4: - version "0.12.4" - resolved "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.4.tgz#c0aa49a20f983a2da641526d1e505996bd2b4188" - integrity sha512-GnR4LiWk3s2bGOqIh6V1JgnSXw2RCH4NOgbCFEWvB6JqWHXTlXnLZ8bRSkCiD4pltv7RHUPWqN/sGh8R6Ae/ag== - dependencies: - "@apollographql/apollo-tools" "^0.4.3" - apollo-server-env "^2.4.5" - apollo-server-types "^0.5.1" - -graphql-language-service-interface@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/graphql-language-service-interface/-/graphql-language-service-interface-2.4.0.tgz#4e2e63242c76197c4f56c61122db68187ea566b3" - integrity sha512-r7DQPyhCFY5TlpEukdh9tekJ9hAc7MD9TdOsb5CfAPlsIb1/faVVo2Ty19PxGSYDxygXjwpKLOQD0LqqFuw63A== - dependencies: - graphql-language-service-parser "^1.6.0" - graphql-language-service-types "^1.6.0" - graphql-language-service-utils "^2.4.0" - vscode-languageserver-types "^3.15.1" - -graphql-language-service-parser@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/graphql-language-service-parser/-/graphql-language-service-parser-1.6.0.tgz#53a97619461ed41ae237b9070e7e20cfaca56118" - integrity sha512-tkfYXl6WBECWNcsyw7O09c0oCMrxqr3JGyDNvdISDSDhvk8EwEk+AOweBEJkycJwoiv1lVlM+EdLfj7dzw4/6w== - -graphql-language-service-types@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/graphql-language-service-types/-/graphql-language-service-types-1.6.0.tgz#32529bb9d2e3b8ae9dd6d9646e15481ac5dfe9ad" - integrity sha512-7y4pkhTL+MtarC8CeHpvRYVc6pkT6ITdQXs+Gr7OClnk4Lz5nQEK0eO29kUdd0jEnYfHyh5iqhnL5Owfy+wT0A== - -graphql-language-service-utils@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/graphql-language-service-utils/-/graphql-language-service-utils-2.4.0.tgz#d4992a1968860abc43a118de498fec84361a4b87" - integrity sha512-aLa+8iqb7AJYgdcawsKH8/KLc14DHcRsnveshOm8hN6bBVT0YiQP6mEfJoci741O74uaDF2zj1J3c02vorichw== - dependencies: - graphql-language-service-types "^1.6.0" - -graphql-language-service@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-3.0.0.tgz#953c3bbf4cc35ff9a7bd54e428bca17832367490" - integrity sha512-ySPrbecxtjQtzIFdCIOoSJzaco9dQvZK+wZN/tTjcSEEWh3fgMYXmctAG+WddJiZg3AB7I4Xsb2AsO5yFBbLHg== - dependencies: - graphql-language-service-interface "^2.4.0" - graphql-language-service-types "^1.6.0" - -graphql-subscriptions@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.1.0.tgz#5f2fa4233eda44cf7570526adfcf3c16937aef11" - integrity sha512-6WzlBFC0lWmXJbIVE8OgFgXIP4RJi3OQgTPa0DVMsDXdpRDjTsM1K9wfl5HSYX7R87QAGlvcv2Y4BIZa/ItonA== - dependencies: - iterall "^1.2.1" - -graphql-tag@^2.9.2: - version "2.10.4" - resolved "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.10.4.tgz#2f301a98219be8b178a6453bb7e33b79b66d8f83" - integrity sha512-O7vG5BT3w6Sotc26ybcvLKNTdfr4GfsIVMD+LdYqXCeJIYPRyp8BIsDOUtxw7S1PYvRw5vH3278J2EDezR6mfA== - -graphql-tools@^4.0.0: - version "4.0.8" - resolved "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz#e7fb9f0d43408fb0878ba66b522ce871bafe9d30" - integrity sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg== - dependencies: - apollo-link "^1.2.14" - apollo-utilities "^1.0.1" - deprecated-decorator "^0.1.6" - iterall "^1.1.3" - uuid "^3.1.0" - -graphql-upload@^8.0.2: - version "8.1.0" - resolved "https://registry.npmjs.org/graphql-upload/-/graphql-upload-8.1.0.tgz#6d0ab662db5677a68bfb1f2c870ab2544c14939a" - integrity sha512-U2OiDI5VxYmzRKw0Z2dmfk0zkqMRaecH9Smh1U277gVgVe9Qn+18xqf4skwr4YJszGIh7iQDZ57+5ygOK9sM/Q== - dependencies: - busboy "^0.3.1" - fs-capacitor "^2.0.4" - http-errors "^1.7.3" - object-path "^0.11.4" - -graphql@15.1.0: - version "15.1.0" - resolved "https://registry.npmjs.org/graphql/-/graphql-15.1.0.tgz#b93e28de805294ec08e1630d901db550cb8960a1" - integrity sha512-0TVyfOlCGhv/DBczQkJmwXOK6fjWkjzY3Pt7wY8i0gcYXq8aogG3weCsg48m72lywKSeOqedEHvVPOvZvSD51Q== - -graphql@^14.5.3: - version "14.7.0" - resolved "https://registry.npmjs.org/graphql/-/graphql-14.7.0.tgz#7fa79a80a69be4a31c27dda824dc04dac2035a72" - integrity sha512-l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA== - dependencies: - iterall "^1.2.2" - -graphql@^15.3.0: - version "15.3.0" - resolved "https://registry.npmjs.org/graphql/-/graphql-15.3.0.tgz#3ad2b0caab0d110e3be4a5a9b2aa281e362b5278" - integrity sha512-GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w== - -gray-matter@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-2.1.1.tgz#3042d9adec2a1ded6a7707a9ed2380f8a17a430e" - integrity sha1-MELZrewqHe1qdwep7SOA+KF6Qw4= - dependencies: - ansi-red "^0.1.1" - coffee-script "^1.12.4" - extend-shallow "^2.0.1" - js-yaml "^3.8.1" - toml "^2.3.2" - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - -gud@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" - integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== - -gulp-header@^1.7.1: - version "1.8.12" - resolved "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84" - integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ== - dependencies: - concat-with-sourcemaps "*" - lodash.template "^4.4.0" - through2 "^2.0.0" - -gzip-size@5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" - integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== - dependencies: - duplexer "^0.1.1" - pify "^4.0.1" - -handle-thing@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" - integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== - -handlebars@^4.4.0, handlebars@^4.7.3: - version "4.7.6" - resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" - integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.0" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.3" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - -harmony-reflect@^1.4.6: - version "1.6.1" - resolved "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" - integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA== - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - -has-unicode@^2.0.0, has-unicode@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - -has@^1.0.0, has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -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== - -hastscript@^5.0.0: - version "5.1.2" - resolved "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz#bde2c2e56d04c62dd24e8c5df288d050a355fb8a" - integrity sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ== - dependencies: - comma-separated-tokens "^1.0.0" - hast-util-parse-selector "^2.0.0" - property-information "^5.0.0" - space-separated-tokens "^1.0.0" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -headers-utils@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/headers-utils/-/headers-utils-1.2.0.tgz#5e10d1bc9d2bccf789547afca5b991a3167241e8" - integrity sha512-4/BMXcWrJErw7JpM87gF8MNEXcIMLzepYZjNRv/P9ctgupl2Ywa3u1PgHtNhSRq84bHH9Ndlkdy7bSi+bZ9I9A== - -helmet@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/helmet/-/helmet-4.0.0.tgz#34c187894ed001834f997c688f2b2df19846b193" - integrity sha512-HyoRKKHhWhO6+EBfgRLkuZR4/+NXc1nJB7x0bWwW89i9eoPciK0qUqyZNOA/zowpgrW9C4+J5toqMkZrpBOlkg== - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -highlight.js@^10.1.1, highlight.js@~10.1.0: - version "10.1.2" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.1.2.tgz#c20db951ba1c22c055010648dfffd7b2a968e00c" - integrity sha512-Q39v/Mn5mfBlMff9r+zzA+gWxRsCRKwEMvYTiisLr/XUiFI/4puWt0Ojdko3R3JCNWGdOWaA5g/Yxqa23kC5AA== - -highlight.js@^9.16.2: - version "9.18.3" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.3.tgz#a1a0a2028d5e3149e2380f8a865ee8516703d634" - integrity sha512-zBZAmhSupHIl5sITeMqIJnYCDfAEc3Gdkqj65wC1lpI468MMQeeQkhcIAvk+RylAkxrCcI9xy9piHiXeQ1BdzQ== - -highlight.js@~9.13.0: - version "9.13.1" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz#054586d53a6863311168488a0f58d6c505ce641e" - integrity sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A== - -highlight.js@~9.15.0, highlight.js@~9.15.1: - version "9.15.10" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz#7b18ed75c90348c045eef9ed08ca1319a2219ad2" - integrity sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw== - -history@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/history/-/history-5.0.0.tgz#0cabbb6c4bbf835addb874f8259f6d25101efd08" - integrity sha512-3NyRMKIiFSJmIPdq7FxkNMJkQ7ZEtVblOQ38VtKaA0zZMW1Eo6Q6W8oDKEflr1kNNTItSnk4JMCO1deeSgbLLg== - dependencies: - "@babel/runtime" "^7.7.6" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - -hoopy@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" - integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== - -hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: - version "2.8.8" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-comment-regex@^1.1.0, html-comment-regex@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" - integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== - -html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== - dependencies: - whatwg-encoding "^1.0.1" - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - -html-entities@^1.2.0, html-entities@^1.3.1: - 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-escaper@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.1.tgz#beed86b5d2b921e92533aa11bce6d8e3b583dee7" - integrity sha512-hNX23TjWwD3q56HpWjUHOKj1+4KKlnjv9PcmBUYKVpga+2cnb9nDx/B1o0yO4n+RZXZdiNxzx6B24C9aNMTkkQ== - -html-minifier-terser@^5.0.1: - version "5.0.4" - resolved "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.4.tgz#e8cc02748acb983bd7912ea9660bd31c0702ec32" - integrity sha512-fHwmKQ+GzhlqdxEtwrqLT7MSuheiA+rif5/dZgbz3GjoMXJzcRzy1L9NXoiiyxrnap+q5guSiv8Tz5lrh9g42g== - dependencies: - camel-case "^4.1.1" - clean-css "^4.2.3" - commander "^4.1.1" - he "^1.2.0" - param-case "^3.0.3" - relateurl "^0.2.7" - terser "^4.6.3" - -html-to-react@^1.3.4: - version "1.4.2" - resolved "https://registry.npmjs.org/html-to-react/-/html-to-react-1.4.2.tgz#7b628ab56cd63a52f2d0b79d0fa838a51f088a57" - integrity sha512-TdTfxd95sRCo6QL8admCkE7mvNNrXtGoVr1dyS+7uvc8XCqAymnf/6ckclvnVbQNUo2Nh21VPwtfEHd0khiV7g== - dependencies: - domhandler "^3.0" - htmlparser2 "^4.0" - lodash.camelcase "^4.3.0" - ramda "^0.26" - -html-webpack-plugin@^4.0.0-beta.2, html-webpack-plugin@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.3.0.tgz#53bf8f6d696c4637d5b656d3d9863d89ce8174fd" - integrity sha512-C0fzKN8yQoVLTelcJxZfJCE+aAvQiY2VUf3UuKrR4a9k5UMWYOtpDLsaXwATbcVCnI05hUS7L9ULQHWLZhyi3w== - dependencies: - "@types/html-minifier-terser" "^5.0.0" - "@types/tapable" "^1.0.5" - "@types/webpack" "^4.41.8" - html-minifier-terser "^5.0.1" - loader-utils "^1.2.3" - lodash "^4.17.15" - pretty-error "^2.1.1" - tapable "^1.1.3" - util.promisify "1.0.0" - -html2canvas@1.0.0-alpha.12: - version "1.0.0-alpha.12" - resolved "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz#3b1992e3c9b3f56063c35fd620494f37eba88513" - integrity sha1-OxmS48mz9WBjw1/WIElPN+uohRM= - dependencies: - css-line-break "1.0.1" - -htmlparser2@^3.3.0, htmlparser2@^3.9.1: - version "3.10.1" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - -htmlparser2@^4.0, htmlparser2@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz#9a4ef161f2e4625ebf7dfbe6c0a2f52d18a59e78" - integrity sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q== - dependencies: - domelementtype "^2.0.1" - domhandler "^3.0.0" - domutils "^2.0.0" - entities "^2.0.0" - -http-cache-semantics@3.8.1, http-cache-semantics@^3.8.1: - version "3.8.1" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@^1.7.3: - version "1.8.0" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" - integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -"http-parser-js@>=0.4.0 <0.4.11": - version "0.4.10" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" - integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= - -http-proxy-agent@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" - integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== - dependencies: - agent-base "4" - debug "3.1.0" - -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@^0.19.1: - version "0.19.2" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.2.tgz#ee73dcc8348165afefe8de2ff717751d181608ee" - integrity sha512-aYk1rTKqLTus23X3L96LGNCGNgWpG4cG0XoZIT1GUPhhulEHX/QalnO6Vbo+WmKWi4AL2IidjuC0wZtbpg0yhQ== - dependencies: - http-proxy "^1.18.1" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy@^1.17.0, 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== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -http2-wrapper@^1.0.0-beta.5.0: - version "1.0.0-beta.5.2" - resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" - integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.0.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -https-proxy-agent@^2.2.3: - version "2.2.4" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" - integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== - dependencies: - agent-base "^4.3.0" - debug "^3.1.0" - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= - dependencies: - ms "^2.0.0" - -husky@^4.2.3: - version "4.2.5" - resolved "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz#2b4f7622673a71579f901d9885ed448394b5fa36" - integrity sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ== - dependencies: - chalk "^4.0.0" - ci-info "^2.0.0" - compare-versions "^3.6.0" - cosmiconfig "^6.0.0" - find-versions "^3.2.0" - opencollective-postinstall "^2.0.2" - pkg-dir "^4.2.0" - please-upgrade-node "^3.2.0" - slash "^3.0.0" - which-pm-runs "^1.0.0" - -hyphenate-style-name@^1.0.2, hyphenate-style-name@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz#097bb7fa0b8f1a9cf0bd5c734cf95899981a9b48" - integrity sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ== - -iconv-lite@0.4.24, iconv-lite@^0.4.13, iconv-lite@^0.4.21, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= - -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - -identity-obj-proxy@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" - integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ= - dependencies: - harmony-reflect "^1.4.6" - -ieee754@^1.1.13, ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore-by-default@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" - integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= - -ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== - dependencies: - minimatch "^3.0.4" - -ignore@^3.3.5: - version "3.3.10" - resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== - -ignore@^4.0.3, ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.1.1, ignore@^5.1.4: - version "5.1.4" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" - integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== - -imagemin-gifsicle@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-6.0.1.tgz#6abad4e95566d52e5a104aba1c24b4f3b48581b3" - integrity sha512-kuu47c6iKDQ6R9J10xCwL0lgs0+sMz3LRHqRcJ2CRBWdcNmo3T5hUaM8hSZfksptZXJLGKk8heSAvwtSdB1Fng== - dependencies: - exec-buffer "^3.0.0" - gifsicle "^4.0.0" - is-gif "^3.0.0" - -imagemin-jpegtran@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-6.0.0.tgz#c8d3bcfb6ec9c561c20a987142854be70d90b04f" - integrity sha512-Ih+NgThzqYfEWv9t58EItncaaXIHR0u9RuhKa8CtVBlMBvY0dCIxgQJQCfwImA4AV1PMfmUKlkyIHJjb7V4z1g== - dependencies: - exec-buffer "^3.0.0" - is-jpg "^2.0.0" - jpegtran-bin "^4.0.0" - -imagemin-optipng@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-6.0.0.tgz#a6bfc7b542fc08fc687e83dfb131249179a51a68" - integrity sha512-FoD2sMXvmoNm/zKPOWdhKpWdFdF9qiJmKC17MxZJPH42VMAp17/QENI/lIuP7LCUnLVAloO3AUoTSNzfhpyd8A== - dependencies: - exec-buffer "^3.0.0" - is-png "^1.0.0" - optipng-bin "^5.0.0" - -imagemin-svgo@^7.0.0: - version "7.1.0" - resolved "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-7.1.0.tgz#528a42fd3d55eff5d4af8fd1113f25fb61ad6d9a" - integrity sha512-0JlIZNWP0Luasn1HT82uB9nU9aa+vUj6kpT+MjPW11LbprXC+iC4HDwn1r4Q2/91qj4iy9tRZNsFySMlEpLdpg== - dependencies: - is-svg "^4.2.1" - svgo "^1.3.2" - -imagemin@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/imagemin/-/imagemin-6.1.0.tgz#62508b465728fea36c03cdc07d915fe2d8cf9e13" - integrity sha512-8ryJBL1CN5uSHpiBMX0rJw79C9F9aJqMnjGnrd/1CafegpNuA81RBAAru/jQQEOWlOJJlpRnlcVFF6wq+Ist0A== - dependencies: - file-type "^10.7.0" - globby "^8.0.1" - make-dir "^1.0.0" - p-pipe "^1.1.0" - pify "^4.0.1" - replace-ext "^1.0.0" - -immer@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" - integrity sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg== - -immutable@>=3.8.2, immutable@^3.8.1, immutable@^3.8.2, immutable@^3.x.x: - version "3.8.2" - resolved "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" - integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= - -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" - integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== - dependencies: - import-from "^3.0.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.0.0, import-fresh@^3.1.0: - version "3.2.1" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@3.0.0, import-from@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" - integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== - dependencies: - resolve-from "^5.0.0" - -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" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - -import-lazy@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz#891279202c8a2280fdbd6674dbd8da1a1dfc67cc" - integrity sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ== - -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" - integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= - dependencies: - repeating "^2.0.0" - -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -infer-owner@^1.0.3, infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -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.1, inherits@~2.0.3, inherits@~2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -init-package-json@^1.10.3: - version "1.10.3" - resolved "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz#45ffe2f610a8ca134f2bd1db5637b235070f6cbe" - integrity sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw== - dependencies: - glob "^7.1.1" - npm-package-arg "^4.0.0 || ^5.0.0 || ^6.0.0" - promzard "^0.3.0" - read "~1.0.1" - read-package-json "1 || 2" - semver "2.x || 3.x || 4 || 5" - validate-npm-package-license "^3.0.1" - validate-npm-package-name "^3.0.0" - -inline-style-prefixer@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-4.0.2.tgz#d390957d26f281255fe101da863158ac6eb60911" - integrity sha512-N8nVhwfYga9MiV9jWlwfdj1UDIaZlBFu4cJSJkIr7tZX7sHpHhGR5su1qdpW+7KPL8ISTvCIkcaFi/JdBknvPg== - dependencies: - bowser "^1.7.3" - css-in-js-utils "^2.0.0" - -inquirer@6.5.0: - version "6.5.0" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42" - integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -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@^6.2.0: - version "6.5.2" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -inquirer@^7.0.0, inquirer@^7.0.4: - version "7.3.3" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.19" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.6.0" - string-width "^4.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== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -internal-slot@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3" - integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g== - dependencies: - es-abstract "^1.17.0-next.1" - has "^1.0.3" - side-channel "^1.0.2" - -interpret@^1.0.0: - version "1.2.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: - version "2.2.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" - integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== - -into-stream@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" - integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= - dependencies: - from2 "^2.1.1" - p-is-promise "^1.1.0" - -invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - -ip@1.1.5, 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: - 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== - -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" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" - integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -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== - -is-alphanumerical@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" - integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== - dependencies: - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^1.0.2, is-buffer@^1.1.4, is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.4, is-callable@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-decimal@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" - integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "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: - version "2.0.0" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" - integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== - -is-dom@^1.0.9: - version "1.1.0" - resolved "https://registry.npmjs.org/is-dom/-/is-dom-1.1.0.tgz#af1fced292742443bb59ca3f76ab5e80907b4e8a" - integrity sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ== - dependencies: - is-object "^1.0.1" - is-window "^1.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - 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" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-function@^1.0.1, is-function@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" - integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-gif@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-gif/-/is-gif-3.0.0.tgz#c4be60b26a301d695bb833b20d9b5d66c6cf83b1" - integrity sha512-IqJ/jlbw5WJSNfwQ/lHEDXF8rxhRgF6ythk2oiEvhpG29F704eX9NO6TvPfMiq9DrbwgcEDnETYNcZDPewQoVw== - dependencies: - file-type "^10.4.0" - -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" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - 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.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-hexadecimal@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" - integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== - -is-in-browser@^1.0.2, is-in-browser@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" - integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU= - -is-installed-globally@^0.3.1, is-installed-globally@^0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" - integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== - dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" - -is-interactive@^1.0.0: - version "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-jpg@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz#2e1997fa6e9166eaac0242daae443403e4ef1d97" - integrity sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc= - -is-map@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz#520dafc4307bb8ebc33b813de5ce7c9400d644a1" - integrity sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw== - -is-module@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= - -is-natural-number@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" - integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg= - -is-npm@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" - integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^1.0.0, is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-object@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" - integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= - -is-observable@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" - integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== - dependencies: - symbol-observable "^1.1.0" - -is-path-cwd@^2.0.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@^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: - 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-plain-obj@^1.0.0, is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-plain-object@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928" - integrity sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg== - dependencies: - isobject "^4.0.0" - -is-png@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz#d574b12bf275c0350455570b0e5b57ab062077ce" - integrity sha1-1XSxK/J1wDUEVVcLDltXqwYgd84= - -is-potential-custom-element-name@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" - integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= - -is-promise@^2.1, is-promise@^2.1.0: - version "2.2.2" - resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - -is-reference@^1.1.2: - version "1.1.4" - resolved "https://registry.npmjs.org/is-reference/-/is-reference-1.1.4.tgz#3f95849886ddb70256a3e6d062b1a68c13c51427" - integrity sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw== - dependencies: - "@types/estree" "0.0.39" - -is-regex@^1.0.4, is-regex@^1.0.5, is-regex@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== - dependencies: - has-symbols "^1.0.1" - -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= - -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" - integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== - dependencies: - is-unc-path "^1.0.0" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - -is-root@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" - integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== - -is-set@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz#d1604afdab1724986d30091575f54945da7e5f43" - integrity sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA== - -is-ssh@^1.3.0: - version "1.3.1" - resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz#f349a8cadd24e65298037a522cf7520f2e81a0f3" - integrity sha512-0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg== - dependencies: - protocols "^1.1.0" - -is-stream@^1.0.0, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -is-string@^1.0.4, is-string@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== - -is-svg@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" - integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== - dependencies: - html-comment-regex "^1.1.0" - -is-svg@^4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/is-svg/-/is-svg-4.2.1.tgz#095b496e345fec9211c2a7d5d021003e040d6f81" - integrity sha512-PHx3ANecKsKNl5y5+Jvt53Y4J7MfMpbNZkv384QNiswMKAWIbvcqbPz+sYbFKJI8Xv3be01GSFniPmoaP+Ai5A== - dependencies: - html-comment-regex "^1.1.2" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-text-path@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" - integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= - dependencies: - text-extensions "^1.0.0" - -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" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" - integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== - dependencies: - unc-path-regex "^0.1.2" - -is-url@^1.2.2: - version "1.2.4" - resolved "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" - integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== - -is-utf8@^0.2.0: - version "0.2.1" - 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" - integrity sha1-LIlspT25feRdPDMTOmXYyfVjSA0= - -is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: - version "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" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is-wsl@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" - integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - -is2@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is2/-/is2-2.0.1.tgz#8ac355644840921ce435d94f05d3a94634d3481a" - integrity sha512-+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA== - dependencies: - deep-is "^0.1.3" - ip-regex "^2.1.0" - is-url "^1.2.2" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isobject@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" - integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== - -isomorphic-form-data@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isomorphic-form-data/-/isomorphic-form-data-2.0.0.tgz#9f6adf1c4c61ae3aefd8f110ab60fb9b143d6cec" - integrity sha512-TYgVnXWeESVmQSg4GLVbalmQ+B4NPi/H4eWxqALKj63KsUrcu301YDjBqaOw3h+cbak7Na4Xyps3BiptHtxTfg== - dependencies: - form-data "^2.3.2" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -istanbul-lib-coverage@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" - integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== - -istanbul-lib-instrument@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz#61f13ac2c96cfefb076fe7131156cc05907874e6" - integrity sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg== - dependencies: - "@babel/core" "^7.7.5" - "@babel/parser" "^7.7.5" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" - integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" - integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - -iterall@^1.1.3, iterall@^1.2.1, iterall@^1.2.2: - version "1.3.0" - resolved "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" - integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== - -iterate-iterator@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz#1693a768c1ddd79c969051459453f082fe82e9f6" - integrity sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw== - -iterate-value@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz#935115bd37d006a52046535ebc8d07e9c9337f57" - integrity sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ== - dependencies: - es-get-iterator "^1.0.2" - iterate-iterator "^1.0.1" - -jenkins@^0.28.0: - version "0.28.0" - resolved "https://registry.npmjs.org/jenkins/-/jenkins-0.28.0.tgz#72d6fcc452145403b34f6d4ecbd877ee1ab77fca" - integrity sha512-EGzzZcyFwXBCPZZoDNvZTPmZOqaHALfAStNfCF37oh+Mc6G/e0MwIuQjx5kMEynTXR9bF5EwLiuMTiTf5kHk5g== - dependencies: - papi "^0.29.0" - -jest-changed-files@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.0.1.tgz#1334630c6a1ad75784120f39c3aa9278e59f349f" - integrity sha512-q8LP9Sint17HaE2LjxQXL+oYWW/WeeXMPE2+Op9X3mY8IEGFVc14xRxFjUuXUbcPAlDLhtWdIEt59GdQbn76Hw== - dependencies: - "@jest/types" "^26.0.1" - execa "^4.0.0" - throat "^5.0.0" - -jest-cli@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-26.0.1.tgz#3a42399a4cbc96a519b99ad069a117d955570cac" - integrity sha512-pFLfSOBcbG9iOZWaMK4Een+tTxi/Wcm34geqZEqrst9cZDkTQ1LZ2CnBrTlHWuYAiTMFr0EQeK52ScyFU8wK+w== - dependencies: - "@jest/core" "^26.0.1" - "@jest/test-result" "^26.0.1" - "@jest/types" "^26.0.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - import-local "^3.0.2" - is-ci "^2.0.0" - jest-config "^26.0.1" - jest-util "^26.0.1" - jest-validate "^26.0.1" - prompts "^2.0.1" - yargs "^15.3.1" - -jest-config@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-26.0.1.tgz#096a3d4150afadf719d1fab00e9a6fb2d6d67507" - integrity sha512-9mWKx2L1LFgOXlDsC4YSeavnblN6A4CPfXFiobq+YYLaBMymA/SczN7xYTSmLaEYHZOcB98UdoN4m5uNt6tztg== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.0.1" - "@jest/types" "^26.0.1" - babel-jest "^26.0.1" - chalk "^4.0.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.4" - jest-environment-jsdom "^26.0.1" - jest-environment-node "^26.0.1" - jest-get-type "^26.0.0" - jest-jasmine2 "^26.0.1" - jest-regex-util "^26.0.0" - jest-resolve "^26.0.1" - jest-util "^26.0.1" - jest-validate "^26.0.1" - micromatch "^4.0.2" - pretty-format "^26.0.1" - -jest-css-modules@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/jest-css-modules/-/jest-css-modules-2.1.0.tgz#9c25ebe9d0214d8f55861a442268fdd4b01b4781" - integrity sha512-my3Scnt6l2tOll/eGwNZeh1KLAFkNzdl4MyZRdpl46GO6/93JcKKdTjNqK6Nokg8A8rT84MFLOpY1pzqKBEqMw== - dependencies: - identity-obj-proxy "3.0.0" - -jest-diff@^25.1.0, jest-diff@^25.2.1: - version "25.5.0" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" - integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== - dependencies: - chalk "^3.0.0" - diff-sequences "^25.2.6" - jest-get-type "^25.2.6" - pretty-format "^25.5.0" - -jest-diff@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-26.0.1.tgz#c44ab3cdd5977d466de69c46929e0e57f89aa1de" - integrity sha512-odTcHyl5X+U+QsczJmOjWw5tPvww+y9Yim5xzqxVl/R1j4z71+fHW4g8qu1ugMmKdFdxw+AtQgs5mupPnzcIBQ== - dependencies: - chalk "^4.0.0" - diff-sequences "^26.0.0" - jest-get-type "^26.0.0" - pretty-format "^26.0.1" - -jest-docblock@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" - integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== - dependencies: - detect-newline "^3.0.0" - -jest-each@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-26.0.1.tgz#633083061619302fc90dd8f58350f9d77d67be04" - integrity sha512-OTgJlwXCAR8NIWaXFL5DBbeS4QIYPuNASkzSwMCJO+ywo9BEa6TqkaSWsfR7VdbMLdgYJqSfQcIyjJCNwl5n4Q== - dependencies: - "@jest/types" "^26.0.1" - chalk "^4.0.0" - jest-get-type "^26.0.0" - jest-util "^26.0.1" - pretty-format "^26.0.1" - -jest-environment-jsdom@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.0.1.tgz#217690852e5bdd7c846a4e3b50c8ffd441dfd249" - integrity sha512-u88NJa3aptz2Xix2pFhihRBAatwZHWwSiRLBDBQE1cdJvDjPvv7ZGA0NQBxWwDDn7D0g1uHqxM8aGgfA9Bx49g== - dependencies: - "@jest/environment" "^26.0.1" - "@jest/fake-timers" "^26.0.1" - "@jest/types" "^26.0.1" - jest-mock "^26.0.1" - jest-util "^26.0.1" - jsdom "^16.2.2" - -jest-environment-node@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.0.1.tgz#584a9ff623124ff6eeb49e0131b5f7612b310b13" - integrity sha512-4FRBWcSn5yVo0KtNav7+5NH5Z/tEgDLp7VRQVS5tCouWORxj+nI+1tOLutM07Zb2Qi7ja+HEDoOUkjBSWZg/IQ== - dependencies: - "@jest/environment" "^26.0.1" - "@jest/fake-timers" "^26.0.1" - "@jest/types" "^26.0.1" - jest-mock "^26.0.1" - jest-util "^26.0.1" - -jest-esm-transformer@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/jest-esm-transformer/-/jest-esm-transformer-1.0.0.tgz#b6c58f496aa48194f96361a52f5c578fd2209726" - integrity sha512-FoPgeMMwy1/CEsc8tBI41i83CEO3x85RJuZi5iAMmWoARXhfgk6Jd7y+4d+z+HCkTKNVDvSWKGRhwjzU9PUbrw== - dependencies: - "@babel/core" "^7.4.4" - "@babel/plugin-transform-modules-commonjs" "^7.4.4" - -jest-fetch-mock@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/jest-fetch-mock/-/jest-fetch-mock-3.0.3.tgz#31749c456ae27b8919d69824f1c2bd85fe0a1f3b" - integrity sha512-Ux1nWprtLrdrH4XwE7O7InRY6psIi3GOsqNESJgMJ+M5cv4A8Lh7SN9d2V2kKRZ8ebAfcd1LNyZguAOb6JiDqw== - dependencies: - cross-fetch "^3.0.4" - promise-polyfill "^8.1.3" - -jest-get-type@^25.1.0, jest-get-type@^25.2.6: - version "25.2.6" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" - integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== - -jest-get-type@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz#381e986a718998dbfafcd5ec05934be538db4039" - integrity sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg== - -jest-haste-map@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.0.1.tgz#40dcc03c43ac94d25b8618075804d09cd5d49de7" - integrity sha512-J9kBl/EdjmDsvyv7CiyKY5+DsTvVOScenprz/fGqfLg/pm1gdjbwwQ98nW0t+OIt+f+5nAVaElvn/6wP5KO7KA== - dependencies: - "@jest/types" "^26.0.1" - "@types/graceful-fs" "^4.1.2" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-serializer "^26.0.0" - jest-util "^26.0.1" - jest-worker "^26.0.0" - micromatch "^4.0.2" - sane "^4.0.3" - walker "^1.0.7" - which "^2.0.2" - optionalDependencies: - fsevents "^2.1.2" - -jest-jasmine2@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.0.1.tgz#947c40ee816636ba23112af3206d6fa7b23c1c1c" - integrity sha512-ILaRyiWxiXOJ+RWTKupzQWwnPaeXPIoLS5uW41h18varJzd9/7I0QJGqg69fhTT1ev9JpSSo9QtalriUN0oqOg== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.0.1" - "@jest/source-map" "^26.0.0" - "@jest/test-result" "^26.0.1" - "@jest/types" "^26.0.1" - chalk "^4.0.0" - co "^4.6.0" - expect "^26.0.1" - is-generator-fn "^2.0.0" - jest-each "^26.0.1" - jest-matcher-utils "^26.0.1" - jest-message-util "^26.0.1" - jest-runtime "^26.0.1" - jest-snapshot "^26.0.1" - jest-util "^26.0.1" - pretty-format "^26.0.1" - throat "^5.0.0" - -jest-leak-detector@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.0.1.tgz#79b19ab3f41170e0a78eb8fa754a116d3447fb8c" - integrity sha512-93FR8tJhaYIWrWsbmVN1pQ9ZNlbgRpfvrnw5LmgLRX0ckOJ8ut/I35CL7awi2ecq6Ca4lL59bEK9hr7nqoHWPA== - dependencies: - jest-get-type "^26.0.0" - pretty-format "^26.0.1" - -jest-matcher-utils@^25.1.0: - version "25.1.0" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.1.0.tgz#fa5996c45c7193a3c24e73066fc14acdee020220" - integrity sha512-KGOAFcSFbclXIFE7bS4C53iYobKI20ZWleAdAFun4W1Wz1Kkej8Ng6RRbhL8leaEvIOjGXhGf/a1JjO8bkxIWQ== - dependencies: - chalk "^3.0.0" - jest-diff "^25.1.0" - jest-get-type "^25.1.0" - pretty-format "^25.1.0" - -jest-matcher-utils@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.0.1.tgz#12e1fc386fe4f14678f4cc8dbd5ba75a58092911" - integrity sha512-PUMlsLth0Azen8Q2WFTwnSkGh2JZ8FYuwijC8NR47vXKpsrKmA1wWvgcj1CquuVfcYiDEdj985u5Wmg7COEARw== - dependencies: - chalk "^4.0.0" - jest-diff "^26.0.1" - jest-get-type "^26.0.0" - pretty-format "^26.0.1" - -jest-message-util@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.0.1.tgz#07af1b42fc450b4cc8e90e4c9cef11b33ce9b0ac" - integrity sha512-CbK8uQREZ8umUfo8+zgIfEt+W7HAHjQCoRaNs4WxKGhAYBGwEyvxuK81FXa7VeB9pwDEXeeKOB2qcsNVCAvB7Q== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.0.1" - "@types/stack-utils" "^1.0.1" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.2" - slash "^3.0.0" - stack-utils "^2.0.2" - -jest-mock@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-26.0.1.tgz#7fd1517ed4955397cf1620a771dc2d61fad8fd40" - integrity sha512-MpYTBqycuPYSY6xKJognV7Ja46/TeRbAZept987Zp+tuJvMN0YBWyyhG9mXyYQaU3SBI0TUlSaO5L3p49agw7Q== - dependencies: - "@jest/types" "^26.0.1" - -jest-pnp-resolver@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" - integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== - -jest-regex-util@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== - -jest-resolve-dependencies@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.0.1.tgz#607ba7ccc32151d185a477cff45bf33bce417f0b" - integrity sha512-9d5/RS/ft0vB/qy7jct/qAhzJsr6fRQJyGAFigK3XD4hf9kIbEH5gks4t4Z7kyMRhowU6HWm/o8ILqhaHdSqLw== - dependencies: - "@jest/types" "^26.0.1" - jest-regex-util "^26.0.0" - jest-snapshot "^26.0.1" - -jest-resolve@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.0.1.tgz#21d1ee06f9ea270a343a8893051aeed940cde736" - integrity sha512-6jWxk0IKZkPIVTvq6s72RH735P8f9eCJW3IM5CX/SJFeKq1p2cZx0U49wf/SdMlhaB/anann5J2nCJj6HrbezQ== - dependencies: - "@jest/types" "^26.0.1" - chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.1" - jest-util "^26.0.1" - read-pkg-up "^7.0.1" - resolve "^1.17.0" - slash "^3.0.0" - -jest-runner@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-26.0.1.tgz#ea03584b7ae4bacfb7e533d680a575a49ae35d50" - integrity sha512-CApm0g81b49Znm4cZekYQK67zY7kkB4umOlI2Dx5CwKAzdgw75EN+ozBHRvxBzwo1ZLYZ07TFxkaPm+1t4d8jA== - dependencies: - "@jest/console" "^26.0.1" - "@jest/environment" "^26.0.1" - "@jest/test-result" "^26.0.1" - "@jest/types" "^26.0.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-config "^26.0.1" - jest-docblock "^26.0.0" - jest-haste-map "^26.0.1" - jest-jasmine2 "^26.0.1" - jest-leak-detector "^26.0.1" - jest-message-util "^26.0.1" - jest-resolve "^26.0.1" - jest-runtime "^26.0.1" - jest-util "^26.0.1" - jest-worker "^26.0.0" - source-map-support "^0.5.6" - throat "^5.0.0" - -jest-runtime@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.0.1.tgz#a121a6321235987d294168e282d52b364d7d3f89" - integrity sha512-Ci2QhYFmANg5qaXWf78T2Pfo6GtmIBn2rRaLnklRyEucmPccmCKvS9JPljcmtVamsdMmkyNkVFb9pBTD6si9Lw== - dependencies: - "@jest/console" "^26.0.1" - "@jest/environment" "^26.0.1" - "@jest/fake-timers" "^26.0.1" - "@jest/globals" "^26.0.1" - "@jest/source-map" "^26.0.0" - "@jest/test-result" "^26.0.1" - "@jest/transform" "^26.0.1" - "@jest/types" "^26.0.1" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.4" - jest-config "^26.0.1" - jest-haste-map "^26.0.1" - jest-message-util "^26.0.1" - jest-mock "^26.0.1" - jest-regex-util "^26.0.0" - jest-resolve "^26.0.1" - jest-snapshot "^26.0.1" - jest-util "^26.0.1" - jest-validate "^26.0.1" - slash "^3.0.0" - strip-bom "^4.0.0" - yargs "^15.3.1" - -jest-serializer@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.0.0.tgz#f6c521ddb976943b93e662c0d4d79245abec72a3" - integrity sha512-sQGXLdEGWFAE4wIJ2ZaIDb+ikETlUirEOBsLXdoBbeLhTHkZUJwgk3+M8eyFizhM6le43PDCCKPA1hzkSDo4cQ== - dependencies: - graceful-fs "^4.2.4" - -jest-snapshot@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.0.1.tgz#1baa942bd83d47b837a84af7fcf5fd4a236da399" - integrity sha512-jxd+cF7+LL+a80qh6TAnTLUZHyQoWwEHSUFJjkw35u3Gx+BZUNuXhYvDqHXr62UQPnWo2P6fvQlLjsU93UKyxA== - dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^26.0.1" - "@types/prettier" "^2.0.0" - chalk "^4.0.0" - expect "^26.0.1" - graceful-fs "^4.2.4" - jest-diff "^26.0.1" - jest-get-type "^26.0.0" - jest-matcher-utils "^26.0.1" - jest-message-util "^26.0.1" - jest-resolve "^26.0.1" - make-dir "^3.0.0" - natural-compare "^1.4.0" - pretty-format "^26.0.1" - semver "^7.3.2" - -jest-util@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-26.0.1.tgz#72c4c51177b695fdd795ca072a6f94e3d7cef00a" - integrity sha512-byQ3n7ad1BO/WyFkYvlWQHTsomB6GIewBh8tlGtusiylAlaxQ1UpS0XYH0ngOyhZuHVLN79Qvl6/pMiDMSSG1g== - dependencies: - "@jest/types" "^26.0.1" - chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^2.0.0" - make-dir "^3.0.0" - -jest-validate@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-26.0.1.tgz#a62987e1da5b7f724130f904725e22f4e5b2e23c" - integrity sha512-u0xRc+rbmov/VqXnX3DlkxD74rHI/CfS5xaV2VpeaVySjbb1JioNVOyly5b56q2l9ZKe7bVG5qWmjfctkQb0bA== - dependencies: - "@jest/types" "^26.0.1" - camelcase "^6.0.0" - chalk "^4.0.0" - jest-get-type "^26.0.0" - leven "^3.1.0" - pretty-format "^26.0.1" - -jest-watcher@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.0.1.tgz#5b5e3ebbdf10c240e22a98af66d645631afda770" - integrity sha512-pdZPydsS8475f89kGswaNsN3rhP6lnC3/QDCppP7bg1L9JQz7oU9Mb/5xPETk1RHDCWeqmVC47M4K5RR7ejxFw== - dependencies: - "@jest/test-result" "^26.0.1" - "@jest/types" "^26.0.1" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^26.0.1" - string-length "^4.0.1" - -jest-worker@^25.1.0: - version "25.1.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-25.1.0.tgz#75d038bad6fdf58eba0d2ec1835856c497e3907a" - integrity sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg== - dependencies: - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest-worker@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.0.0.tgz#4920c7714f0a96c6412464718d0c58a3df3fb066" - integrity sha512-pPaYa2+JnwmiZjK9x7p9BoZht+47ecFCDFA/CJxspHzeDvQcfVBLWzCiWyo+EGrSiQMWZtCFo9iSvMZnAAo8vw== - dependencies: - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest/-/jest-26.0.1.tgz#5c51a2e58dff7525b65f169721767173bf832694" - integrity sha512-29Q54kn5Bm7ZGKIuH2JRmnKl85YRigp0o0asTc6Sb6l2ch1DCXIeZTLLFy9ultJvhkTqbswF5DEx4+RlkmCxWg== - dependencies: - "@jest/core" "^26.0.1" - import-local "^3.0.2" - jest-cli "^26.0.1" - -jose@^1.27.1: - version "1.27.1" - resolved "https://registry.npmjs.org/jose/-/jose-1.27.1.tgz#a1de2ecb5b3ae1ae28f0d9d0cc536349ada27ec8" - integrity sha512-VyHM6IJPw0TTGqHVNlPWg16/ASDPAmcChcLqSb3WNBvwWFoWPeFqlmAUCm8/oIG1GjZwAlUDuRKFfycowarcVA== - dependencies: - "@panva/asn1.js" "^1.0.0" - -jpegtran-bin@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-4.0.0.tgz#d00aed809fba7aa6f30817e59eee4ddf198f8f10" - integrity sha512-2cRl1ism+wJUoYAYFt6O/rLBfpXNWG2dUWbgcEkTt5WGMnqI46eEro8T4C5zGROxKRqyKpCBSdHPvt5UYCtxaQ== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.0" - logalot "^2.0.0" - -js-cookie@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" - integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== - -js-file-download@^0.4.1: - version "0.4.12" - resolved "https://registry.npmjs.org/js-file-download/-/js-file-download-0.4.12.tgz#10c70ef362559a5b23cdbdc3bd6f399c3d91d821" - integrity sha512-rML+NkoD08p5Dllpjo0ffy4jRHeY6Zsapvr/W86N7E0yuzAO6qa5X9+xog6zQNlH102J7IXljNY2FtS6Lj3ucg== - -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= - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - 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.1, js-yaml@^3.14.0, js-yaml@^3.8.1, js-yaml@^3.8.3: - version "3.14.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsdom@11.12.0: - version "11.12.0" - resolved "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" - integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== - dependencies: - abab "^2.0.0" - acorn "^5.5.3" - acorn-globals "^4.1.0" - array-equal "^1.0.0" - cssom ">= 0.3.2 < 0.4.0" - cssstyle "^1.0.0" - data-urls "^1.0.0" - domexception "^1.0.1" - escodegen "^1.9.1" - html-encoding-sniffer "^1.0.2" - left-pad "^1.3.0" - nwsapi "^2.0.7" - parse5 "4.0.0" - pn "^1.1.0" - request "^2.87.0" - request-promise-native "^1.0.5" - sax "^1.2.4" - symbol-tree "^3.2.2" - tough-cookie "^2.3.4" - w3c-hr-time "^1.0.1" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.3" - whatwg-mimetype "^2.1.0" - whatwg-url "^6.4.1" - ws "^5.2.0" - xml-name-validator "^3.0.0" - -jsdom@^16.2.2: - version "16.2.2" - resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.2.2.tgz#76f2f7541646beb46a938f5dc476b88705bedf2b" - integrity sha512-pDFQbcYtKBHxRaP55zGXCJWgFHkDAYbKcsXEK/3Icu9nKYZkutUXfLBwbD+09XDutkYSHcgfQLZ0qvpAAm9mvg== - dependencies: - abab "^2.0.3" - acorn "^7.1.1" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.2.0" - data-urls "^2.0.0" - decimal.js "^10.2.0" - domexception "^2.0.1" - escodegen "^1.14.1" - html-encoding-sniffer "^2.0.1" - is-potential-custom-element-name "^1.0.0" - nwsapi "^2.2.0" - parse5 "5.1.1" - request "^2.88.2" - request-promise-native "^1.0.8" - saxes "^5.0.0" - symbol-tree "^3.2.4" - tough-cookie "^3.0.1" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.0.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - ws "^7.2.3" - xml-name-validator "^3.0.0" - -jsdom@^8.1.0: - version "8.5.0" - resolved "https://registry.npmjs.org/jsdom/-/jsdom-8.5.0.tgz#d4d8f5dbf2768635b62a62823b947cf7071ebc98" - integrity sha1-1Nj12/J2hjW2KmKCO5R89wcevJg= - dependencies: - abab "^1.0.0" - acorn "^2.4.0" - acorn-globals "^1.0.4" - array-equal "^1.0.0" - cssom ">= 0.3.0 < 0.4.0" - cssstyle ">= 0.2.34 < 0.3.0" - escodegen "^1.6.1" - iconv-lite "^0.4.13" - nwmatcher ">= 1.3.7 < 2.0.0" - parse5 "^1.5.1" - request "^2.55.0" - sax "^1.1.4" - symbol-tree ">= 3.1.0 < 4.0.0" - tough-cookie "^2.2.0" - webidl-conversions "^3.0.1" - whatwg-url "^2.0.1" - xml-name-validator ">= 2.0.1 < 3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-pointer@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.0.tgz#8e500550a6aac5464a473377da57aa6cc22828d7" - integrity sha1-jlAFUKaqxUZKRzN32leqbMIoKNc= - dependencies: - foreach "^2.0.4" - -json-schema-compare@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz#dd601508335a90c7f4cfadb6b2e397225c908e56" - integrity sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ== - dependencies: - lodash "^4.17.4" - -json-schema-merge-allof@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.6.0.tgz#64d48820fec26b228db837475ce3338936bf59a5" - integrity sha512-LEw4VMQVRceOPLuGRWcxW5orTTiR9ZAtqTAe4rQUjNADTeR81bezBVFa0MqIwp0YmHIM1KkhSjZM7o+IQhaPbQ== - dependencies: - compute-lcm "^1.1.0" - json-schema-compare "^0.2.2" - lodash "^4.17.4" - -json-schema-migrate@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/json-schema-migrate/-/json-schema-migrate-0.2.0.tgz#ba47a5b0072fc72396460e1bd60b44d52178bbc6" - integrity sha1-ukelsAcvxyOWRg4b1gtE1SF4u8Y= - dependencies: - ajv "^5.0.0" - -json-schema-ref-parser@^9.0.6: - version "9.0.6" - resolved "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz#fc89a5e6b853f2abe8c0af30d3874196526adb60" - integrity sha512-z0JGv7rRD3CnJbZY/qCpscyArdtLJhr/wRBmFUdoZ8xMjsFyNdILSprG2degqRLjBjyhZHAEBpGOxniO9rKTxA== - dependencies: - "@apidevtools/json-schema-ref-parser" "9.0.6" - -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-schema@^0.2.5: - version "0.2.5" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.5.tgz#97997f50972dd0500214e208c407efa4b5d7063b" - integrity sha512-gWJOWYFrhQ8j7pVm0EM8Slr+EPVq1Phf6lvzvD/WCeqkrx/f2xBI0xOsRRS9xCn3I4vKtP519dvs3TP09r24wQ== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json-to-ast@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/json-to-ast/-/json-to-ast-2.1.0.tgz#041a9fcd03c0845036acb670d29f425cea4faaf9" - integrity sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ== - dependencies: - code-error-fragment "0.0.230" - grapheme-splitter "^1.0.4" - -json3@^3.3.2: - version "3.3.3" - resolved "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - -json5@2.x, json5@^2.1.0, json5@^2.1.1, json5@^2.1.2: - version "2.1.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" - integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== - dependencies: - universalify "^1.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= - -jsonpointer@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" - integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk= - -jspdf-autotable@3.5.3: - version "3.5.3" - resolved "https://registry.npmjs.org/jspdf-autotable/-/jspdf-autotable-3.5.3.tgz#2f73adb07f340e7dbf22950e3e6c8bf853991479" - integrity sha512-K+cNWW3x6w0R/1B5m6PYOm6v8CTTDXy/g32lZouc7SuC6zhvzMN2dauhk6dDYxPD0pky0oyPIJFwSJ/tV8PAeg== - -jspdf@1.5.3: - version "1.5.3" - resolved "https://registry.npmjs.org/jspdf/-/jspdf-1.5.3.tgz#5a12c011479defabef5735de55c913060ed219f2" - integrity sha512-J9X76xnncMw+wIqb15HeWfPMqPwYxSpPY8yWPJ7rAZN/ZDzFkjCSZObryCyUe8zbrVRNiuCnIeQteCzMn7GnWw== - dependencies: - canvg "1.5.3" - file-saver eligrey/FileSaver.js#1.3.8 - html2canvas "1.0.0-alpha.12" - omggif "1.0.7" - promise-polyfill "8.1.0" - stackblur-canvas "2.2.0" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -jss-plugin-camel-case@^10.0.3: - version "10.1.1" - resolved "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.1.1.tgz#8e73ecc4f1d0f8dfe4dd31f6f9f2782588970e78" - integrity sha512-MDIaw8FeD5uFz1seQBKz4pnvDLnj5vIKV5hXSVdMaAVq13xR6SVTVWkIV/keyTs5txxTvzGJ9hXoxgd1WTUlBw== - dependencies: - "@babel/runtime" "^7.3.1" - hyphenate-style-name "^1.0.3" - jss "10.1.1" - -jss-plugin-default-unit@^10.0.3: - version "10.1.1" - resolved "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.1.1.tgz#2df86016dfe73085eead843f5794e3890e9c5c47" - integrity sha512-UkeVCA/b3QEA4k0nIKS4uWXDCNmV73WLHdh2oDGZZc3GsQtlOCuiH3EkB/qI60v2MiCq356/SYWsDXt21yjwdg== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.1.1" - -jss-plugin-global@^10.0.3: - version "10.1.1" - resolved "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.1.1.tgz#36b0d6d9facb74dfd99590643708a89260747d14" - integrity sha512-VBG3wRyi3Z8S4kMhm8rZV6caYBegsk+QnQZSVmrWw6GVOT/Z4FA7eyMu5SdkorDlG/HVpHh91oFN56O4R9m2VA== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.1.1" - -jss-plugin-nested@^10.0.3: - version "10.1.1" - resolved "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.1.1.tgz#5c3de2b8bda344de1ebcef3a4fd30870a29a8a8c" - integrity sha512-ozEu7ZBSVrMYxSDplPX3H82XHNQk2DQEJ9TEyo7OVTPJ1hEieqjDFiOQOxXEj9z3PMqkylnUbvWIZRDKCFYw5Q== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.1.1" - tiny-warning "^1.0.2" - -jss-plugin-props-sort@^10.0.3: - version "10.1.1" - resolved "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.1.1.tgz#34bddcbfaf9430ec8ccdf92729f03bb10caf1785" - integrity sha512-g/joK3eTDZB4pkqpZB38257yD4LXB0X15jxtZAGbUzcKAVUHPl9Jb47Y7lYmiGsShiV4YmQRqG1p2DHMYoK91g== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.1.1" - -jss-plugin-rule-value-function@^10.0.3: - version "10.1.1" - resolved "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.1.1.tgz#be00dac6fc394aaddbcef5860b9eca6224d96382" - integrity sha512-ClV1lvJ3laU9la1CUzaDugEcwnpjPTuJ0yGy2YtcU+gG/w9HMInD5vEv7xKAz53Bk4WiJm5uLOElSEshHyhKNw== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.1.1" - -jss-plugin-vendor-prefixer@^10.0.3: - version "10.1.1" - resolved "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.1.1.tgz#8348b20749f790beebab3b6a8f7075b07c2cfcfd" - integrity sha512-09MZpQ6onQrhaVSF6GHC4iYifQ7+4YC/tAP6D4ZWeZotvCMq1mHLqNKRIaqQ2lkgANjlEot2JnVi1ktu4+L4pw== - dependencies: - "@babel/runtime" "^7.3.1" - css-vendor "^2.0.7" - jss "10.1.1" - -jss@10.1.1, jss@^10.0.3: - version "10.1.1" - resolved "https://registry.npmjs.org/jss/-/jss-10.1.1.tgz#450b27d53761af3e500b43130a54cdbe157ea332" - integrity sha512-Xz3qgRUFlxbWk1czCZibUJqhVPObrZHxY3FPsjCXhDld4NOj1BgM14Ir5hVm+Qr6OLqVljjGvoMcCdXNOAbdkQ== - dependencies: - "@babel/runtime" "^7.3.1" - csstype "^2.6.5" - is-in-browser "^1.1.3" - tiny-warning "^1.0.2" - -jsx-ast-utils@^2.2.1, jsx-ast-utils@^2.2.3: - version "2.2.3" - resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz#8a9364e402448a3ce7f14d357738310d9248054f" - integrity sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA== - dependencies: - array-includes "^3.0.3" - object.assign "^4.1.0" - -jwt-decode@2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/jwt-decode/-/jwt-decode-2.2.0.tgz#7d86bd56679f58ce6a84704a657dd392bba81a79" - integrity sha1-fYa9VmefWM5qhHBKZX3TkruoGnk= - -keyv@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" - integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== - dependencies: - json-buffer "3.0.0" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -keyv@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.0.1.tgz#9fe703cb4a94d6d11729d320af033307efd02ee6" - integrity sha512-xz6Jv6oNkbhrFCvCP7HQa8AaII8y8LRpoSm661NOKLr4uHuBwhX4epXrPQgF3+xdJnN4Esm5X0xwY4bOlALOtw== - dependencies: - json-buffer "3.0.1" - -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" - integrity sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU= - dependencies: - is-buffer "^1.0.2" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= - optionalDependencies: - graceful-fs "^4.1.9" - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -knex@^0.21.1: - version "0.21.5" - resolved "https://registry.npmjs.org/knex/-/knex-0.21.5.tgz#c4be1958488f348aed3510aa4b7115639ee1bd01" - integrity sha512-cQj7F2D/fu03eTr6ZzYCYKdB9w7fPYlvTiU/f2OeXay52Pq5PwD+NAkcf40WDnppt/4/4KukROwlMOaE7WArcA== - dependencies: - colorette "1.2.1" - commander "^5.1.0" - debug "4.1.1" - esm "^3.2.25" - getopts "2.2.5" - inherits "~2.0.4" - interpret "^2.2.0" - liftoff "3.1.0" - lodash "^4.17.20" - mkdirp "^1.0.4" - pg-connection-string "2.3.0" - tarn "^3.0.0" - tildify "2.0.0" - uuid "^7.0.3" - v8flags "^3.2.0" - -kuler@1.0.x: - version "1.0.1" - resolved "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz#ef7c784f36c9fb6e16dd3150d152677b2b0228a6" - integrity sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ== - dependencies: - colornames "^1.1.1" - -latest-version@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - -lazy-ass@1.6.0, lazy-ass@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" - integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= - -lazy-cache@^0.2.3: - version "0.2.7" - resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" - integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U= - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= - -lazy-cache@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264" - integrity sha1-uRkKT5EzVGlIQIWfio9whNiCImQ= - dependencies: - set-getter "^0.1.0" - -lazy-universal-dotenv@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz#a6c8938414bca426ab8c9463940da451a911db38" - integrity sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ== - dependencies: - "@babel/runtime" "^7.5.0" - app-root-dir "^1.0.2" - core-js "^3.0.4" - dotenv "^8.0.0" - dotenv-expand "^5.1.0" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= - dependencies: - invert-kv "^1.0.0" - -left-pad@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" - integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== - -lerna@^3.20.2: - version "3.22.1" - resolved "https://registry.npmjs.org/lerna/-/lerna-3.22.1.tgz#82027ac3da9c627fd8bf02ccfeff806a98e65b62" - integrity sha512-vk1lfVRFm+UuEFA7wkLKeSF7Iz13W+N/vFd48aW2yuS7Kv0RbNm2/qcDPV863056LMfkRlsEe+QYOw3palj5Lg== - dependencies: - "@lerna/add" "3.21.0" - "@lerna/bootstrap" "3.21.0" - "@lerna/changed" "3.21.0" - "@lerna/clean" "3.21.0" - "@lerna/cli" "3.18.5" - "@lerna/create" "3.22.0" - "@lerna/diff" "3.21.0" - "@lerna/exec" "3.21.0" - "@lerna/import" "3.22.0" - "@lerna/info" "3.21.0" - "@lerna/init" "3.21.0" - "@lerna/link" "3.21.0" - "@lerna/list" "3.21.0" - "@lerna/publish" "3.22.1" - "@lerna/run" "3.21.0" - "@lerna/version" "3.22.1" - import-local "^2.0.0" - npmlog "^4.1.2" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== - dependencies: - leven "^3.1.0" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -liftoff@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3" - integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog== - dependencies: - extend "^3.0.0" - findup-sync "^3.0.0" - fined "^1.0.1" - flagged-respawn "^1.0.0" - is-plain-object "^2.0.4" - object.map "^1.0.0" - rechoir "^0.6.2" - resolve "^1.1.7" - -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -linkify-it@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" - integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== - dependencies: - uc.micro "^1.0.1" - -lint-staged@^10.1.0: - version "10.2.11" - resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-10.2.11.tgz#713c80877f2dc8b609b05bc59020234e766c9720" - integrity sha512-LRRrSogzbixYaZItE2APaS4l2eJMjjf5MbclRZpLJtcQJShcvUzKXsNeZgsLIZ0H0+fg2tL4B59fU9wHIHtFIA== - dependencies: - chalk "^4.0.0" - cli-truncate "2.1.0" - commander "^5.1.0" - cosmiconfig "^6.0.0" - debug "^4.1.1" - dedent "^0.7.0" - enquirer "^2.3.5" - execa "^4.0.1" - listr2 "^2.1.0" - log-symbols "^4.0.0" - micromatch "^4.0.2" - normalize-path "^3.0.0" - please-upgrade-node "^3.2.0" - string-argv "0.3.1" - stringify-object "^3.3.0" - -list-item@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/list-item/-/list-item-1.1.1.tgz#0c65d00e287cb663ccb3cb3849a77e89ec268a56" - integrity sha1-DGXQDih8tmPMs8s4Sad+iewmilY= - dependencies: - expand-range "^1.8.1" - extend-shallow "^2.0.1" - is-number "^2.1.0" - repeat-string "^1.5.2" - -listr-silent-renderer@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" - integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= - -listr-update-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" - integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== - dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - elegant-spinner "^1.0.1" - figures "^1.7.0" - indent-string "^3.0.0" - log-symbols "^1.0.2" - log-update "^2.3.0" - strip-ansi "^3.0.1" - -listr-verbose-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" - integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== - dependencies: - chalk "^2.4.1" - cli-cursor "^2.1.0" - date-fns "^1.27.2" - figures "^2.0.0" - -listr2@^2.1.0: - version "2.1.3" - resolved "https://registry.npmjs.org/listr2/-/listr2-2.1.3.tgz#f527e197de12ad8c488c566921fa2da34cbc67f6" - integrity sha512-6oy3QhrZAlJGrG8oPcRp1hix1zUpb5AvyvZ5je979HCyf48tIj3Hn1TG5+rfyhz30t7HfySH/OIaVbwrI2kruA== - dependencies: - chalk "^4.0.0" - cli-truncate "^2.1.0" - figures "^3.2.0" - indent-string "^4.0.0" - log-update "^4.0.0" - p-map "^4.0.0" - rxjs "^6.5.5" - through "^2.3.8" - -listr@^0.14.3: - version "0.14.3" - resolved "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" - integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== - dependencies: - "@samverschueren/stream-to-observable" "^0.3.0" - is-observable "^1.1.0" - is-promise "^2.1.0" - is-stream "^1.1.0" - listr-silent-renderer "^1.1.1" - listr-update-renderer "^0.5.0" - listr-verbose-renderer "^0.5.0" - p-map "^2.0.0" - rxjs "^6.3.3" - -livereload-js@^2.3.0: - version "2.4.0" - resolved "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" - integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw== - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -load-json-file@^5.3.0: - version "5.3.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" - integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== - dependencies: - graceful-fs "^4.1.15" - parse-json "^4.0.0" - pify "^4.0.1" - strip-bom "^3.0.0" - type-fest "^0.3.0" - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -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@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: - version "1.4.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash-es@^4.17.11: - version "4.17.15" - resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" - integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ== - -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= - -lodash.assign@^4.1.0, lodash.assign@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" - integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= - -lodash.assignin@^4.0.9: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" - integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= - -lodash.bind@^4.1.4: - version "4.2.1" - resolved "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" - integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= - -lodash.chunk@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc" - integrity sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw= - -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= - -lodash.debounce@^4, lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - -lodash.defaults@^4.0.1: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= - -lodash.filter@^4.4.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" - integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= - -lodash.flatten@^4.2.0, lodash.flatten@^4.4.0: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= - -lodash.flattendeep@^4.0.0: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= - -lodash.foreach@^4.3.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" - integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= - -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= - -lodash.ismatch@^4.4.0: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" - integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= - -lodash.map@^4.4.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= - -lodash.memoize@4.x, lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.merge@^4.4.0: - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.once@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" - integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= - -lodash.padstart@^4.6.1: - version "4.6.1" - resolved "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" - integrity sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs= - -lodash.pick@^4.2.1: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= - -lodash.reduce@^4.4.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" - integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= - -lodash.reject@^4.4.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" - integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= - -lodash.set@^4.3.2: - version "4.3.2" - resolved "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" - integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM= - -lodash.some@^4.4.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - -lodash.template@^4.0.2, lodash.template@^4.4.0, lodash.template@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - -lodash.throttle@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" - integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= - -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= - -lodash.without@^4.4.0: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" - integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= - -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.2.1, lodash@~4.17.10: - version "4.17.20" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== - -log-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" - integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= - dependencies: - chalk "^1.0.0" - -log-symbols@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" - integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== - dependencies: - chalk "^2.4.2" - -log-symbols@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== - dependencies: - chalk "^4.0.0" - -log-update@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" - integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= - dependencies: - ansi-escapes "^3.0.0" - cli-cursor "^2.0.0" - wrap-ansi "^3.0.1" - -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - -logalot@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552" - integrity sha1-X46MkNME7fElMJUaVVSruMXj9VI= - dependencies: - figures "^1.3.5" - squeak "^1.0.0" - -logform@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz#957155ebeb67a13164069825ce67ddb5bb2dd360" - integrity sha512-+lZh4OpERDBLqjiwDLpAWNQu6KMjnlXH2ByZwCuSqVPJletw0kTWJf5CgSNAUKn1KUkv3m2cUz/LK8zyEy7wzQ== - dependencies: - colors "^1.2.1" - fast-safe-stringify "^2.0.4" - fecha "^2.3.3" - ms "^2.1.1" - triple-beam "^1.3.0" - -loglevel@^1.6.7, loglevel@^1.6.8: - 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== - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - -longest@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lower-case@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz#39eeb36e396115cc05e29422eaea9e692c9408c7" - integrity sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ== - dependencies: - tslib "^1.10.0" - -lowercase-keys@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lowlight@1.12.1: - version "1.12.1" - resolved "https://registry.npmjs.org/lowlight/-/lowlight-1.12.1.tgz#014acf8dd73a370e02ff1cc61debcde3bb1681eb" - integrity sha512-OqaVxMGIESnawn+TU/QMV5BJLbUghUfjDWPAtFqDYDmDtr4FnB+op8xM+pR7nKlauHNUHXGt0VgWatFB8voS5w== - dependencies: - fault "^1.0.2" - highlight.js "~9.15.0" - -lowlight@^1.14.0: - version "1.14.0" - resolved "https://registry.npmjs.org/lowlight/-/lowlight-1.14.0.tgz#83ebc143fec0f9e6c0d3deffe01be129ce56b108" - integrity sha512-N2E7zTM7r1CwbzwspPxJvmjAbxljCPThTFawEX2Z7+P3NGrrvY54u8kyU16IY4qWfoVIxY8SYCS8jTkuG7TqYA== - dependencies: - fault "^1.0.0" - highlight.js "~10.1.0" - -lowlight@~1.11.0: - version "1.11.0" - resolved "https://registry.npmjs.org/lowlight/-/lowlight-1.11.0.tgz#1304d83005126d4e8b1dc0f07981e9b689ec2efc" - integrity sha512-xrGGN6XLL7MbTMdPD6NfWPwY43SNkjf/d0mecSx/CW36fUZTjRHEq0/Cdug3TWKtRXLWi7iMl1eP0olYxj/a4A== - dependencies: - fault "^1.0.2" - highlight.js "~9.13.0" - -lpad-align@^1.0.1: - version "1.1.2" - resolved "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz#21f600ac1c3095c3c6e497ee67271ee08481fe9e" - integrity sha1-IfYArBwwlcPG5JfuZyce4ISB/p4= - dependencies: - get-stdin "^4.0.1" - indent-string "^2.1.0" - longest "^1.0.0" - meow "^3.3.0" - -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.0.0, lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-queue@0.1: - version "0.1.0" - resolved "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" - integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= - dependencies: - es5-ext "~0.10.2" - -macos-release@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" - integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== - -magic-string@^0.25.2: - version "0.25.7" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== - dependencies: - sourcemap-codec "^1.4.4" - -make-dir@^1.0.0, make-dir@^1.2.0: - version "1.3.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0, make-dir@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" - integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== - dependencies: - semver "^6.0.0" - -make-error@1.x, make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -make-fetch-happen@^5.0.0: - version "5.0.2" - resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz#aa8387104f2687edca01c8687ee45013d02d19bd" - integrity sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag== - dependencies: - agentkeepalive "^3.4.1" - cacache "^12.0.0" - http-cache-semantics "^3.8.1" - http-proxy-agent "^2.1.0" - https-proxy-agent "^2.2.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - node-fetch-npm "^2.0.2" - promise-retry "^1.1.1" - socks-proxy-agent "^4.0.0" - ssri "^6.0.0" - -make-iterator@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" - integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== - dependencies: - kind-of "^6.0.2" - -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= - dependencies: - tmpl "1.0.x" - -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" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" - integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= - -map-obj@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" - integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== - -map-or-similar@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08" - integrity sha1-beJlMXSt+12e3DPGnT6Sobdvrwg= - -map-stream@~0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" - integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - 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" - integrity sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg== - dependencies: - argparse "^1.0.7" - entities "~2.0.0" - linkify-it "^2.0.0" - mdurl "^1.0.1" - uc.micro "^1.0.5" - -markdown-it@^9.1.0: - version "9.1.0" - resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-9.1.0.tgz#df9601c168568704d554b1fff9af0c5b561168d9" - integrity sha512-xHKG4C8iPriyfu/jc2hsCC045fKrMQ0VexX2F1FGYiRxDxqMB2aAhF8WauJ3fltn2kb90moGBkiiEdooGIg55w== - dependencies: - argparse "^1.0.7" - entities "~1.1.1" - linkify-it "^2.0.0" - mdurl "^1.0.1" - uc.micro "^1.0.5" - -markdown-link@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz#32c5c65199a6457316322d1e4229d13407c8c7cf" - integrity sha1-MsXGUZmmRXMWMi0eQinRNAfIx88= - -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-toc@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/markdown-toc/-/markdown-toc-1.2.0.tgz#44a15606844490314afc0444483f9e7b1122c339" - integrity sha512-eOsq7EGd3asV0oBfmyqngeEIhrbkc7XVP63OwcJBIhH2EpG2PzFcbZdhy1jutXSlRBBVMNXHvMtSr5LAxSUvUg== - dependencies: - concat-stream "^1.5.2" - diacritics-map "^0.1.0" - gray-matter "^2.1.0" - lazy-cache "^2.0.2" - list-item "^1.1.1" - markdown-link "^0.1.1" - minimist "^1.2.0" - mixin-deep "^1.1.3" - object.pick "^1.2.0" - remarkable "^1.7.1" - repeat-string "^1.6.1" - strip-color "^0.1.0" - -material-table@1.68.0: - version "1.68.0" - resolved "https://registry.npmjs.org/material-table/-/material-table-1.68.0.tgz#275c3d9a885c40ae4bc5a7461c00e877f92397b9" - integrity sha512-dyJJaVsS3m+i6sn71AvYcVdA1P9X1XiUOM2PekfvEeeMtkdQb66oChGkk77ndYi3Ja6j4DovGVNrgeVLwXLZiw== - dependencies: - "@date-io/date-fns" "^1.1.0" - "@material-ui/pickers" "^3.2.2" - classnames "^2.2.6" - date-fns "^2.0.0-alpha.27" - debounce "^1.2.0" - fast-deep-equal "2.0.1" - filefy "0.1.10" - jspdf "1.5.3" - jspdf-autotable "3.5.3" - prop-types "^15.6.2" - react-beautiful-dnd "^13.0.0" - react-double-scrollbar "0.0.15" - -math-random@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" - integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mdast-add-list-metadata@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz#95e73640ce2fc1fa2dcb7ec443d09e2bfe7db4cf" - integrity sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA== - dependencies: - unist-util-visit-parents "1.1.2" - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -mdn-data@2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" - integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== - -mdurl@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -memoize-one@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0" - integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA== - -memoizee@^0.4.12: - version "0.4.14" - resolved "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57" - integrity sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg== - dependencies: - d "1" - es5-ext "^0.10.45" - es6-weak-map "^2.0.2" - event-emitter "^0.3.5" - is-promise "^2.1" - lru-queue "0.1" - next-tick "1" - timers-ext "^0.1.5" - -memoizerific@^1.11.3: - version "1.11.3" - resolved "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz#7c87a4646444c32d75438570905f2dbd1b1a805a" - integrity sha1-fIekZGREwy11Q4VwkF8tvRsagFo= - dependencies: - map-or-similar "^1.5.0" - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -meow@^3.3.0: - version "3.7.0" - resolved "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -meow@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" - integrity sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A== - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist "^1.1.3" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - -meow@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" - integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - yargs-parser "^10.0.0" - -merge-deep@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz#f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2" - integrity sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA== - dependencies: - arr-union "^3.1.0" - clone-deep "^0.2.4" - kind-of "^3.0.2" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.2.3, merge2@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" - integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== - -merge@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" - integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== - -methods@^1.0.0, methods@^1.1.1, methods@^1.1.2, methods@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -metric-lcs@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/metric-lcs/-/metric-lcs-0.1.2.tgz#87913f149410e39c7c5a19037512814eaf155e11" - integrity sha512-+TZ5dUDPKPJaU/rscTzxyN8ZkX7eAVLAiQU/e+YINleXPv03SCmJShaMT1If1liTH8OcmWXZs0CmzCBRBLcMpA== - -microevent.ts@~0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" - integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== - -micromatch@4.x, micromatch@^4.0.0, micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== - dependencies: - braces "^3.0.1" - picomatch "^2.0.5" - -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.44.0, "mime-db@>= 1.43.0 < 2", mime-db@^1.28.0: - version "1.44.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== - -mime-db@~1.33.0: - version "1.33.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" - integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== - -mime-types@2.1.18: - version "2.1.18" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" - integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== - dependencies: - mime-db "~1.33.0" - -mime-types@^2.1.12, mime-types@^2.1.26, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.27" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== - dependencies: - mime-db "1.44.0" - -mime@1.6.0, mime@^1.4.1: - version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.3.1, mime@^2.4.4: - version "2.4.4" - resolved "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" - integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -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" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mimic-response@^2.0.0, mimic-response@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" - integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" - -min-indent@^1.0.0: - version "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.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.7.0.tgz#5ba8290fbb4179a43dd27cca444ba150bee743a0" - integrity sha512-RQIw6+7utTYn8DBGsf/LpRgZCJMpZt+kuawJ/fju0KiOL6nAaTBNmCJwS7HtwSCXfS47gCkmtBFS7HdsquhdxQ== - dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -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== - dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: - version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist-options@^3.0.1: - version "3.0.2" - resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" - integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - -minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz#3dcb6bb4a546e32969c7ad710f2c79a86abba93a" - integrity sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA== - dependencies: - minipass "^3.0.0" - -minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5" - integrity sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w== - dependencies: - yallist "^4.0.0" - -minizlib@^1.2.1: - version "1.3.3" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - -minizlib@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz#fd52c645301ef09a63a2c209697c294c6ce02cf3" - integrity sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mitt@^1.1.2: - version "1.2.0" - resolved "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz#cb24e6569c806e31bd4e3995787fe38a04fdf90d" - integrity sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw== - -mixin-deep@^1.1.3, mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mixin-object@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" - integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4= - dependencies: - for-in "^0.1.3" - is-extendable "^0.1.1" - -mkdirp-classic@^0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz#54c441ce4c96cd7790e10b41a87aa51068ecab2b" - integrity sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g== - -mkdirp-promise@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" - integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= - dependencies: - mkdirp "*" - -mkdirp@*, mkdirp@1.x, mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: - version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -modify-values@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" - integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== - -moment@^2.25.3, moment@^2.26.0, moment@^2.27.0: - version "2.27.0" - resolved "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d" - integrity sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ== - -monaco-editor@^0.20.0: - version "0.20.0" - resolved "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.20.0.tgz#5d5009343a550124426cb4d965a4d27a348b4dea" - integrity sha512-hkvf4EtPJRMQlPC3UbMoRs0vTAFAYdzFQ+gpMb8A+9znae1c43q8Mab9iVsgTcg/4PNiLGGn3SlDIa8uvK1FIQ== - -monaco-graphql@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/monaco-graphql/-/monaco-graphql-0.2.0.tgz#be6bd165b6cbdc624fde6c108fe9ee32f50f2e80" - integrity sha512-IwpbJvrNlFxq6xjnQQ8eC72ep+q2vfiUaHBNkfqe314CXYnUCcXYfoMBfR5EuLAXRBOTf4CKl6BCN1/9eHrq7A== - dependencies: - graphql-language-service "^3.0.0" - graphql-language-service-utils "^2.4.0" - monaco-editor "^0.20.0" - -morgan@^1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" - integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== - dependencies: - basic-auth "~2.0.1" - debug "2.6.9" - depd "~2.0.0" - on-finished "~2.3.0" - on-headers "~1.0.2" - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@^2.0.0, ms@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -msw@^0.20.5: - version "0.20.5" - resolved "https://registry.npmjs.org/msw/-/msw-0.20.5.tgz#b6141080c0d8b17c451d9ca36c28cc47b4ac487a" - integrity sha512-hmEsey5BbVicMGt7aOh/GZ9ltga5N3tK6NiJXnbfCkAGKgnAVnjASr3i7Z+sWlZyY5uuMUFyLCEcqrlXxC6qIA== - dependencies: - "@open-draft/until" "^1.0.3" - "@types/cookie" "^0.4.0" - chalk "^4.1.0" - cookie "^0.4.1" - graphql "^15.3.0" - headers-utils "^1.2.0" - node-fetch "^2.6.0" - node-match-path "^0.4.4" - node-request-interceptor "^0.3.5" - statuses "^2.0.0" - yargs "^15.4.1" - -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -multimatch@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" - integrity sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA== - dependencies: - array-differ "^2.0.3" - array-union "^1.0.2" - arrify "^1.0.1" - minimatch "^3.0.4" - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - -mute-stream@0.0.8, mute-stream@~0.0.4: - version "0.0.8" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -mz@^2.5.0, mz@^2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - -nan@^2.12.1, nan@^2.14.0: - version "2.14.1" - resolved "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== - -nano-css@^5.1.0, nano-css@^5.2.1: - version "5.3.0" - resolved "https://registry.npmjs.org/nano-css/-/nano-css-5.3.0.tgz#9d3cd29788d48b6a07f52aa4aec7cf4da427b6b5" - integrity sha512-uM/9NGK9/E9/sTpbIZ/bQ9xOLOIHZwrrb/CRlbDHBU/GFS7Gshl24v/WJhwsVViWkpOXUmiZ66XO7fSB4Wd92Q== - dependencies: - css-tree "^1.0.0-alpha.28" - csstype "^2.5.5" - fastest-stable-stringify "^1.0.1" - inline-style-prefixer "^4.0.0" - rtl-css-js "^1.9.0" - sourcemap-codec "^1.4.1" - stacktrace-js "^2.0.0" - stylis "3.5.0" - -nanoid@^2.1.0: - version "2.1.11" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" - integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -needle@^2.2.1: - version "2.4.1" - resolved "https://registry.npmjs.org/needle/-/needle-2.4.1.tgz#14af48732463d7475696f937626b1b993247a56a" - integrity sha512-x/gi6ijr4B7fwl6WYL9FwlCvRQKGlUNvnceho8wxkwXqN8jvVmmmATTmZPRRG7b/yC1eode26C2HO9jl78Du9g== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== - -next-tick@1: - version "1.1.0" - resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" - integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== - -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -no-case@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz#c21b434c1ffe48b39087e86cfb4d2582e9df18f8" - integrity sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw== - dependencies: - lower-case "^2.0.1" - tslib "^1.10.0" - -node-dir@^0.1.10: - version "0.1.17" - resolved "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" - integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU= - dependencies: - minimatch "^3.0.2" - -node-fetch-npm@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.3.tgz#efae4aacb0500444e449a51fc1467397775ebc38" - integrity sha512-DgwoKEsqLnFZtk3ap7GWBHcHwnUhsNmQqEDcdjfQ8GofLEFJ081NAd4Uin3R7RFZBWVJCwHISw1oaEqPgSLloA== - dependencies: - encoding "^0.1.11" - json-parse-better-errors "^1.0.0" - safe-buffer "^5.1.1" - -node-fetch@2.6.0, node-fetch@^2.1.2, node-fetch@^2.2.0, node-fetch@^2.3.0, node-fetch@^2.5.0, node-fetch@^2.6.0: - version "2.6.0" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" - integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== - -node-forge@0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" - integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== - -node-forge@^0.7.0: - version "0.7.6" - resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac" - integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw== - -node-gyp@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz#972654af4e5dd0cd2a19081b4b46fe0442ba6f45" - integrity sha512-2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA== - dependencies: - glob "^7.0.3" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request "^2.87.0" - rimraf "2" - semver "~5.3.0" - tar "^4.4.8" - which "1" - -node-gyp@^5.0.2: - version "5.1.0" - resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.0.tgz#8e31260a7af4a2e2f994b0673d4e0b3866156332" - integrity sha512-OUTryc5bt/P8zVgNUmC6xdXiDJxLMAW8cF5tLQOT9E5sOQj+UeQxnnPy74K3CLCa/SOjjBlbuzDLR8ANwA+wmw== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.2" - mkdirp "^0.5.1" - nopt "^4.0.1" - npmlog "^4.1.2" - request "^2.88.0" - rimraf "^2.6.3" - semver "^5.7.1" - tar "^4.4.12" - which "^1.3.1" - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-match-path@^0.4.4: - version "0.4.4" - resolved "https://registry.npmjs.org/node-match-path/-/node-match-path-0.4.4.tgz#516a10926093c0cc6f237d020685b593b19baebb" - integrity sha512-pBq9gp7TG0r0VXuy/oeZmQsjBSnYQo7G886Ly/B3azRwZuEtHCY155dzmfoKWcDPGgyfIGD8WKVC7h3+6y7yTg== - -node-modules-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" - integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= - -node-notifier@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-7.0.0.tgz#513bc42f2aa3a49fce1980a7ff375957c71f718a" - integrity sha512-y8ThJESxsHcak81PGpzWwQKxzk+5YtP3IxR8AYdpXQ1IB6FmcVzFdZXrkPin49F/DKUCfeeiziB8ptY9npzGuA== - dependencies: - growly "^1.3.0" - is-wsl "^2.1.1" - semver "^7.2.1" - shellwords "^0.1.1" - uuid "^7.0.3" - which "^2.0.2" - -node-pre-gyp@^0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054" - integrity sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-pre-gyp@^0.13.0: - version "0.13.0" - resolved "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.13.0.tgz#df9ab7b68dd6498137717838e4f92a33fc9daa42" - integrity sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-releases@^1.1.29, node-releases@^1.1.52, node-releases@^1.1.58: - version "1.1.60" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" - integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== - -node-request-interceptor@^0.3.5: - version "0.3.5" - resolved "https://registry.npmjs.org/node-request-interceptor/-/node-request-interceptor-0.3.5.tgz#4b26159617829c9a70643012c0fdc3ae4c78ae43" - integrity sha512-lBwA3v00hxCW2xhhZHZ1ab5JMHoAnzgtbeaUXqTufRh7mpAG93ZOChj0btMDB1VZd+CKhCbtigsxCjmerKa2+w== - dependencies: - "@open-draft/until" "^1.0.3" - debug "^4.1.1" - headers-utils "^1.2.0" - -nodegit-promise@~4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/nodegit-promise/-/nodegit-promise-4.0.0.tgz#5722b184f2df7327161064a791d2e842c9167b34" - integrity sha1-VyKxhPLfcycWEGSnkdLoQskWezQ= - dependencies: - asap "~2.0.3" - -nodegit@0.26.5: - version "0.26.5" - resolved "https://registry.npmjs.org/nodegit/-/nodegit-0.26.5.tgz#1534d8aaa52de7acfbbe18de28df2075de86f7d2" - integrity sha512-l9l2zhcJ0V7FYzPdXIsuJcXN8UnLuhQgM+377HJfCYE/eupL/OWtMVvUOq42F9dRsgC3bAYH9j2Xbwr0lpYVZQ== - dependencies: - fs-extra "^7.0.0" - json5 "^2.1.0" - lodash "^4.17.14" - nan "^2.14.0" - node-gyp "^4.0.0" - node-pre-gyp "^0.13.0" - promisify-node "~0.3.0" - ramda "^0.25.0" - request-promise-native "^1.0.5" - tar-fs "^1.16.3" - -nodegit@^0.27.0: - version "0.27.0" - resolved "https://registry.npmjs.org/nodegit/-/nodegit-0.27.0.tgz#4e8cc236f60e1c97324a5acff99056fe116a6ebe" - integrity sha512-E9K4gPjWiA0b3Tx5lfWCzG7Cvodi2idl3V5UD2fZrOrHikIfrN7Fc2kWLtMUqqomyoToYJLeIC8IV7xb1CYRLA== - dependencies: - fs-extra "^7.0.0" - got "^10.7.0" - json5 "^2.1.0" - lodash "^4.17.14" - nan "^2.14.0" - node-gyp "^4.0.0" - node-pre-gyp "^0.13.0" - ramda "^0.25.0" - tar-fs "^1.16.3" - -nodemon@^2.0.2: - version "2.0.4" - resolved "https://registry.npmjs.org/nodemon/-/nodemon-2.0.4.tgz#55b09319eb488d6394aa9818148c0c2d1c04c416" - integrity sha512-Ltced+hIfTmaS28Zjv1BM552oQ3dbwPqI4+zI0SLgq+wpJhSyqgYude/aZa/3i31VCQWMfXJVxvu86abcam3uQ== - dependencies: - chokidar "^3.2.2" - debug "^3.2.6" - ignore-by-default "^1.0.1" - minimatch "^3.0.4" - pstree.remy "^1.1.7" - semver "^5.7.1" - supports-color "^5.5.0" - touch "^3.1.0" - undefsafe "^2.0.2" - update-notifier "^4.0.0" - -"nopt@2 || 3": - version "3.0.6" - resolved "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= - dependencies: - abbrev "1" - -nopt@^4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" - integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== - dependencies: - abbrev "1" - osenv "^0.1.4" - -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= - dependencies: - abbrev "1" - -normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "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@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.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" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== - -npm-bundled@^1.0.1: - version "1.1.1" - resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" - integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== - dependencies: - npm-normalize-package-bin "^1.0.1" - -npm-conf@^1.1.0: - version "1.1.3" - resolved "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== - dependencies: - config-chain "^1.1.11" - pify "^3.0.0" - -npm-lifecycle@^3.1.2: - version "3.1.4" - resolved "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.4.tgz#de6975c7d8df65f5150db110b57cce498b0b604c" - integrity sha512-tgs1PaucZwkxECGKhC/stbEgFyc3TGh2TJcg2CDr6jbvQRdteHNhmMeljRzpe4wgFAXQADoy1cSqqi7mtiAa5A== - dependencies: - byline "^5.0.0" - graceful-fs "^4.1.15" - node-gyp "^5.0.2" - resolve-from "^4.0.0" - slide "^1.1.6" - uid-number "0.0.6" - umask "^1.1.0" - which "^1.3.1" - -npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" - integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== - -"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: - version "6.1.1" - resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" - integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== - dependencies: - hosted-git-info "^2.7.1" - osenv "^0.1.5" - semver "^5.6.0" - validate-npm-package-name "^3.0.0" - -npm-packlist@^1.1.6, npm-packlist@^1.4.4: - version "1.4.8" - resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" - integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-normalize-package-bin "^1.0.1" - -npm-pick-manifest@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz#f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7" - integrity sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw== - dependencies: - figgy-pudding "^3.5.1" - npm-package-arg "^6.0.0" - semver "^5.4.1" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.2, npmlog@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -nth-check@^1.0.2, nth-check@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -"nwmatcher@>= 1.3.7 < 2.0.0": - version "1.4.4" - resolved "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e" - integrity sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ== - -nwsapi@^2.0.7, nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -oauth@0.9.x: - version "0.9.15" - resolved "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" - integrity sha1-vR/vr2hslrdUda7VGWQS/2DPucE= - -object-assign@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" - integrity sha1-ejs9DpgGPUP0wD8uiubNUahog6A= - -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== - -object-is@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" - integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-path@^0.11.4: - version "0.11.4" - resolved "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" - integrity sha1-NwrnUvvzfePqcKhhwju6iRVpGUk= - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.defaults@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" - integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= - dependencies: - array-each "^1.0.1" - array-slice "^1.0.0" - for-own "^1.0.0" - isobject "^3.0.0" - -object.entries@^1.1.0, object.entries@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b" - integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - has "^1.0.3" - -"object.fromentries@^2.0.0 || ^1.0.0", object.fromentries@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" - integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - has "^1.0.3" - -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -object.map@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" - integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= - dependencies: - for-own "^1.0.0" - make-iterator "^1.0.0" - -object.pick@^1.2.0, object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0, object.values@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" - integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - has "^1.0.3" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -octokit-pagination-methods@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" - integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== - -omggif@1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/omggif/-/omggif-1.0.7.tgz#59d2eecb0263de84635b3feb887c0c9973f1e49d" - integrity sha1-WdLuywJj3oRjWz/riHwMmXPx5J0= - -on-finished@^2.3.0, on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -one-time@0.0.4: - version "0.0.4" - resolved "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e" - integrity sha1-+M33eISCb+Tf+T46nMN7HkSAdC4= - -onetime@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" - integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== - dependencies: - mimic-fn "^2.1.0" - -open@^6.3.0: - version "6.4.0" - resolved "https://registry.npmjs.org/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" - integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== - dependencies: - is-wsl "^1.1.0" - -open@^7.0.0, open@^7.0.2: - version "7.0.3" - resolved "https://registry.npmjs.org/open/-/open-7.0.3.tgz#db551a1af9c7ab4c7af664139930826138531c48" - integrity sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA== - 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" - integrity sha512-05+GvwMagTY7GxoDQoWJfmAUFlxfebciiEzqKmu4iq6+MqBEn62AMUkn0CTxyKhnUGIaR2KXjTeslxIeJwVIOw== - dependencies: - json-pointer "^0.6.0" - -opencollective-postinstall@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" - integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== - -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" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -optipng-bin@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/optipng-bin/-/optipng-bin-5.1.0.tgz#a7c7ab600a3ab5a177dae2f94c2d800aa386b5a9" - integrity sha512-9baoqZTNNmXQjq/PQTWEXbVV3AMO2sI/GaaqZJZ8SExfAzjijeAP7FEeT+TtyumSw7gr0PZtSUYB/Ke7iHQVKA== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.0" - logalot "^2.0.0" - -ora@*, ora@^4.0.3: - version "4.0.4" - resolved "https://registry.npmjs.org/ora/-/ora-4.0.4.tgz#e8da697cc5b6a47266655bf68e0fb588d29a545d" - integrity sha512-77iGeVU1cIdRhgFzCK8aw1fbtT1B/iZAvWjS+l/o1x0RShMgxHUZaD2yDpWsNCPwXg9z1ZA78Kbdvr8kBmG/Ww== - dependencies: - chalk "^3.0.0" - cli-cursor "^3.1.0" - cli-spinners "^2.2.0" - is-interactive "^1.0.0" - log-symbols "^3.0.0" - mute-stream "0.0.8" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -original@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -os-filter-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz#1c0b62d5f3a2442749a2d139e6dddee6e81d8d16" - integrity sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg== - dependencies: - arch "^2.1.0" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= - dependencies: - lcid "^1.0.0" - -os-name@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" - integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== - dependencies: - macos-release "^2.2.0" - windows-release "^3.1.0" - -os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@0, osenv@^0.1.4, osenv@^0.1.5: - version "0.1.5" - resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -ospath@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" - integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= - -p-cancelable@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" - integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== - -p-cancelable@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" - integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-cancelable@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" - integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== - -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@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz#8e6b4f4f65c72bc5b6fe28b75eda874f96a4a085" - integrity sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU= - dependencies: - p-timeout "^1.1.1" - -p-event@^2.1.0: - version "2.3.1" - resolved "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz#596279ef169ab2c3e0cae88c1cfbb08079993ef6" - integrity sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA== - dependencies: - p-timeout "^2.0.1" - -p-event@^4.0.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== - dependencies: - p-timeout "^3.1.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-finally@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" - integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== - -p-is-promise@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" - integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= - -p-limit@3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" - integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== - dependencies: - p-try "^2.0.0" - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.2: - version "2.2.2" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" - integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-map-series@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" - integrity sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco= - dependencies: - p-reduce "^1.0.0" - -p-map@^2.0.0, p-map@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== - dependencies: - aggregate-error "^3.0.0" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-pipe@^1.1.0, p-pipe@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9" - integrity sha1-SxoROZoRUgpneQ7loMHViB1r7+k= - -p-queue@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/p-queue/-/p-queue-4.0.0.tgz#ed0eee8798927ed6f2c2f5f5b77fdb2061a5d346" - integrity sha512-3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg== - dependencies: - eventemitter3 "^3.1.0" - -p-queue@^6.3.0: - version "6.4.0" - resolved "https://registry.npmjs.org/p-queue/-/p-queue-6.4.0.tgz#5050b379393ea1814d6f9613a654f687d92c0466" - integrity sha512-X7ddxxiQ+bLR/CUt3/BVKrGcJDNxBr0pEEFKHHB6vTPWNUhgDv36GpIH18RmGM3YGPpBT+JWGjDDqsVGuF0ERw== - dependencies: - eventemitter3 "^4.0.0" - p-timeout "^3.1.0" - -p-reduce@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" - integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= - -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== - dependencies: - retry "^0.12.0" - -p-timeout@^1.1.1: - version "1.2.1" - resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" - integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= - dependencies: - p-finally "^1.0.0" - -p-timeout@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" - integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== - dependencies: - p-finally "^1.0.0" - -p-timeout@^3.1.0: - version "3.2.0" - resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" - integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== - dependencies: - p-finally "^1.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -p-waterfall@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-waterfall/-/p-waterfall-1.0.0.tgz#7ed94b3ceb3332782353af6aae11aa9fc235bb00" - integrity sha1-ftlLPOszMngjU69qrhGqn8I1uwA= - dependencies: - p-reduce "^1.0.0" - -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -packet-reader@0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/packet-reader/-/packet-reader-0.3.1.tgz#cd62e60af8d7fea8a705ec4ff990871c46871f27" - integrity sha1-zWLmCvjX/qinBexP+ZCHHEaHHyc= - -packet-reader@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" - integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -papi@^0.29.0: - version "0.29.1" - resolved "https://registry.npmjs.org/papi/-/papi-0.29.1.tgz#7373e2c527f5117d61fd2a0e6c6b1dd72bf7f180" - integrity sha512-Y9ipSMfWuuVFO3zY9PlxOmEg+bQ7CeJ28sa9/a0veYNynLf9fwjR3+3fld5otEy7okUaEOUuCHVH62MyTmACXQ== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz#4be41f8399eff621c56eebb829a5e451d9801238" - integrity sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA== - dependencies: - dot-case "^3.0.3" - tslib "^1.10.0" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-asn1@^5.0.0: - version "5.1.5" - resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-entities@^1.1.0, parse-entities@^1.1.2: - version "1.2.2" - resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" - integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - -parse-entities@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" - integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - -parse-filepath@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" - integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= - dependencies: - is-absolute "^1.0.0" - map-cache "^0.2.0" - path-root "^0.1.1" - -parse-github-repo-url@^1.3.0: - version "1.4.1" - resolved "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" - integrity sha1-nn2LslKmy2ukJZUGC3v23z28H1A= - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" - integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - lines-and-columns "^1.1.6" - -parse-package-name@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/parse-package-name/-/parse-package-name-0.1.0.tgz#3f44dd838feb4c2be4bf318bae4477d7706bade4" - integrity sha1-P0Tdg4/rTCvkvzGLrkR313BrreQ= - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - -parse-path@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/parse-path/-/parse-path-4.0.1.tgz#0ec769704949778cb3b8eda5e994c32073a1adff" - integrity sha512-d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA== - dependencies: - is-ssh "^1.3.0" - protocols "^1.4.0" - -parse-url@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/parse-url/-/parse-url-5.0.1.tgz#99c4084fc11be14141efa41b3d117a96fcb9527f" - integrity sha512-flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg== - dependencies: - is-ssh "^1.3.0" - normalize-url "^3.3.0" - parse-path "^4.0.0" - protocols "^1.4.0" - -parse5@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" - integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== - -parse5@5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" - integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== - -parse5@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" - integrity sha1-m387DeMr543CQBsXVzzK8Pb1nZQ= - -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" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascal-case@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz#5ac1975133ed619281e88920973d2cd1f279de5f" - integrity sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA== - dependencies: - no-case "^3.0.3" - tslib "^1.10.0" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -passport-github2@^0.1.12: - version "0.1.12" - resolved "https://registry.npmjs.org/passport-github2/-/passport-github2-0.1.12.tgz#a72ebff4fa52a35bc2c71122dcf470d1116f772c" - integrity sha512-3nPUCc7ttF/3HSP/k9sAXjz3SkGv5Nki84I05kSQPo01Jqq1NzJACgMblCK0fGcv9pKCG/KXU3AJRDGLqHLoIw== - dependencies: - passport-oauth2 "1.x.x" - -passport-gitlab2@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/passport-gitlab2/-/passport-gitlab2-5.0.0.tgz#ea37e5285321c026a02671e87469cac28cce9b69" - integrity sha512-cXQMgM6JQx9wHVh7JLH30D8fplfwjsDwRz+zS0pqC8JS+4bNmc1J04NGp5g2M4yfwylH9kQRrMN98GxMw7q7cg== - dependencies: - passport-oauth2 "^1.4.0" - -passport-google-oauth20@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/passport-google-oauth20/-/passport-google-oauth20-2.0.0.tgz#0d241b2d21ebd3dc7f2b60669ec4d587e3a674ef" - integrity sha512-KSk6IJ15RoxuGq7D1UKK/8qKhNfzbLeLrG3gkLZ7p4A6DBCcv7xpyQwuXtWdpyR0+E0mwkpjY1VfPOhxQrKzdQ== - dependencies: - passport-oauth2 "1.x.x" - -passport-microsoft@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/passport-microsoft/-/passport-microsoft-0.1.0.tgz#dc72c1a38b294d74f4dc55fe93f52e25cb9aa5b4" - integrity sha512-0giBDgE1fnR5X84zJZkQ11hnKVrzEgViwRO6RGsormK9zTxFQmN/UHMTDbIpvhk989VqALewB6Pk1R5vNr3GHw== - dependencies: - passport-oauth2 "1.2.0" - pkginfo "0.2.x" - -passport-oauth1@1.x.x: - version "1.1.0" - resolved "https://registry.npmjs.org/passport-oauth1/-/passport-oauth1-1.1.0.tgz#a7de988a211f9cf4687377130ea74df32730c918" - integrity sha1-p96YiiEfnPRoc3cTDqdN8ycwyRg= - dependencies: - oauth "0.9.x" - passport-strategy "1.x.x" - utils-merge "1.x.x" - -passport-oauth2@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.2.0.tgz#49613a3eca85c7a1e65bf1019e2b6b80a10c8ac2" - integrity sha1-SWE6PsqFx6HmW/EBnitrgKEMisI= - dependencies: - oauth "0.9.x" - passport-strategy "1.x.x" - uid2 "0.0.x" - -passport-oauth2@1.x.x, passport-oauth2@^1.4.0, passport-oauth2@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.5.0.tgz#64babbb54ac46a4dcab35e7f266ed5294e3c4108" - integrity sha512-kqBt6vR/5VlCK8iCx1/KpY42kQ+NEHZwsSyt4Y6STiNjU+wWICG1i8ucc1FapXDGO15C5O5VZz7+7vRzrDPXXQ== - dependencies: - base64url "3.x.x" - oauth "0.9.x" - passport-strategy "1.x.x" - uid2 "0.0.x" - utils-merge "1.x.x" - -passport-oauth@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/passport-oauth/-/passport-oauth-1.0.0.tgz#90aff63387540f02089af28cdad39ea7f80d77df" - integrity sha1-kK/2M4dUDwIImvKM2tOep/gNd98= - dependencies: - passport-oauth1 "1.x.x" - passport-oauth2 "1.x.x" - -passport-okta-oauth@^0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/passport-okta-oauth/-/passport-okta-oauth-0.0.1.tgz#c8bcee02af3d56ca79d3cca776f2df7cf15a5748" - integrity sha1-yLzuAq89Vsp508yndvLffPFaV0g= - dependencies: - passport-oauth "1.0.0" - pkginfo "0.2.x" - uid2 "0.0.3" - -passport-saml@^1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/passport-saml/-/passport-saml-1.3.3.tgz#cbea1a2b21ff32b3bc4bfd84dc39c3a370df9935" - integrity sha512-54ecY/A6UEsyCehJws6a+J6THvwtYnGl9cnAUxx5DjsuKgZrDs0tSy58K4hCk1XG/LOcdQSF1TR3xlRXgTULhA== - dependencies: - debug "^3.1.0" - passport-strategy "*" - q "^1.5.0" - xml-crypto "^1.4.0" - xml-encryption "^1.0.0" - xml2js "0.4.x" - xmlbuilder "^11.0.0" - xmldom "0.1.x" - -passport-strategy@*, passport-strategy@1.x.x: - version "1.0.0" - resolved "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" - integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ= - -passport@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/passport/-/passport-0.4.1.tgz#941446a21cb92fc688d97a0861c38ce9f738f270" - integrity sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg== - dependencies: - passport-strategy "1.x.x" - pause "0.0.1" - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@1.0.2, path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-root-regex@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" - integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= - -path-root@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" - integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= - dependencies: - path-root-regex "^0.1.0" - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-to-regexp@2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" - integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pause-stream@0.0.11: - version "0.0.11" - resolved "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= - dependencies: - through "~2.3" - -pause@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" - integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10= - -pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -performance-now@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" - integrity sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU= - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -pg-connection-string@0.1.3, pg-connection-string@^0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7" - integrity sha1-2hhHsglA5C7hSSvq9l1J2RskXfc= - -pg-connection-string@2.3.0, pg-connection-string@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.3.0.tgz#c13fcb84c298d0bfa9ba12b40dd6c23d946f55d6" - integrity sha512-ukMTJXLI7/hZIwTW7hGMZJ0Lj0S2XQBCJ4Shv4y1zgQ/vqVea+FLhzywvPj0ujSuofu+yA4MYHGZPTsgjBgJ+w== - -pg-int8@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" - integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== - -pg-pool@1.*: - version "1.8.0" - resolved "https://registry.npmjs.org/pg-pool/-/pg-pool-1.8.0.tgz#f7ec73824c37a03f076f51bfdf70e340147c4f37" - integrity sha1-9+xzgkw3oD8Hb1G/33DjQBR8Tzc= - dependencies: - generic-pool "2.4.3" - object-assign "4.1.0" - -pg-pool@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.1.tgz#5f4afc0f58063659aeefa952d36af49fa28b30e0" - integrity sha512-BQDPWUeKenVrMMDN9opfns/kZo4lxmSWhIqo+cSAF7+lfi9ZclQbr9vfnlNaPr8wYF3UYjm5X0yPAhbcgqNOdA== - -pg-protocol@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.2.5.tgz#28a1492cde11646ff2d2d06bdee42a3ba05f126c" - integrity sha512-1uYCckkuTfzz/FCefvavRywkowa6M5FohNMF5OjKrqo9PSR8gYc8poVmwwYQaBxhmQdBjhtP514eXy9/Us2xKg== - -pg-types@1.*: - version "1.13.0" - resolved "https://registry.npmjs.org/pg-types/-/pg-types-1.13.0.tgz#75f490b8a8abf75f1386ef5ec4455ecf6b345c63" - integrity sha512-lfKli0Gkl/+za/+b6lzENajczwZHc7D5kiUCZfgm914jipD2kIOIvEkAhZ8GrW3/TUoP9w8FHjwpPObBye5KQQ== - dependencies: - pg-int8 "1.0.1" - postgres-array "~1.0.0" - postgres-bytea "~1.0.0" - postgres-date "~1.0.0" - postgres-interval "^1.1.0" - -pg-types@^2.1.0: - version "2.2.0" - resolved "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" - integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== - dependencies: - pg-int8 "1.0.1" - postgres-array "~2.0.0" - postgres-bytea "~1.0.0" - postgres-date "~1.0.4" - postgres-interval "^1.1.0" - -pg@^6.1.0: - version "6.4.2" - resolved "https://registry.npmjs.org/pg/-/pg-6.4.2.tgz#c364011060eac7a507a2ae063eb857ece910e27f" - integrity sha1-w2QBEGDqx6UHoq4GPrhX7OkQ4n8= - dependencies: - buffer-writer "1.0.1" - js-string-escape "1.0.1" - packet-reader "0.3.1" - pg-connection-string "0.1.3" - pg-pool "1.*" - pg-types "1.*" - pgpass "1.*" - semver "4.3.2" - -pg@^8.3.0: - version "8.3.0" - resolved "https://registry.npmjs.org/pg/-/pg-8.3.0.tgz#941383300d38eef51ecb88a0188cec441ab64d81" - integrity sha512-jQPKWHWxbI09s/Z9aUvoTbvGgoj98AU7FDCcQ7kdejupn/TcNpx56v2gaOTzXkzOajmOEJEdi9eTh9cA2RVAjQ== - dependencies: - buffer-writer "2.0.0" - packet-reader "1.0.0" - pg-connection-string "^2.3.0" - pg-pool "^3.2.1" - pg-protocol "^1.2.5" - pg-types "^2.1.0" - pgpass "1.x" - semver "4.3.2" - -pgpass@1.*, pgpass@1.x: - version "1.0.2" - resolved "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306" - integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY= - dependencies: - split "^1.0.0" - -pgtools@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/pgtools/-/pgtools-0.3.0.tgz#ee7decf4183ada28299c63df71e1e73c95b5bc53" - integrity sha512-8NxDCJ8xJ6hOp9hVNZqxi+TZl7hM1Jc8pQyj8DlAbyaWnk5OsGwf3gB/UyDODdOguiim9QzbzPsslp//apO+Uw== - dependencies: - bluebird "^3.3.5" - pg "^6.1.0" - pg-connection-string "^0.1.3" - yargs "^5.0.0" - -picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2: - version "2.2.2" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pify@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" - integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pirates@^4.0.0, pirates@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" - integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== - dependencies: - node-modules-regexp "^1.0.0" - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0, pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pkg-up@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" - -pkg-up@3.1.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== - dependencies: - find-up "^3.0.0" - -pkginfo@0.2.x: - version "0.2.3" - resolved "https://registry.npmjs.org/pkginfo/-/pkginfo-0.2.3.tgz#7239c42a5ef6c30b8f328439d9b9ff71042490f8" - integrity sha1-cjnEKl72wwuPMoQ52bn/cQQkkPg= - -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - -pn@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" - integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== - -pnp-webpack-plugin@1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.5.0.tgz#62a1cd3068f46d564bb33c56eb250e4d586676eb" - integrity sha512-jd9olUr9D7do+RN8Wspzhpxhgp1n6Vd0NtQ4SFkmIACZoEL1nkyAdW9Ygrinjec0vgDcWjscFQQ1gDW8rsfKTg== - dependencies: - ts-pnp "^1.1.2" - -polished@^3.3.1, 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" - -popper.js@^1.14.1, popper.js@^1.14.4, popper.js@^1.14.7: - version "1.16.1" - resolved "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" - integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== - -portfinder@^1.0.25, portfinder@^1.0.26: - version "1.0.28" - resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-calc@^7.0.1: - version "7.0.2" - resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz#504efcd008ca0273120568b0792b16cdcde8aac1" - integrity sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - 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== - dependencies: - postcss "^7.0.26" - -postcss-load-config@^2.0.0, postcss-load-config@^2.1.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-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== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" - integrity sha1-thTJcgvmgW6u41+zpfqh26agXds= - dependencies: - postcss "^6.0.1" - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-local-by-default@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" - integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-local-by-default@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz#e8a6561be914aaf3c052876377524ca90dbb7915" - integrity sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ== - dependencies: - icss-utils "^4.1.1" - postcss "^7.0.16" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.0" - -postcss-modules-scope@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" - integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-values@1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" - integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^6.0.1" - -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== - dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" - -postcss-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/postcss-modules/-/postcss-modules-2.0.0.tgz#473d0d7326651d8408585c2a154115d5cb36cce0" - integrity sha512-eqp+Bva+U2cwQO7dECJ8/V+X+uH1HduNeITB0CPPFAu6d/8LKQ32/j+p9rQ2YL1QytVcrNU0X+fBqgGmQIA1Rw== - dependencies: - css-modules-loader-core "^1.1.0" - generic-names "^2.0.1" - lodash.camelcase "^4.3.0" - postcss "^7.0.1" - string-hash "^1.1.1" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" - integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-svgo@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" - integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== - dependencies: - is-svg "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0: - version "3.3.1" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - -"postcss@5 - 7", postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.23, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.32" - resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" - integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz#000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2" - integrity sha1-AA29H47vIXqjaLmiEsX8QLKo8/I= - dependencies: - chalk "^1.1.3" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@^6.0.1: - version "6.0.23" - resolved "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -postgres-array@~1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/postgres-array/-/postgres-array-1.0.3.tgz#c561fc3b266b21451fc6555384f4986d78ec80f5" - integrity sha512-5wClXrAP0+78mcsNX3/ithQ5exKvCyK5lr5NEEEeGwwM6NJdQgzIJBVxLvRW+huFpX92F2QnZ5CcokH0VhK2qQ== - -postgres-array@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" - integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== - -postgres-bytea@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" - integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU= - -postgres-date@~1.0.0, postgres-date@~1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.5.tgz#710b27de5f27d550f6e80b5d34f7ba189213c2ee" - integrity sha512-pdau6GRPERdAYUQwkBnGKxEfPyhVZXG/JiS44iZWiNdSOWE09N2lUgN6yshuq6fVSon4Pm0VMXd1srUUkLe9iA== - -postgres-interval@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" - integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== - dependencies: - xtend "^4.0.0" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prelude-ls@~1.1.2: - version "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, prepend-http@^1.0.1: - 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" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -prettier@^1.16.4: - version "1.19.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== - -prettier@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" - integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg== - -pretty-bytes@^5.3.0: - version "5.3.0" - resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2" - integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg== - -pretty-error@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" - integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= - dependencies: - renderkid "^2.0.1" - utila "~0.4" - -pretty-format@^24.3.0: - version "24.9.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" - integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== - dependencies: - "@jest/types" "^24.9.0" - ansi-regex "^4.0.0" - ansi-styles "^3.2.0" - react-is "^16.8.4" - -pretty-format@^25.1.0, pretty-format@^25.2.1, pretty-format@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" - integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== - dependencies: - "@jest/types" "^25.5.0" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^16.12.0" - -pretty-format@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.0.1.tgz#a4fe54fe428ad2fd3413ca6bbd1ec8c2e277e197" - integrity sha512-SWxz6MbupT3ZSlL0Po4WF/KujhQaVehijR2blyRDCzk9e45EaYMVhMBn49fnRuHxtkSpXTes1GxNpVmH86Bxfw== - dependencies: - "@jest/types" "^26.0.1" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^16.12.0" - -pretty-hrtime@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" - integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= - -prismjs@^1.17.1, prismjs@^1.21.0, prismjs@^1.8.4, prismjs@~1.21.0: - version "1.21.0" - resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz#36c086ec36b45319ec4218ee164c110f9fc015a3" - integrity sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw== - optionalDependencies: - clipboard "^2.0.0" - -prismjs@~1.17.0: - version "1.17.1" - resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.17.1.tgz#e669fcbd4cdd873c35102881c33b14d0d68519be" - integrity sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q== - optionalDependencies: - clipboard "^2.0.0" - -private@^0.1.8, private@~0.1.5: - version "0.1.8" - resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -prom-client@^12.0.0: - version "12.0.0" - resolved "https://registry.npmjs.org/prom-client/-/prom-client-12.0.0.tgz#9689379b19bd3f6ab88a9866124db9da3d76c6ed" - integrity sha512-JbzzHnw0VDwCvoqf8y1WDtq4wSBAbthMB1pcVI/0lzdqHGJI3KBJDXle70XK+c7Iv93Gihqo0a5LlOn+g8+DrQ== - dependencies: - tdigest "^0.1.1" - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -promise-polyfill@8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.0.tgz#30059da54d1358ce905ac581f287e184aedf995d" - integrity sha512-OzSf6gcCUQ01byV4BgwyUCswlaQQ6gzXc23aLQWhicvfX9kfsUiUhgt3CCQej8jDnl8/PhGF31JdHX2/MzF3WA== - -promise-polyfill@^8.1.3: - version "8.1.3" - resolved "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.3.tgz#8c99b3cf53f3a91c68226ffde7bde81d7f904116" - integrity sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g== - -promise-retry@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" - integrity sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0= - dependencies: - err-code "^1.0.0" - retry "^0.10.0" - -promise.allsettled@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz#d66f78fbb600e83e863d893e98b3d4376a9c47c9" - integrity sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg== - dependencies: - array.prototype.map "^1.0.1" - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - iterate-value "^1.0.0" - -promise.prototype.finally@^3.1.0: - version "3.1.2" - resolved "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.2.tgz#b8af89160c9c673cefe3b4c4435b53cfd0287067" - integrity sha512-A2HuJWl2opDH0EafgdjwEw7HysI8ff/n4lW4QEVBCUXFk9QeGecBWv0Deph0UmLe3tTNYegz8MOjsVuE6SMoJA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.0" - function-bind "^1.1.1" - -promise.series@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" - integrity sha1-LMfr6Vn8OmYZwEq029yeRS2GS70= - -promise@^8.0.3: - version "8.1.0" - resolved "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" - integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q== - dependencies: - asap "~2.0.6" - -promisify-node@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/promisify-node/-/promisify-node-0.3.0.tgz#b4b55acf90faa7d2b8b90ca396899086c03060cf" - integrity sha1-tLVaz5D6p9K4uQyjlomQhsAwYM8= - dependencies: - nodegit-promise "~4.0.0" - -prompts@^2.0.1: - version "2.3.2" - resolved "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" - integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.4" - -promzard@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" - integrity sha1-JqXW7ox97kyxIggwWs+5O6OCqe4= - dependencies: - read "1" - -prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: - version "15.7.2" - resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - -property-expr@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/property-expr/-/property-expr-2.0.2.tgz#fff2a43919135553a3bc2fdd94bdb841965b2330" - integrity sha512-bc/5ggaYZxNkFKj374aLbEDqVADdYaLcFo8XBkishUWbaAdjlphaBFns9TvRA2pUseVL/wMFmui9X3IdNDU37g== - -property-information@^5.0.0: - version "5.4.0" - resolved "https://registry.npmjs.org/property-information/-/property-information-5.4.0.tgz#16e08f13f4e5c4a7be2e4ec431c01c4f8dba869a" - integrity sha512-nmMWAm/3vKFGmmOWOcdLjgq/Hlxa+hsuR/px1Lp/UGEyc5A22A6l78Shc2C0E71sPmAqglni+HrS7L7VJ7AUCA== - 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" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= - -protocols@^1.1.0, protocols@^1.4.0: - version "1.4.7" - resolved "https://registry.npmjs.org/protocols/-/protocols-1.4.7.tgz#95f788a4f0e979b291ffefcf5636ad113d037d32" - integrity sha512-Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg== - -protoduck@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" - integrity sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg== - dependencies: - genfun "^5.0.0" - -proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -ps-tree@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" - integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA== - dependencies: - event-stream "=3.3.4" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -pstree.remy@^1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.7.tgz#c76963a28047ed61542dc361aa26ee55a7fa15f3" - integrity sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" - integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4, punycode@^1.3.2: - version "1.4.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -pupa@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz#dbdc9ff48ffbea4a26a069b6f9f7abb051008726" - integrity sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA== - dependencies: - escape-goat "^2.0.0" - -q@^1.1.2, q@^1.5.0, q@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -qs@^6.4.0, qs@^6.5.1, qs@^6.6.0, qs@^6.9.4: - version "6.9.4" - resolved "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" - integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== - -qs@~6.5.2: - version "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@^5.0.1: - version "5.1.1" - resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-browser@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/querystring-browser/-/querystring-browser-1.0.4.tgz#f2e35881840a819bc7b1bf597faf0979e6622dc6" - integrity sha1-8uNYgYQKgZvHsb9Zf68JeeZiLcY= - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0, querystring@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -querystringify@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" - integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== - -quick-lru@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" - integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= - -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -raf-schd@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.2.tgz#bd44c708188f2e84c810bf55fcea9231bcaed8a0" - integrity sha512-VhlMZmGy6A6hrkJWHLNTGl5gtgMUm+xfGza6wbwnE914yeQ5Ybm18vgM734RZhMgfw4tacUrWseGZlpUrrakEQ== - -raf@^3.1.0, raf@^3.4.1: - version "3.4.1" - resolved "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" - integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== - dependencies: - performance-now "^2.1.0" - -ramda@^0.21.0: - version "0.21.0" - resolved "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" - integrity sha1-oAGr7bP/YQd9T/HVd9RN536NCjU= - -ramda@^0.25.0: - version "0.25.0" - resolved "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" - integrity sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ== - -ramda@^0.26, ramda@~0.26.1: - version "0.26.1" - resolved "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" - integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ== - -ramldt2jsonschema@^1.1.0: - version "1.2.3" - resolved "https://registry.npmjs.org/ramldt2jsonschema/-/ramldt2jsonschema-1.2.3.tgz#8d45a7f306a1169a3bde91cab725d1d6d0ff7d55" - integrity sha512-+wLDAV2NNv9NkfEUOYStaDu/6RYgYXeC1zLtXE+dMU/jDfjpN4iJnBGycDwFTFaIQGosOQhxph7fEX6Mpwxdug== - dependencies: - commander "^5.0.0" - js-yaml "^3.14.0" - json-schema-migrate "^0.2.0" - webapi-parser "^0.5.0" - -randomatic@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" - integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -raw-body@~1.1.0: - version "1.1.7" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" - integrity sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU= - dependencies: - bytes "1" - string_decoder "0.10" - -raw-loader@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz#5e9d399a5a222cc0de18f42c3bc5e49677532b3f" - integrity sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA== - dependencies: - loader-utils "^1.1.0" - schema-utils "^2.0.1" - -raw-loader@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.1.tgz#14e1f726a359b68437e183d5a5b7d33a3eba6933" - integrity sha512-baolhQBSi3iNh1cglJjA0mYzga+wePk7vdEX//1dTFd+v4TsQlQE0jitJSNF1OIP82rdYulH7otaVmdlDaJ64A== - dependencies: - loader-utils "^2.0.0" - schema-utils "^2.6.5" - -rc-progress@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/rc-progress/-/rc-progress-3.0.0.tgz#cea324ce8fc31421cd815d94a4649a8a29f8f8db" - integrity sha512-dQv1KU3o6Vay604FMYMF4S0x4GNXAgXf1tbQ1QoxeIeQt4d5fUeB7Ri82YPu+G+aRvH/AtxYAlEcnxyVZ1/4Hw== - dependencies: - classnames "^2.2.6" - -rc@^1.2.7, rc@^1.2.8: - version "1.2.8" - resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-app-polyfill@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-1.0.6.tgz#890f8d7f2842ce6073f030b117de9130a5f385f0" - integrity sha512-OfBnObtnGgLGfweORmdZbyEz+3dgVePQBb3zipiaDsMHV1NpWm0rDFYIVXFV/AK+x4VIIfWHhrdMIeoTLyRr2g== - dependencies: - core-js "^3.5.0" - object-assign "^4.1.1" - promise "^8.0.3" - raf "^3.4.1" - regenerator-runtime "^0.13.3" - whatwg-fetch "^3.0.0" - -react-beautiful-dnd@^13.0.0: - version "13.0.0" - resolved "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.0.0.tgz#f70cc8ff82b84bc718f8af157c9f95757a6c3b40" - integrity sha512-87It8sN0ineoC3nBW0SbQuTFXM6bUqM62uJGY4BtTf0yzPl8/3+bHMWkgIe0Z6m8e+gJgjWxefGRVfpE3VcdEg== - dependencies: - "@babel/runtime" "^7.8.4" - css-box-model "^1.2.0" - memoize-one "^5.1.1" - raf-schd "^4.0.2" - react-redux "^7.1.1" - redux "^4.0.4" - use-memo-one "^1.1.1" - -react-clientside-effect@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.2.tgz#6212fb0e07b204e714581dd51992603d1accc837" - integrity sha512-nRmoyxeok5PBO6ytPvSjKp9xwXg9xagoTK1mMjwnQxqM9Hd7MNPl+LS1bOSOe+CV2+4fnEquc7H/S8QD3q697A== - dependencies: - "@babel/runtime" "^7.0.0" - -react-copy-to-clipboard@5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.1.tgz#8eae107bb400be73132ed3b6a7b4fb156090208e" - integrity sha512-ELKq31/E3zjFs5rDWNCfFL4NvNFQvGRoJdAKReD/rUPA+xxiLPQmZBZBvy2vgH7V0GE9isIQpT9WXbwIVErYdA== - dependencies: - copy-to-clipboard "^3" - prop-types "^15.5.8" - -react-debounce-input@^3.2.0: - version "3.2.2" - resolved "https://registry.npmjs.org/react-debounce-input/-/react-debounce-input-3.2.2.tgz#d2cc99c1ce47fae89037965f5699edc1b0317197" - integrity sha512-RIBu68Cq/gImKz/2h1cE042REDqyqj3D+7SJ3lnnIpJX0ht9D9PfH7KAnL+SgDz6hvKa9pZS2CnAxlkrLmnQlg== - dependencies: - lodash.debounce "^4" - prop-types "^15.7.2" - -react-dev-utils@^10.2.1: - 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@^9.0.0, react-dev-utils@^9.1.0: - version "9.1.0" - resolved "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.1.0.tgz#3ad2bb8848a32319d760d0a84c56c14bdaae5e81" - integrity sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg== - dependencies: - "@babel/code-frame" "7.5.5" - address "1.1.2" - browserslist "4.7.0" - chalk "2.4.2" - cross-spawn "6.0.5" - detect-port-alt "1.1.6" - escape-string-regexp "1.0.5" - filesize "3.6.1" - find-up "3.0.0" - fork-ts-checker-webpack-plugin "1.5.0" - global-modules "2.0.0" - globby "8.0.2" - gzip-size "5.1.1" - immer "1.10.0" - inquirer "6.5.0" - is-root "2.1.0" - loader-utils "1.2.3" - open "^6.3.0" - pkg-up "2.0.0" - react-error-overlay "^6.0.3" - recursive-readdir "2.2.2" - shell-quote "1.7.2" - sockjs-client "1.4.0" - strip-ansi "5.2.0" - text-table "0.2.0" - -react-docgen@^5.0.0: - version "5.3.0" - resolved "https://registry.npmjs.org/react-docgen/-/react-docgen-5.3.0.tgz#9aabde5e69f1993c8ba839fd9a86696504654589" - integrity sha512-hUrv69k6nxazOuOmdGeOpC/ldiKy7Qj/UFpxaQi0eDMrUFUTIPGtY5HJu7BggSmiyAMfREaESbtBL9UzdQ+hyg== - dependencies: - "@babel/core" "^7.7.5" - "@babel/runtime" "^7.7.6" - ast-types "^0.13.2" - commander "^2.19.0" - doctrine "^3.0.0" - neo-async "^2.6.1" - node-dir "^0.1.10" - strip-indent "^3.0.0" - -react-dom@^16.12.0, react-dom@^16.13.1, react-dom@^16.8.3, react-dom@^16.8.4: - version "16.13.1" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" - -react-double-scrollbar@0.0.15: - version "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== - dependencies: - classnames "^2.2.5" - prop-types "^15.6.0" - -react-error-overlay@^6.0.3, react-error-overlay@^6.0.7: - version "6.0.7" - resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz#1dcfb459ab671d53f660a991513cb2f0a0553108" - integrity sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA== - -react-fast-compare@^2.0.4: - version "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.1.1: - 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-focus-lock@^2.1.0: - version "2.2.1" - resolved "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.2.1.tgz#1d12887416925dc53481914b7cedd39494a3b24a" - integrity sha512-47g0xYcCTZccdzKRGufepY8oZ3W1Qg+2hn6u9SHZ0zUB6uz/4K4xJe7yYFNZ1qT6m+2JDm82F6QgKeBTbjW4PQ== - dependencies: - "@babel/runtime" "^7.0.0" - focus-lock "^0.6.6" - prop-types "^15.6.2" - react-clientside-effect "^1.2.2" - use-callback-ref "^1.2.1" - use-sidecar "^1.0.1" - -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== - dependencies: - "@babel/runtime" "^7.3.4" - invariant "^2.2.4" - prop-types "^15.7.2" - react-fast-compare "^2.0.4" - shallowequal "^1.1.0" - -react-helmet@6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" - integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== - dependencies: - object-assign "^4.1.1" - prop-types "^15.7.2" - react-fast-compare "^3.1.1" - react-side-effect "^2.1.0" - -react-hook-form@^5.7.2: - version "5.7.2" - resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-5.7.2.tgz#a84e259e5d37dd30949af4f79c4dac31101b79ac" - integrity sha512-bJvY348vayIvEUmSK7Fvea/NgqbT2racA2IbnJz/aPlQ3GBtaTeDITH6rtCa6y++obZzG6E3Q8VuoXPir7QYUg== - -react-hot-loader@^4.12.21: - version "4.12.21" - resolved "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.21.tgz#332e830801fb33024b5a147d6b13417f491eb975" - integrity sha512-Ynxa6ROfWUeKWsTHxsrL2KMzujxJVPjs385lmB2t5cHUxdoRPGind9F00tOkdc1l5WBleOF4XEAMILY1KPIIDA== - dependencies: - fast-levenshtein "^2.0.6" - global "^4.3.0" - hoist-non-react-statics "^3.3.0" - loader-utils "^1.1.0" - prop-types "^15.6.1" - react-lifecycles-compat "^3.0.4" - 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.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/react-immutable-proptypes/-/react-immutable-proptypes-2.1.0.tgz#023d6f39bb15c97c071e9e60d00d136eac5fa0b4" - integrity sha1-Aj1vObsVyXwHHp5g0A0TbqxfoLQ= - -react-immutable-pure-component@^1.1.1: - version "1.2.3" - resolved "https://registry.npmjs.org/react-immutable-pure-component/-/react-immutable-pure-component-1.2.3.tgz#fa33638df68cfe9f73ccbee1d5861c17f3053f86" - integrity sha512-kNy2A/fDrSuR8TKwB+4ynmItmp1vgF87tWxxfmadwDYo2J3ANipHqTjDIBvJvJ7libvuh76jIbvmK0krjtKH1g== - optionalDependencies: - "@types/react" "16.4.6" - -react-inspector@^2.3.0: - version "2.3.1" - resolved "https://registry.npmjs.org/react-inspector/-/react-inspector-2.3.1.tgz#f0eb7f520669b545b441af9d38ec6d706e5f649c" - integrity sha512-tUUK7t3KWgZEIUktOYko5Ic/oYwvjEvQUFAGC1UeMeDaQ5za2yZFtItJa2RTwBJB//NxPr000WQK6sEbqC6y0Q== - dependencies: - babel-runtime "^6.26.0" - is-dom "^1.0.9" - prop-types "^15.6.1" - -react-inspector@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/react-inspector/-/react-inspector-4.0.1.tgz#0f888f78ff7daccbc7be5d452b20c96dc6d5fbb8" - integrity sha512-xSiM6CE79JBqSj8Fzd9dWBHv57tLTH7OM57GP3VrE5crzVF3D5Khce9w1Xcw75OAbvrA0Mi2vBneR1OajKmXFg== - dependencies: - "@babel/runtime" "^7.6.3" - is-dom "^1.0.9" - prop-types "^15.6.1" - -react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: - version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-lazylog@^4.5.2: - version "4.5.3" - resolved "https://registry.npmjs.org/react-lazylog/-/react-lazylog-4.5.3.tgz#289e24995b5599e75943556ac63f5e2c04d0001e" - integrity sha512-lyov32A/4BqihgXgtNXTHCajXSXkYHPlIEmV8RbYjHIMxCFSnmtdg4kDCI3vATz7dURtiFTvrw5yonHnrS+NNg== - dependencies: - "@mattiasbuelens/web-streams-polyfill" "^0.2.0" - fetch-readablestream "^0.2.0" - immutable "^3.8.2" - mitt "^1.1.2" - prop-types "^15.6.1" - react-string-replace "^0.4.1" - react-virtualized "^9.21.0" - text-encoding-utf-8 "^1.0.1" - whatwg-fetch "^2.0.4" - -react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== - -react-markdown@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/react-markdown/-/react-markdown-4.3.1.tgz#39f0633b94a027445b86c9811142d05381300f2f" - integrity sha512-HQlWFTbDxTtNY6bjgp3C3uv1h2xcjCSi1zAEzfBW9OwJJvENSYiLXWNXN5hHLsoqai7RnZiiHzcnWdXk2Splzw== - dependencies: - html-to-react "^1.3.4" - mdast-add-list-metadata "1.0.1" - prop-types "^15.7.2" - react-is "^16.8.6" - remark-parse "^5.0.0" - unified "^6.1.5" - unist-util-visit "^1.3.0" - xtend "^4.0.1" - -react-motion@^0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/react-motion/-/react-motion-0.5.2.tgz#0dd3a69e411316567927917c6626551ba0607316" - integrity sha512-9q3YAvHoUiWlP3cK0v+w1N5Z23HXMj4IF4YuvjvWegWqNPfLXsOBE/V7UvQGpXxHFKRQQcNcVQE31g9SB/6qgQ== - dependencies: - performance-now "^0.2.0" - prop-types "^15.5.8" - raf "^3.1.0" - -react-popper-tooltip@^2.8.3: - version "2.10.1" - resolved "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-2.10.1.tgz#e10875f31916297c694d64a677d6f8fa0a48b4d1" - integrity sha512-cib8bKiyYcrIlHo9zXx81G0XvARfL8Jt+xum709MFCgQa3HTqTi4au3iJ9tm7vi7WU7ngnqbpWkMinBOtwo+IQ== - dependencies: - "@babel/runtime" "^7.7.4" - react-popper "^1.3.6" - -react-popper@^1.3.6: - version "1.3.7" - resolved "https://registry.npmjs.org/react-popper/-/react-popper-1.3.7.tgz#f6a3471362ef1f0d10a4963673789de1baca2324" - integrity sha512-nmqYTx7QVjCm3WUZLeuOomna138R1luC4EqkW3hxJUrAe+3eNz3oFCLYdnPwILfn0mX1Ew2c3wctrjlUMYYUww== - dependencies: - "@babel/runtime" "^7.1.2" - create-react-context "^0.3.0" - deep-equal "^1.1.1" - popper.js "^1.14.4" - prop-types "^15.6.1" - typed-styles "^0.0.7" - warning "^4.0.2" - -react-redux@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/react-redux/-/react-redux-5.1.2.tgz#b19cf9e21d694422727bf798e934a916c4080f57" - integrity sha512-Ns1G0XXc8hDyH/OcBHOxNgQx9ayH3SPxBnFCOidGKSle8pKihysQw2rG/PmciUQRoclhVBO8HMhiRmGXnDja9Q== - dependencies: - "@babel/runtime" "^7.1.2" - hoist-non-react-statics "^3.3.0" - invariant "^2.2.4" - loose-envify "^1.1.0" - prop-types "^15.6.1" - react-is "^16.6.0" - react-lifecycles-compat "^3.0.0" - -react-redux@^7.1.1: - version "7.2.0" - resolved "https://registry.npmjs.org/react-redux/-/react-redux-7.2.0.tgz#f970f62192b3981642fec46fd0db18a074fe879d" - integrity sha512-EvCAZYGfOLqwV7gh849xy9/pt55rJXPwmYvI4lilPM5rUT/1NxuuN59ipdBksRVSvz0KInbPnp4IfoXJXCqiDA== - dependencies: - "@babel/runtime" "^7.5.5" - hoist-non-react-statics "^3.3.0" - loose-envify "^1.4.0" - prop-types "^15.7.2" - react-is "^16.9.0" - -react-router-dom@6.0.0-beta.0: - version "6.0.0-beta.0" - resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.0.0-beta.0.tgz#9dcc8555365f22f7fbd09f26b6b82543f3eb97d6" - integrity sha512-36yNNGMT8RB9FRPL9nKJi6HKDkgOakU+o/2hHpSzR6e37gN70MpOU6QQlmif4oAWWBwjyGc3ZNOMFCsFuHUY5w== - dependencies: - prop-types "^15.7.2" - react-router "6.0.0-beta.0" - -react-router@6.0.0-beta.0: - version "6.0.0-beta.0" - resolved "https://registry.npmjs.org/react-router/-/react-router-6.0.0-beta.0.tgz#3e11f39b6ded4412c2fed9e4f989dd4c8156724d" - integrity sha512-VgMdfpVcmFQki/LZuLh8E/MNACekDetz4xqft+a6fBZvvJnVqKbLqebF7hyoawGrV1HcO5tVaUang2Og4W2j1Q== - dependencies: - prop-types "^15.7.2" - -react-side-effect@^2.1.0: - version "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-sparklines@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/react-sparklines/-/react-sparklines-1.7.0.tgz#9b1d97e8c8610095eeb2ad658d2e1fcf91f91a60" - integrity sha512-bJFt9K4c5Z0k44G8KtxIhbG+iyxrKjBZhdW6afP+R7EnIq+iKjbWbEFISrf3WKNFsda+C46XAfnX0StS5fbDcg== - dependencies: - prop-types "^15.5.10" - -react-string-replace@^0.4.1: - version "0.4.4" - resolved "https://registry.npmjs.org/react-string-replace/-/react-string-replace-0.4.4.tgz#24006fbe0db573d5be583133df38b1a735cb4225" - integrity sha512-FAMkhxmDpCsGTwTZg7p/2v+/GTmxAp73so3fbSvlAcBBX36ujiGRNEaM/1u+jiYQrArhns+7eE92g2pi5E5FUA== - dependencies: - lodash "^4.17.4" - -react-syntax-highlighter@=12.2.1: - version "12.2.1" - resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-12.2.1.tgz#14d78352da1c1c3f93c6698b70ec7c706b83493e" - integrity sha512-CTsp0ZWijwKRYFg9xhkWD4DSpQqE4vb2NKVMdPAkomnILSmsNBHE0n5GuI5zB+PU3ySVvXvdt9jo+ViD9XibCA== - dependencies: - "@babel/runtime" "^7.3.1" - highlight.js "~9.15.1" - lowlight "1.12.1" - prismjs "^1.8.4" - refractor "^2.4.1" - -react-syntax-highlighter@^11.0.2: - version "11.0.2" - resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-11.0.2.tgz#4e3f376e752b20d2f54e4c55652fd663149e4029" - integrity sha512-kqmpM2OH5OodInbEADKARwccwSQWBfZi0970l5Jhp4h39q9Q65C4frNcnd6uHE5pR00W8pOWj9HDRntj2G4Rww== - dependencies: - "@babel/runtime" "^7.3.1" - highlight.js "~9.13.0" - lowlight "~1.11.0" - prismjs "^1.8.4" - refractor "^2.4.1" - -react-syntax-highlighter@^13.5.1: - version "13.5.1" - resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.1.tgz#f21737cf6d582474a0f18b06b52613f4349c0e64" - integrity sha512-VVYTnFXF55WMRGdr3QNEzAzcypFZqH45kS7rqh90+AFeNGtui8/gV5AIOIJjwTsuP2UxcO9qvEq94Jq9BYFUhw== - dependencies: - "@babel/runtime" "^7.3.1" - highlight.js "^10.1.1" - lowlight "^1.14.0" - prismjs "^1.21.0" - refractor "^3.1.0" - -react-test-renderer@^16.13.1: - version "16.13.1" - resolved "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1" - integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ== - dependencies: - object-assign "^4.1.1" - prop-types "^15.6.2" - react-is "^16.8.6" - scheduler "^0.19.1" - -react-textarea-autosize@^7.1.0: - version "7.1.2" - resolved "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-7.1.2.tgz#70fdb333ef86bcca72717e25e623e90c336e2cda" - integrity sha512-uH3ORCsCa3C6LHxExExhF4jHoXYCQwE5oECmrRsunlspaDAbS4mGKNlWZqjLfInWtFQcf0o1n1jC/NGXFdUBCg== - dependencies: - "@babel/runtime" "^7.1.2" - prop-types "^15.6.0" - -react-transition-group@^4.0.0, react-transition-group@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.3.0.tgz#fea832e386cf8796c58b61874a3319704f5ce683" - integrity sha512-1qRV1ZuVSdxPlPf4O8t7inxUGpdyO5zG9IoNfJxSO0ImU2A1YWkEQvFPuIPZmMLkg5hYs7vv5mMOyfgSkvAwvw== - dependencies: - "@babel/runtime" "^7.5.5" - dom-helpers "^5.0.1" - loose-envify "^1.4.0" - prop-types "^15.6.2" - -react-universal-interface@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz#5e8d438a01729a4dbbcbeeceb0b86be146fe2b3b" - integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw== - -react-use@^12.2.0: - version "12.13.0" - resolved "https://registry.npmjs.org/react-use/-/react-use-12.13.0.tgz#dfefd8145552841f1c2213c2e79966b505a264ba" - integrity sha512-Kh0m9ezIn9xfRycx4jdAgvsYGstGfjTBO2ecIM3+G0RqrpMxTIL5jjYraHYfUzjGBHf7dUhNYBzm5vw5LItVZA== - dependencies: - "@types/react-wait" "^0.3.0" - copy-to-clipboard "^3.1.0" - nano-css "^5.1.0" - react-fast-compare "^2.0.4" - react-wait "^0.3.0" - resize-observer-polyfill "^1.5.1" - screenfull "^5.0.0" - set-harmonic-interval "^1.0.1" - throttle-debounce "^2.0.1" - ts-easing "^0.2.0" - tslib "^1.10.0" - -react-use@^15.3.3: - version "15.3.3" - resolved "https://registry.npmjs.org/react-use/-/react-use-15.3.3.tgz#f16de7a16286c446388e8bd99680952fc3dc9a95" - integrity sha512-nYb94JbmDCaLZg3sOXmFW8HN+lXWxnl0caspXoYfZG1CON8JfLN9jMOyxRDUpm7dUq7WZ5mIept/ByqBQKJ0wQ== - dependencies: - "@types/js-cookie" "2.2.6" - "@xobotyi/scrollbar-width" "1.9.5" - copy-to-clipboard "^3.2.0" - fast-deep-equal "^3.1.3" - fast-shallow-equal "^1.0.0" - js-cookie "^2.2.1" - nano-css "^5.2.1" - react-universal-interface "^0.6.2" - resize-observer-polyfill "^1.5.1" - screenfull "^5.0.0" - set-harmonic-interval "^1.0.1" - throttle-debounce "^2.1.0" - ts-easing "^0.2.0" - tslib "^2.0.0" - -react-virtualized@^9.21.0: - version "9.21.2" - resolved "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.21.2.tgz#02e6df65c1e020c8dbf574ec4ce971652afca84e" - integrity sha512-oX7I7KYiUM7lVXQzmhtF4Xg/4UA5duSA+/ZcAvdWlTLFCoFYq1SbauJT5gZK9cZS/wdYR6TPGpX/dqzvTqQeBA== - dependencies: - babel-runtime "^6.26.0" - clsx "^1.0.1" - dom-helpers "^5.0.0" - loose-envify "^1.3.0" - prop-types "^15.6.0" - react-lifecycles-compat "^3.0.4" - -react-wait@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/react-wait/-/react-wait-0.3.0.tgz#0cdd4d919012451a5bc3ab0a16d00c6fd9a8c10b" - integrity sha512-kB5x/kMKWcn0uVr9gBdNz21/oGbQwEQnF3P9p6E9yLfJ9DRcKS0fagbgYMFI0YFOoyKDj+2q6Rwax0kTYJF37g== - -react@^16.0.0, react@^16.12.0, react@^16.13.1, react@^16.8.3, react@^16.8.4: - version "16.13.1" - resolved "https://registry.npmjs.org/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - -read-cmd-shim@^1.0.1: - version "1.0.5" - resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz#87e43eba50098ba5a32d0ceb583ab8e43b961c16" - integrity sha512-v5yCqQ/7okKoZZkBQUAfTsQ3sVJtXdNfbPnI5cceppoxEVLYA3k+VtV2omkeo8MS94JCy4fSiUwlRBAwCVRPUA== - dependencies: - graceful-fs "^4.1.2" - -"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13: - version "2.1.1" - resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.1.tgz#16aa66c59e7d4dad6288f179dd9295fd59bb98f1" - integrity sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A== - dependencies: - glob "^7.1.1" - json-parse-better-errors "^1.0.1" - normalize-package-data "^2.0.0" - npm-normalize-package-bin "^1.0.0" - optionalDependencies: - graceful-fs "^4.1.2" - -read-package-tree@^5.1.6: - version "5.3.1" - resolved "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" - integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw== - dependencies: - read-package-json "^2.0.0" - readdir-scoped-modules "^1.0.0" - util-promisify "^2.1.0" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -read-pkg@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" - integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc= - dependencies: - normalize-package-data "^2.3.2" - parse-json "^4.0.0" - pify "^3.0.0" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -read@1, read@~1.0.1: - version "1.0.7" - resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= - dependencies: - mute-stream "~0.0.4" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdir-scoped-modules@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" - integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== - dependencies: - debuglog "^1.0.1" - dezalgo "^1.0.0" - graceful-fs "^4.1.2" - once "^1.3.0" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== - dependencies: - picomatch "^2.2.1" - -recast@^0.14.7: - version "0.14.7" - resolved "https://registry.npmjs.org/recast/-/recast-0.14.7.tgz#4f1497c2b5826d42a66e8e3c9d80c512983ff61d" - integrity sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A== - dependencies: - ast-types "0.11.3" - esprima "~4.0.0" - private "~0.1.5" - source-map "~0.6.1" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= - dependencies: - resolve "^1.1.6" - -recursive-readdir@2.2.2, recursive-readdir@^2.2.2: - version "2.2.2" - resolved "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" - integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== - dependencies: - minimatch "3.0.4" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -redent@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" - integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= - dependencies: - indent-string "^3.0.0" - strip-indent "^2.0.0" - -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - -redux-immutable@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/redux-immutable/-/redux-immutable-3.1.0.tgz#cafbd686e0711261119b9c28960935dc47a49d0a" - integrity sha1-yvvWhuBxEmERm5wolgk13EeknQo= - dependencies: - immutable "^3.8.1" - -redux@^4.0.4, redux@^4.0.5: - version "4.0.5" - resolved "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" - integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== - dependencies: - loose-envify "^1.4.0" - symbol-observable "^1.2.0" - -refractor@^2.4.1: - version "2.10.1" - resolved "https://registry.npmjs.org/refractor/-/refractor-2.10.1.tgz#166c32f114ed16fd96190ad21d5193d3afc7d34e" - integrity sha512-Xh9o7hQiQlDbxo5/XkOX6H+x/q8rmlmZKr97Ie1Q8ZM32IRRd3B/UxuA/yXDW79DBSXGWxm2yRTbcTVmAciJRw== - dependencies: - hastscript "^5.0.0" - parse-entities "^1.1.2" - prismjs "~1.17.0" - -refractor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/refractor/-/refractor-3.1.0.tgz#b05a43c8a1b4fccb30001ffcbd5cd781f7f06f78" - integrity sha512-bN8GvY6hpeXfC4SzWmYNQGLLF2ZakRDNBkgCL0vvl5hnpMrnyURk8Mv61v6pzn4/RBHzSWLp44SzMmVHqMGNww== - dependencies: - hastscript "^5.0.0" - parse-entities "^2.0.0" - prismjs "~1.21.0" - -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.5: - version "0.13.5" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== - -regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== - dependencies: - "@babel/runtime" "^7.8.4" - private "^0.1.8" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -regexpp@^3.0.0, regexpp@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== - -regexpu-core@^4.6.0, regexpu-core@^4.7.0: - version "4.7.0" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -registry-auth-token@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" - integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== - dependencies: - rc "^1.2.8" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -regjsgen@^0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== - -regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== - dependencies: - jsesc "~0.5.0" - -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - -remark-parse@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" - integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA== - dependencies: - 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 "^1.1.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 "^1.0.0" - vfile-location "^2.0.0" - xtend "^4.0.1" - -remarkable@^1.7.1: - version "1.7.4" - resolved "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00" - integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg== - dependencies: - argparse "^1.0.10" - autolinker "~0.28.0" - -remarkable@^2.0.0, remarkable@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/remarkable/-/remarkable-2.0.1.tgz#280ae6627384dfb13d98ee3995627ca550a12f31" - integrity sha512-YJyMcOH5lrR+kZdmB0aJJ4+93bEojRZ1HGDn9Eagu6ibg7aVZhc3OWbbShRid+Q5eAfsEqWxpe+g5W5nYNfNiA== - dependencies: - argparse "^1.0.10" - autolinker "^3.11.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -renderkid@^2.0.1: - version "2.0.3" - resolved "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" - integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA== - dependencies: - css-select "^1.1.0" - dom-converter "^0.2" - htmlparser2 "^3.3.0" - strip-ansi "^3.0.0" - utila "^0.4.0" - -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.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= - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -replace-ext@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= - -replace-ext@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" - integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== - -replace-in-file@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.1.0.tgz#9f9ddd7bb70d6ad231d2ad692e1b646e73d06647" - integrity sha512-URzjyF3nucvejuY13HFd7O+Q6tFJRLKGHLYVvSh+LiZj3gFXzSYGnIkQflnJJulCAI2/RTZaZkpOtdVdW0EhQA== - dependencies: - chalk "^4.0.0" - glob "^7.1.6" - yargs "^15.3.1" - -request-progress@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" - integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= - dependencies: - throttleit "^1.0.0" - -request-promise-core@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" - integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== - dependencies: - lodash "^4.17.15" - -request-promise-native@^1.0.5, request-promise-native@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" - integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== - dependencies: - request-promise-core "1.1.3" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.53.0, request@^2.55.0, request@^2.85.0, request@^2.87.0, request@^2.88.0, request@^2.88.2: - version "2.88.2" - resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -reselect@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/reselect/-/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7" - integrity sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA== - -resize-observer-polyfill@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - -resolve-alpn@^1.0.0: - version "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" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - -resolve-from@5.0.0, resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@1.15.1: - version "1.15.1" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" - integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== - dependencies: - path-parse "^1.0.6" - -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.16.1, resolve@^1.17.0, resolve@^1.3.2: - version "1.17.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -responselike@1.0.2, responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -responselike@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" - integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== - dependencies: - lowercase-keys "^2.0.0" - -restore-cursor@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" - integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= - dependencies: - exit-hook "^1.0.0" - onetime "^1.0.0" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@0.12.0, retry@^0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - -retry@^0.10.0: - version "0.10.1" - resolved "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" - integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -rgbcolor@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz#d6505ecdb304a6595da26fa4b43307306775945d" - integrity sha1-1lBezbMEplldom+ktDMHMGd1lF0= - -rifm@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/rifm/-/rifm-0.7.0.tgz#debe951a9c83549ca6b33e5919f716044c2230be" - integrity sha512-DSOJTWHD67860I5ojetXdEQRIBvF6YcpNe53j0vn1vp9EUb9N80EiZTxgP+FkDKorWC8PZw052kTF4C1GOivCQ== - dependencies: - "@babel/runtime" "^7.3.1" - -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: - version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rollup-plugin-dts@1.4.11: - version "1.4.11" - resolved "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-1.4.11.tgz#aedf0b7bb91d51e20b755e2c18e840edfc7af7a1" - integrity sha512-yiScAMKgwH77b44a/IFGgjLsmwSlNfQhEM+eCb2uMrupQMPE1n/12wrnT431+v1u6wYMF1XuHqldh+v/7mTvYA== - optionalDependencies: - "@babel/code-frame" "^7.10.4" - -rollup-plugin-esbuild@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-2.3.0.tgz#7c107d4508af80d30966a148b306cb7d5b36b258" - integrity sha512-lNbWDRaClwXauaIybuaiOBRWgxcp3GkZu0UUix9yH/OHFgVohKmzlU0NtNbvfbxAcfEooyuBRAv6YCaJl1Mbpw== - dependencies: - "@rollup/pluginutils" "^3.1.0" - -rollup-plugin-image-files@^1.4.2: - version "1.4.2" - resolved "https://registry.npmjs.org/rollup-plugin-image-files/-/rollup-plugin-image-files-1.4.2.tgz#0a329723bace95168a9a6efdacb51370c14fbfe5" - integrity sha512-tlydpQdGFssMWhPdWA9SFh4IGVSCzceNgJarJDID+km151IeIVzjATl8ZERNGS/QwMty25iammQqauxl1VUqDQ== - dependencies: - rollup "0.64.1" - rollup-pluginutils "2.4.1" - -rollup-plugin-peer-deps-external@^2.2.2: - version "2.2.3" - resolved "https://registry.npmjs.org/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.3.tgz#059a8aec1eefb48a475e9fcedc3b9e3deb521213" - integrity sha512-W6IePXTExGXVDAlfZbNUUrx3GxUOZP248u5n4a4ID1XZMrbQ+uGeNiEfapvdzwx0qZi5DNH/hDLiPUP+pzFIxg== - -rollup-plugin-postcss@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-3.1.1.tgz#eb895bd919285aaf6200324071103b4d3ea68607" - integrity sha512-4/FO5/2O5kv2uWRd7PPTN4mBCWoHwwFTnpEGokfPKfj6kygvTORqkBWNgVPXi7bBefNKtMA3FqQ10se6/J8kKw== - dependencies: - chalk "^4.0.0" - concat-with-sourcemaps "^1.1.0" - cssnano "^4.1.10" - import-cwd "^3.0.0" - p-queue "^6.3.0" - pify "^5.0.0" - postcss "^7.0.27" - postcss-load-config "^2.1.0" - postcss-modules "^2.0.0" - promise.series "^0.2.0" - resolve "^1.16.1" - rollup-pluginutils "^2.8.2" - safe-identifier "^0.4.1" - style-inject "^0.3.0" - -rollup-plugin-typescript2@^0.26.0: - version "0.26.0" - resolved "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.26.0.tgz#cee2b44d51d9623686656d76dc30a73c4de91672" - integrity sha512-lUK7XZVG77tu8dmv1L/0LZFlavED/5Yo6e4iMMl6fdox/yKdj4IFRRPPJEXNdmEaT1nDQQeCi7b5IwKHffMNeg== - dependencies: - find-cache-dir "^3.2.0" - fs-extra "8.1.0" - resolve "1.15.1" - rollup-pluginutils "2.8.2" - tslib "1.10.0" - -rollup-pluginutils@2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.4.1.tgz#de43ab54965bbf47843599a7f3adceb723de38db" - integrity sha512-wesMQ9/172IJDIW/lYWm0vW0LiKe5Ekjws481R7z9WTRtmO59cqyM/2uUlxvf6yzm/fElFmHUobeQOYz46dZJw== - dependencies: - estree-walker "^0.6.0" - micromatch "^3.1.10" - -rollup-pluginutils@2.8.2, rollup-pluginutils@^2.8.2: - version "2.8.2" - resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== - dependencies: - estree-walker "^0.6.1" - -rollup@0.64.1: - version "0.64.1" - resolved "https://registry.npmjs.org/rollup/-/rollup-0.64.1.tgz#9188ee368e5fcd43ffbc00ec414e72eeb5de87ba" - integrity sha512-+ThdVXrvonJdOTzyybMBipP0uz605Z8AnzWVY3rf+cSGnLO7uNkJBlN+9jXqWOomkvumXfm/esmBpA5d53qm7g== - dependencies: - "@types/estree" "0.0.39" - "@types/node" "*" - -rollup@2.23.x: - version "2.23.0" - resolved "https://registry.npmjs.org/rollup/-/rollup-2.23.0.tgz#b7ab1fee0c0e60132fd0553c4df1e9cdacfada9d" - integrity sha512-vLNmZFUGVwrnqNAJ/BvuLk1MtWzu4IuoqsH9UWK5AIdO3rt8/CSiJNvPvCIvfzrbNsqKbNzPAG1V2O4eTe2XZg== - optionalDependencies: - fsevents "~2.1.2" - -rollup@^0.63.4: - version "0.63.5" - resolved "https://registry.npmjs.org/rollup/-/rollup-0.63.5.tgz#5543eecac9a1b83b7e1be598b5be84c9c0a089db" - integrity sha512-dFf8LpUNzIj3oE0vCvobX6rqOzHzLBoblyFp+3znPbjiSmSvOoK2kMKx+Fv9jYduG1rvcCfCveSgEaQHjWRF6g== - dependencies: - "@types/estree" "0.0.39" - "@types/node" "*" - -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - -rtl-css-js@^1.9.0: - version "1.14.0" - resolved "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.14.0.tgz#daa4f192a92509e292a0519f4b255e6e3c076b7d" - integrity sha512-Dl5xDTeN3e7scU1cWX8c9b6/Nqz3u/HgR4gePc1kWXYiQWVQbKCEyK6+Hxve9LbcJ5EieHy1J9nJCN3grTtGwg== - dependencies: - "@babel/runtime" "^7.1.2" - -run-async@^2.2.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== - dependencies: - is-promise "^2.1.0" - -run-parallel@^1.1.9: - version "1.1.9" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.2, 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" - -safe-buffer@5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== - -safe-identifier@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.1.tgz#b6516bf72594f03142b5f914f4c01842ccb1b678" - integrity sha512-73tOz5TXsq3apuCc3vC8c9QRhhdNZGiBhHmPPjqpH4TO5oCDqk8UIsDcSs/RG6dYcFAkOOva0pqHS3u7hh7XXA== - -safe-json-parse@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" - integrity sha1-PnZyPjjf3aE8mx0poeB//uSzC1c= - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - -sanitize-html@^1.27.0: - version "1.27.0" - resolved "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.0.tgz#42104a2d59f1a48b616b5165ad5349824861e580" - integrity sha512-U1btucGeYVpg0GoK43jPpe/bDCV4cBOGuxzv5NBd0bOjyZdMKY0n98S/vNlO1wVwre0VCj8H3hbzE7gD2+RjKA== - dependencies: - chalk "^2.4.1" - htmlparser2 "^4.1.0" - lodash "^4.17.15" - postcss "^7.0.27" - srcset "^2.0.1" - xtend "^4.0.1" - -sax@>=0.6.0, sax@^1.1.4, sax@^1.2.4, sax@~1.2.4: - version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -saxes@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - -scheduler@^0.19.0, scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.0.1, schema-utils@^2.5.0, schema-utils@^2.6.4, schema-utils@^2.6.5, schema-utils@^2.6.6, 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" - -screenfull@^5.0.0: - version "5.0.2" - resolved "https://registry.npmjs.org/screenfull/-/screenfull-5.0.2.tgz#b9acdcf1ec676a948674df5cd0ff66b902b0bed7" - integrity sha512-cCF2b+L/mnEiORLN5xSAz6H3t18i2oHh9BA8+CQlAh5DRw2+NFAGQJOSYbcGw8B2k04g/lVvFcfZ83b3ysH5UQ== - -seek-bzip@^1.0.5: - version "1.0.6" - resolved "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" - integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== - dependencies: - commander "^2.8.1" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - -select@^1.1.2: - version "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.7" - resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" - integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== - dependencies: - node-forge "0.9.0" - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== - dependencies: - semver "^6.3.0" - -semver-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" - integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== - -semver-truncate@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8" - integrity sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g= - dependencies: - semver "^5.3.0" - -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@4.3.2: - version "4.3.2" - resolved "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" - integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c= - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@7.x, semver@^7.2.1, semver@^7.3.2: - version "7.3.2" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== - -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@~5.3.0: - version "5.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= - -send@0.17.1: - version "0.17.1" - resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-error@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a" - integrity sha1-ULZ51WNc34Rme9yOWa9OW4HV9go= - -serialize-javascript@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" - integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== - -serve-favicon@^2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz#935d240cdfe0f5805307fdfe967d88942a2cbcf0" - integrity sha1-k10kDN/g9YBTB/3+ln2IlCosvPA= - dependencies: - etag "~1.8.1" - fresh "0.5.2" - ms "2.1.1" - parseurl "~1.3.2" - safe-buffer "5.1.1" - -serve-handler@^6.1.3: - version "6.1.3" - resolved "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz#1bf8c5ae138712af55c758477533b9117f6435e8" - integrity sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w== - dependencies: - bytes "3.0.0" - content-disposition "0.5.2" - fast-url-parser "1.1.3" - mime-types "2.1.18" - minimatch "3.0.4" - path-is-inside "1.0.2" - path-to-regexp "2.2.1" - range-parser "1.2.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-getter@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376" - integrity sha1-12nBgsnVpR9AkUXy+6guXoboA3Y= - dependencies: - to-object-path "^0.3.0" - -set-harmonic-interval@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz#e1773705539cdfb80ce1c3d99e7f298bb3995249" - integrity sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g== - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-clone@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" - integrity sha1-WQnodLp3EG1zrEFM/sH/yofZcGA= - dependencies: - is-extendable "^0.1.1" - kind-of "^2.0.1" - lazy-cache "^0.2.3" - mixin-object "^2.0.1" - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shallow-equal@^1.1.0: - version "1.2.1" - resolved "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" - integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== - -shallowequal@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" - integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@1.7.2: - version "1.7.2" - resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" - integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== - -shelljs@^0.8.3, shelljs@^0.8.4: - version "0.8.4" - resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" - integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -shortid@^2.2.14: - version "2.2.15" - resolved "https://registry.npmjs.org/shortid/-/shortid-2.2.15.tgz#2b902eaa93a69b11120373cd42a1f1fe4437c122" - integrity sha512-5EaCy2mx2Jgc/Fdn9uuDuNIIfWBpzY4XIlhoqtXF6qsf+/+SGZ+FxDdX/ZsMZiWupIWNqAEmiNY4RC+LSmCeOw== - dependencies: - nanoid "^2.1.0" - -side-channel@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947" - integrity sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA== - dependencies: - es-abstract "^1.17.0-next.1" - object-inspect "^1.7.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^3.0.3: - version "3.1.0" - resolved "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" - integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== - dependencies: - decompress-response "^4.2.0" - once "^1.3.1" - simple-concat "^1.0.0" - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -simplebar-react@^1.0.0-alpha.6: - version "1.2.3" - resolved "https://registry.npmjs.org/simplebar-react/-/simplebar-react-1.2.3.tgz#bd81fa9827628470e9470d06caef6ece15e1c882" - integrity sha512-1EOWJzFC7eqHUp1igD1/tb8GBv5aPQA5ZMvpeDnVkpNJ3jAuvmrL2kir3HuijlxhG7njvw9ssxjjBa89E5DrJg== - dependencies: - prop-types "^15.6.1" - simplebar "^4.2.3" - -simplebar@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/simplebar/-/simplebar-4.2.3.tgz#dac40aced299c17928329eab3d5e6e795fafc10c" - integrity sha512-9no0pK7/1y+8/oTF3sy/+kx0PjQ3uk4cYwld5F1CJGk2gx+prRyUq8GRfvcVLq5niYWSozZdX73a2wIr1o9l/g== - dependencies: - can-use-dom "^0.1.0" - core-js "^3.0.1" - lodash.debounce "^4.0.8" - lodash.memoize "^4.1.2" - lodash.throttle "^4.1.1" - resize-observer-polyfill "^1.5.1" - -sisteransi@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -sitemap@^3.2.2: - version "3.2.2" - resolved "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz#3f77c358fa97b555c879e457098e39910095c62b" - integrity sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg== - dependencies: - lodash.chunk "^4.2.0" - lodash.padstart "^4.6.1" - whatwg-url "^7.0.0" - xmlbuilder "^13.0.0" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" - integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= - -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slide@^1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= - -smart-buffer@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" - integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - 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== - dependencies: - debug "^3.2.5" - eventsource "^1.0.7" - faye-websocket "~0.11.1" - inherits "^2.0.3" - json3 "^3.3.2" - url-parse "^1.4.3" - -sockjs@0.3.20: - version "0.3.20" - resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" - integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== - dependencies: - faye-websocket "^0.10.0" - uuid "^3.4.0" - websocket-driver "0.6.5" - -socks-proxy-agent@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" - integrity sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg== - dependencies: - agent-base "~4.2.1" - socks "~2.3.2" - -socks@~2.3.2: - version "2.3.3" - resolved "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3" - integrity sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA== - dependencies: - ip "1.1.5" - smart-buffer "^4.1.0" - -sort-keys-length@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" - integrity sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg= - dependencies: - sort-keys "^1.0.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" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= - dependencies: - is-plain-obj "^1.0.0" - -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== - -source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: - version "0.5.3" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.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: - 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== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@0.5.6: - version "0.5.6" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= - -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: - version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "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: - version "0.7.3" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -sourcemap-codec@^1.4.1, sourcemap-codec@^1.4.4: - version "1.4.8" - resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -space-separated-tokens@^1.0.0: - version "1.1.5" - resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" - integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== - -spawn-command@^0.0.2-1: - version "0.0.2-1" - resolved "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" - integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= - -spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -split-ca@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz#6c83aff3692fa61256e0cd197e05e9de157691a6" - integrity sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY= - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -split2@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" - integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== - dependencies: - through2 "^2.0.2" - -split@0.3: - version "0.3.3" - resolved "https://registry.npmjs.org/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= - dependencies: - through "2" - -split@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" - integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== - dependencies: - through "2" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sqlite3@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/sqlite3/-/sqlite3-4.2.0.tgz#49026d665e9fc4f922e56fb9711ba5b4c85c4901" - integrity sha512-roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg== - dependencies: - nan "^2.12.1" - node-pre-gyp "^0.11.0" - -squeak@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz#33045037b64388b567674b84322a6521073916c3" - integrity sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM= - dependencies: - chalk "^1.0.0" - console-stream "^0.1.1" - lpad-align "^1.0.1" - -srcset@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/srcset/-/srcset-2.0.1.tgz#8f842d357487eb797f413d9c309de7a5149df5ac" - integrity sha512-00kZI87TdRKwt+P8jj8UZxbfp7mK2ufxcIMWvhAOZNJTRROimpHeruWrGvCZneiuVDLqdyHefVp748ECTnyUBQ== - -ssh2-streams@~0.4.10: - version "0.4.10" - resolved "https://registry.npmjs.org/ssh2-streams/-/ssh2-streams-0.4.10.tgz#48ef7e8a0e39d8f2921c30521d56dacb31d23a34" - integrity sha512-8pnlMjvnIZJvmTzUIIA5nT4jr2ZWNNVHwyXfMGdRJbug9TpI3kd99ffglgfSWqujVv/0gxwMsDn9j9RVst8yhQ== - dependencies: - asn1 "~0.2.0" - bcrypt-pbkdf "^1.0.2" - streamsearch "~0.1.2" - -ssh2@^0.8.7: - version "0.8.9" - resolved "https://registry.npmjs.org/ssh2/-/ssh2-0.8.9.tgz#54da3a6c4ba3daf0d8477a538a481326091815f3" - integrity sha512-GmoNPxWDMkVpMFa9LVVzQZHF6EW3WKmBwL+4/GeILf2hFmix5Isxm7Amamo8o7bHiU0tC+wXsGcUXOxp8ChPaw== - dependencies: - ssh2-streams "~0.4.10" - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^6.0.0, ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== - dependencies: - figgy-pudding "^3.5.1" - -ssri@^7.0.0: - version "7.1.0" - resolved "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" - integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g== - dependencies: - figgy-pudding "^3.5.1" - minipass "^3.1.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stack-generator@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.5.tgz#fb00e5b4ee97de603e0773ea78ce944d81596c36" - integrity sha512-/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q== - dependencies: - stackframe "^1.1.1" - -stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= - -stack-utils@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593" - integrity sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg== - dependencies: - escape-string-regexp "^2.0.0" - -stackblur-canvas@2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.2.0.tgz#cacc5924a0744b3e183eb2e6c1d8559c1a17c26e" - integrity sha512-5Gf8dtlf8k6NbLzuly2NkGrkS/Ahh+I5VUjO7TnFizdJtgpfpLLEdQlLe9umbcnZlitU84kfYjXE67xlSXfhfQ== - -stackblur-canvas@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-1.4.1.tgz#849aa6f94b272ff26f6471fa4130ed1f7e47955b" - integrity sha1-hJqm+UsnL/JvZHH6QTDtH35HlVs= - -stackframe@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.1.1.tgz#ffef0a3318b1b60c3b58564989aca5660729ec71" - integrity sha512-0PlYhdKh6AfFxRyK/v+6/k+/mMfyiEBbTM5L94D0ZytQnJ166wuwoTYLHFWGbs2dpA8Rgq763KGWmN1EQEYHRQ== - -stacktrace-gps@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.0.4.tgz#7688dc2fc09ffb3a13165ebe0dbcaf41bcf0c69a" - integrity sha512-qIr8x41yZVSldqdqe6jciXEaSCKw1U8XTXpjDuy0ki/apyTn/r3w9hDAAQOhZdxvsC93H+WwwEu5cq5VemzYeg== - dependencies: - source-map "0.5.6" - stackframe "^1.1.1" - -stacktrace-js@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz#4ca93ea9f494752d55709a081d400fdaebee897b" - integrity sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg== - dependencies: - error-stack-parser "^2.0.6" - stack-generator "^2.0.5" - stacktrace-gps "^3.0.4" - -start-server-and-test@^1.10.11: - version "1.11.2" - resolved "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-1.11.2.tgz#9144b7b6f25197148f159f261ae80119afbb17d5" - integrity sha512-rk1zS5WQvdbc8slE5hPtzfji1dFSnBAfm+vSjToZNrBvozHJvuAG80xE5u8N4tQjg3Ej1Crjc19J++r28HGJgg== - dependencies: - bluebird "3.7.2" - check-more-types "2.24.0" - debug "4.1.1" - execa "3.4.0" - lazy-ass "1.6.0" - ps-tree "1.2.0" - wait-on "5.1.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== - -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" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -statuses@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.0.tgz#aa7b107e018eb33e08e8aee2e7337e762dda1028" - integrity sha512-w9jNUUQdpuVoYqXxnyOakhckBbOxRaoYqJscyIBYCS5ixyCnO7nQn7zBZvP9zf5QOPZcz2DLUpE3KsNPbJBOFA== - -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - -stoppable@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz#32da568e83ea488b08e4d7ea2c3bcc9d75015d5b" - integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== - -store2@^2.7.1: - version "2.10.0" - resolved "https://registry.npmjs.org/store2/-/store2-2.10.0.tgz#46b82bb91878daf1b0d56dec2f1d41e54d5103cf" - integrity sha512-tWEpK0snS2RPUq1i3R6OahfJNjWCQYNxq0+by1amCSuw0mXtymJpzmZIeYpA1UAa+7B0grCpNYIbDcd7AgTbFg== - -storybook-dark-mode@^0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/storybook-dark-mode/-/storybook-dark-mode-0.6.1.tgz#0527567ac5853c49f6f7a6f68f792fe9322c5a5a" - integrity sha512-E8LIHnVfFhOsPqBc2fLshVBnspziYMXHdwQc/qAjpf4h5ewzrDzeqy4QfJioE+jDoyyZXEtIMugzb0wIaK10Uw== - dependencies: - fast-deep-equal "^3.0.0" - memoizerific "^1.11.3" - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-combiner@~0.0.4: - version "0.0.4" - resolved "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" - integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= - dependencies: - duplexer "~0.1.1" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -stream@^0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz#7f5363f057f6592c5595f00bc80a27f5cec1f0ef" - integrity sha1-f1Nj8Ff2WSxVlfALyAon9c7B8O8= - dependencies: - emitter-component "^1.1.1" - -streamsearch@0.1.2, streamsearch@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" - integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= - -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= - -string-argv@0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== - -string-env-interpolation@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152" - integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg== - -string-hash@^1.1.1: - version "1.1.3" - resolved "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" - integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= - -string-length@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" - integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= - -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.1.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.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== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -"string.prototype.matchall@^4.0.0 || ^3.0.1", string.prototype.matchall@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" - integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0" - has-symbols "^1.0.1" - internal-slot "^1.0.2" - regexp.prototype.flags "^1.3.0" - side-channel "^1.0.2" - -string.prototype.padend@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz#dc08f57a8010dc5c153550318f67e13adbb72ac3" - integrity sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -string.prototype.padstart@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.0.tgz#b47c087540d0710be5a49375751a0a627bd4ff90" - integrity sha512-envqZvUp2JItI+OeQ5UAh1ihbAV5G/2bixTojvlIa090GGqF+NQRxbWb2nv9fTGrZABv6+pE6jXoAZhhS2k4Hw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -string.prototype.trimleft@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" - integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" - -string.prototype.trimright@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" - integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" - -string_decoder@0.10: - version "0.10.31" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -stringify-object@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.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: - version "5.2.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@6.0.0, strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.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" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= - dependencies: - is-utf8 "^0.2.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-color@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/strip-color/-/strip-color-0.1.0.tgz#106f65d3d3e6a2d9401cac0eb0ce8b8a702b4f7b" - integrity sha1-EG9l09PmotlAHKwOsM6LinArT3s= - -strip-dirs@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" - integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== - dependencies: - is-natural-number "^4.0.1" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= - dependencies: - get-stdin "^4.0.1" - -strip-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -strip-json-comments@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" - integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -strip-outer@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" - integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== - dependencies: - escape-string-regexp "^1.0.2" - -strong-log-transformer@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" - integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== - dependencies: - duplexer "^0.1.1" - minimist "^1.2.0" - through "^2.3.4" - -style-inject@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" - integrity sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw== - -style-loader@^1.0.0, style-loader@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz#c5cbbfbf1170d076cfdd86e0109c5bba114baa1a" - integrity sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg== - dependencies: - loader-utils "^2.0.0" - schema-utils "^2.6.6" - -styled-system@^5.1.5: - version "5.1.5" - resolved "https://registry.npmjs.org/styled-system/-/styled-system-5.1.5.tgz#e362d73e1dbb5641a2fd749a6eba1263dc85075e" - integrity sha512-7VoD0o2R3RKzOzPK0jYrVnS8iJdfkKsQJNiLRDjikOpQVqQHns/DXWaPZOH4tIKkhAT7I6wIsy9FWTWh2X3q+A== - dependencies: - "@styled-system/background" "^5.1.2" - "@styled-system/border" "^5.1.5" - "@styled-system/color" "^5.1.2" - "@styled-system/core" "^5.1.2" - "@styled-system/flexbox" "^5.1.2" - "@styled-system/grid" "^5.1.2" - "@styled-system/layout" "^5.1.2" - "@styled-system/position" "^5.1.2" - "@styled-system/shadow" "^5.1.2" - "@styled-system/space" "^5.1.2" - "@styled-system/typography" "^5.1.2" - "@styled-system/variant" "^5.1.5" - object-assign "^4.1.1" - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -stylis@3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/stylis/-/stylis-3.5.0.tgz#016fa239663d77f868fef5b67cf201c4b7c701e1" - integrity sha512-pP7yXN6dwMzAR29Q0mBrabPCe0/mNO1MSr93bhay+hcZondvMMTpeGyd8nbhYJdyperNT2DRxONQuUGcJr5iPw== - -subscriptions-transport-ws@0.9.17, subscriptions-transport-ws@^0.9.11, subscriptions-transport-ws@^0.9.16: - version "0.9.17" - resolved "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.17.tgz#e30e40f0caae0d2781903c01a8cb51b6e2682098" - integrity sha512-hNHi2N80PBz4T0V0QhnnsMGvG3XDFDS9mS6BhZ3R12T6EBywC8d/uJscsga0cVO4DKtXCkCRrWm2sOYrbOdhEA== - dependencies: - backo2 "^1.0.2" - eventemitter3 "^3.1.0" - iterall "^1.2.1" - symbol-observable "^1.0.4" - ws "^5.2.0" - -sucrase@^3.14.1: - version "3.15.0" - resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.15.0.tgz#78596a78be7264a65b52ed8d873883413ef0220c" - integrity sha512-05TJOUfMgckH7wKqfk/1p4G6q16nIeW/GHQwD44vkT0mQMqqzgfHCwkX3whNmwyOo7nVF0jDLwVu/qOBTtsscw== - dependencies: - commander "^4.0.0" - glob "7.1.6" - lines-and-columns "^1.1.6" - mz "^2.7.0" - pirates "^4.0.1" - ts-interface-checker "^0.1.9" - -superagent@^3.8.3: - version "3.8.3" - resolved "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz#460ea0dbdb7d5b11bc4f78deba565f86a178e128" - integrity sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA== - dependencies: - component-emitter "^1.2.0" - cookiejar "^2.1.0" - debug "^3.1.0" - extend "^3.0.0" - form-data "^2.3.1" - formidable "^1.2.0" - methods "^1.1.1" - mime "^1.4.1" - qs "^6.5.1" - readable-stream "^2.3.5" - -supertest@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/supertest/-/supertest-4.0.2.tgz#c2234dbdd6dc79b6f15b99c8d6577b90e4ce3f36" - integrity sha512-1BAbvrOZsGA3YTCWqbmh14L0YEq0EGICX/nBnfkfVJn7SrxQV1I3pMYjSzG9y/7ZU2V9dWqyqk2POwxlb09duQ== - dependencies: - methods "^1.1.2" - superagent "^3.8.3" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= - dependencies: - has-flag "^1.0.0" - -supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" - integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -svg-parser@^2.0.0, svg-parser@^2.0.2: - version "2.0.4" - resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" - integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== - -svgo@^1.0.0, svgo@^1.2.2, svgo@^1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -swagger-client@=3.10.12: - version "3.10.12" - resolved "https://registry.npmjs.org/swagger-client/-/swagger-client-3.10.12.tgz#f49beb7a6f91b6e5778cfbd3fd4064413be6e791" - integrity sha512-h2o7axvFViMc5sxwTjjza84Rhfz+C52wgMKPOT0P05jODjZhldBK7y9EvGt4zvqgzBJHS+FDQBmOT/dGf9SWdw== - dependencies: - "@babel/runtime-corejs2" "^7.10.4" - btoa "^1.2.1" - buffer "^5.6.0" - cookie "~0.4.1" - cross-fetch "^3.0.5" - deep-extend "~0.6.0" - fast-json-patch "^2.2.1" - isomorphic-form-data "~2.0.0" - js-yaml "^3.14.0" - lodash "^4.17.19" - qs "^6.9.4" - querystring-browser "^1.0.4" - traverse "~0.6.6" - url "~0.11.0" - -swagger-ui-react@^3.31.1: - version "3.31.1" - resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-3.31.1.tgz#1770cfa1dc390f79887d641ea35ee654f4bf7d80" - integrity sha512-bGpNzizMT/7N4LTdw6yx+t3rpsEoalrn0VIfhUzv9zXVrUTl+3AKPLHpLBr0r4NvzvaZLrYuSjkatnLfngJ4vg== - dependencies: - "@babel/runtime-corejs2" "^7.10.4" - "@braintree/sanitize-url" "^4.0.0" - "@kyleshockey/object-assign-deep" "^0.4.2" - "@kyleshockey/xml" "^1.0.2" - base64-js "^1.2.0" - classnames "^2.2.6" - core-js "^2.6.11" - css.escape "1.5.1" - deep-extend "0.6.0" - dompurify "^2.0.7" - ieee754 "^1.1.13" - immutable "^3.x.x" - js-file-download "^0.4.1" - js-yaml "^3.13.1" - lodash "^4.17.19" - memoizee "^0.4.12" - prop-types "^15.7.2" - randombytes "^2.1.0" - react-copy-to-clipboard "5.0.1" - react-debounce-input "^3.2.0" - react-immutable-proptypes "2.1.0" - react-immutable-pure-component "^1.1.1" - react-inspector "^2.3.0" - react-motion "^0.5.2" - react-redux "^5.1.2" - react-syntax-highlighter "=12.2.1" - redux "^4.0.5" - redux-immutable "3.1.0" - remarkable "^2.0.1" - reselect "^4.0.0" - serialize-error "^2.1.0" - sha.js "^2.4.11" - swagger-client "=3.10.12" - url-parse "^1.4.7" - xml-but-prettier "^1.0.1" - zenscroll "^4.0.2" - -swr@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/swr/-/swr-0.3.0.tgz#69602953dd50ab07fe60c920fd63199256645675" - integrity sha512-3p0p5TWH0qiaKAph5wBkMwqe2WjNseITfjmdVoNzjqRZGn/gnpRi6whMDjhMVb/vp/yyDtKWPlyjid8QZH+UhA== - dependencies: - fast-deep-equal "2.0.1" - -symbol-observable@^1.0.4, symbol-observable@^1.1.0, symbol-observable@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - -"symbol-tree@>= 3.1.0 < 4.0.0", symbol-tree@^3.2.2, symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -symbol.prototype.description@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/symbol.prototype.description/-/symbol.prototype.description-1.0.2.tgz#f325e1e6ad534b3b29c9c3ca73c136c9ce03c5e2" - integrity sha512-2CW5SU4/Ki1cYOOHcL2cXK4rxSg5hCU1TwZ7X4euKhV9VnfqKslh7T6/UyKkubA8cq2tOmsOv7m3ZUmQslBRuw== - dependencies: - es-abstract "^1.17.0-next.1" - has-symbols "^1.0.1" - -synchronous-promise@^2.0.13: - version "2.0.13" - resolved "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.13.tgz#9d8c165ddee69c5a6542862b405bc50095926702" - integrity sha512-R9N6uDkVsghHePKh1TEqbnLddO2IY25OcsksyFp/qBe7XYd0PVbKEWxhcdMhpLzE1I6skj5l4aEZ3CRxcbArlA== - -table@^5.2.3: - version "5.4.6" - resolved "https://registry.npmjs.org/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== - dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tar-fs@^1.16.3: - version "1.16.3" - resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" - integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw== - dependencies: - chownr "^1.0.1" - mkdirp "^0.5.1" - pump "^1.0.0" - tar-stream "^1.1.2" - -tar-fs@~2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2" - integrity sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.0.0" - -tar-stream@^1.1.2, tar-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" - integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== - dependencies: - bl "^1.0.0" - buffer-alloc "^1.2.0" - end-of-stream "^1.0.0" - fs-constants "^1.0.0" - readable-stream "^2.3.0" - to-buffer "^1.1.1" - xtend "^4.0.0" - -tar-stream@^2.0.0: - version "2.1.2" - resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325" - integrity sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q== - dependencies: - bl "^4.0.1" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - -tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: - version "4.4.13" - resolved "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - -tar@^6.0.1: - version "6.0.2" - resolved "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz#5df17813468a6264ff14f766886c622b84ae2f39" - integrity sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.0" - mkdirp "^1.0.3" - yallist "^4.0.0" - -tarn@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/tarn/-/tarn-3.0.0.tgz#a4082405216c0cce182b8b4cb2639c52c1e870d4" - integrity sha512-PKUnlDFODZueoA8owLehl8vLcgtA8u4dRuVbZc92tspDYZixjJL6TqYOmryf/PfP/EBX+2rgNcrj96NO+RPkdQ== - -tcp-port-used@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.1.tgz#46061078e2d38c73979a2c2c12b5a674e6689d70" - integrity sha512-rwi5xJeU6utXoEIiMvVBMc9eJ2/ofzB+7nLOdnZuFTmNCLqRiQh2sMG9MqCxHU/69VC/Fwp5dV9306Qd54ll1Q== - dependencies: - debug "4.1.0" - is2 "2.0.1" - -tdigest@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz#2e3cb2c39ea449e55d1e6cd91117accca4588021" - integrity sha1-Ljyyw56kSeVdHmzZEReszKRYgCE= - dependencies: - bintrees "1.0.1" - -telejson@^3.2.0: - version "3.3.0" - resolved "https://registry.npmjs.org/telejson/-/telejson-3.3.0.tgz#6d814f3c0d254d5c4770085aad063e266b56ad03" - integrity sha512-er08AylQ+LEbDLp1GRezORZu5wKOHaBczF6oYJtgC3Idv10qZ8A3p6ffT+J5BzDKkV9MqBvu8HAKiIIOp6KJ2w== - dependencies: - "@types/is-function" "^1.0.0" - global "^4.4.0" - is-function "^1.0.1" - is-regex "^1.0.4" - is-symbol "^1.0.3" - isobject "^4.0.0" - lodash "^4.17.15" - memoizerific "^1.11.3" - -telejson@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/telejson/-/telejson-5.0.2.tgz#ed1e64be250cc1c757a53c19e1740b49832b3d51" - integrity sha512-XCrDHGbinczsscs8LXFr9jDhvy37yBk9piB7FJrCfxE8oP66WDkolNMpaBkWYgQqB9dQGBGtTDzGQPedc9KJmw== - dependencies: - "@types/is-function" "^1.0.0" - global "^4.4.0" - is-function "^1.0.2" - is-regex "^1.1.1" - is-symbol "^1.0.3" - isobject "^4.0.0" - lodash "^4.17.19" - memoizerific "^1.11.3" - -temp-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" - integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= - -temp-write@^3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/temp-write/-/temp-write-3.4.0.tgz#8cff630fb7e9da05f047c74ce4ce4d685457d492" - integrity sha1-jP9jD7fp2gXwR8dM5M5NaFRX1JI= - dependencies: - graceful-fs "^4.1.2" - is-stream "^1.1.0" - make-dir "^1.0.0" - pify "^3.0.0" - temp-dir "^1.0.0" - uuid "^3.0.1" - -tempfile@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265" - integrity sha1-awRGhWqbERTRhW/8vlCczLCXcmU= - dependencies: - temp-dir "^1.0.0" - uuid "^3.0.1" - -term-size@^2.1.0: - version "2.2.0" - resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" - integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -terser-webpack-plugin@^1.4.3: - version "1.4.3" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" - integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^2.1.2" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser-webpack-plugin@^2.1.2: - version "2.3.5" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz#5ad971acce5c517440ba873ea4f09687de2f4a81" - integrity sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w== - dependencies: - cacache "^13.0.1" - find-cache-dir "^3.2.0" - jest-worker "^25.1.0" - p-limit "^2.2.2" - schema-utils "^2.6.4" - serialize-javascript "^2.1.2" - source-map "^0.6.1" - terser "^4.4.3" - webpack-sources "^1.4.3" - -terser@^4.1.2, terser@^4.4.3, terser@^4.6.3: - version "4.6.7" - resolved "https://registry.npmjs.org/terser/-/terser-4.6.7.tgz#478d7f9394ec1907f0e488c5f6a6a9a2bad55e72" - integrity sha512-fmr7M1f7DBly5cX2+rFDvmGBAaaZyPrHYK4mMdHEDAdNTqXSZgSOfqsfGq2HqPGT/1V0foZZuCZFx8CHKgAk3g== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-encoding-utf-8@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -text-extensions@^1.0.0: - version "1.9.0" - resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" - integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== - -text-hex@1.0.x: - version "1.0.0" - resolved "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" - integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== - -text-table@0.2.0, text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -theme-ui@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/theme-ui/-/theme-ui-0.3.1.tgz#b00ee2c03eb3d820536af8b121c64d13b3777cf0" - integrity sha512-My/TSALqp7Dst5Ez7nJA+94Q8zJhc26Z0qGo8kEWyoqHHJ5TU8xdhjLPBltTdQck3T32cSq5USIeSKU3JtxYUQ== - dependencies: - "@theme-ui/color-modes" "^0.3.1" - "@theme-ui/components" "^0.3.1" - "@theme-ui/core" "^0.3.1" - "@theme-ui/css" "^0.3.1" - "@theme-ui/mdx" "^0.3.0" - "@theme-ui/theme-provider" "^0.3.1" - -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.0" - resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" - integrity sha1-5p44obq+lpsBCCB5eLn2K4hgSDk= - dependencies: - any-promise "^1.0.0" - -throat@^5.0.0: - version "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: - version "2.2.1" - resolved "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.2.1.tgz#fbd933ae6793448816f7d5b3cae259d464c98137" - integrity sha512-i9hAVld1f+woAiyNGqWelpDD5W1tpMroL3NofTz9xzwq6acWBlO2dC8k5EFSZepU6oOINtV5Q3aSPoRg7o4+fA== - -throttleit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" - integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= - -through2@^2.0.0, through2@^2.0.2: - version "2.0.5" - resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through2@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" - integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== - dependencies: - readable-stream "2 || 3" - -through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8, through@~2.3, through@~2.3.1: - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -tildify@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz#f205f3674d677ce698b7067a99e949ce03b4754a" - integrity sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw== - -timeago.js@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/timeago.js/-/timeago.js-4.0.2.tgz#724e8c8833e3490676c7bb0a75f5daf20e558028" - integrity sha512-a7wPxPdVlQL7lqvitHGGRsofhdwtkoSXPGATFuSOA2i1ZNQEPLrGnj68vOp2sOJTCFAQVXPeNMX/GctBaO9L2w== - -timed-out@^4.0.0, timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== - dependencies: - setimmediate "^1.0.4" - -timers-ext@^0.1.5: - version "0.1.7" - resolved "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" - integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== - dependencies: - es5-ext "~0.10.46" - next-tick "1" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -tiny-emitter@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" - integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== - -tiny-invariant@^1.0.6: - version "1.1.0" - resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" - integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== - -tiny-lr@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" - integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA== - dependencies: - body "^5.1.0" - debug "^3.1.0" - faye-websocket "~0.10.0" - livereload-js "^2.3.0" - object-assign "^4.1.0" - qs "^6.4.0" - -tiny-merge-patch@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/tiny-merge-patch/-/tiny-merge-patch-0.1.2.tgz#2e8ded19c56ea15dbd3ad4ed5db1c8e5ad544c3c" - integrity sha1-Lo3tGcVuoV29OtTtXbHI5a1UTDw= - -tiny-warning@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" - integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -tmp@~0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" - integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== - dependencies: - rimraf "^2.6.3" - -tmpl@1.0.x: - version "1.0.4" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" - integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-buffer@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" - integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -to-readable-stream@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8" - integrity sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w== - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toggle-selection@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" - integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -toml@^2.3.2: - version "2.3.6" - resolved "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz#25b0866483a9722474895559088b436fd11f861b" - integrity sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ== - -toposort@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" - integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA= - -tosource@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/tosource/-/tosource-1.0.0.tgz#42d88dd116618bcf00d6106dd5446f3427902ff1" - integrity sha1-QtiN0RZhi88A1hBt1URvNCeQL/E= - -touch@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" - integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== - dependencies: - nopt "~1.0.10" - -tough-cookie@^2.2.0, tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tough-cookie@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" - integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== - dependencies: - ip-regex "^2.1.0" - psl "^1.1.28" - punycode "^2.1.1" - -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: - punycode "^2.1.0" - -tr46@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" - integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== - dependencies: - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= - -traverse@~0.6.6: - version "0.6.6" - resolved "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" - integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= - -tree-kill@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - -tree-node-cli@^1.2.5: - version "1.4.0" - resolved "https://registry.npmjs.org/tree-node-cli/-/tree-node-cli-1.4.0.tgz#8f4028554610d6ee1cdeb98554a60841a3cfa3ac" - integrity sha512-hBc/cp7rTSHFSFvaTzmHNYyJv87UJBsxsfCoq2DtDQuMES4vhnLuvXZit/asGtZG8edWTCydWeFWoBz9LYkJdQ== - dependencies: - commander "^5.0.0" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= - -trim-newlines@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" - integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= - -trim-off-newlines@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" - integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= - -trim-repeated@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" - integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= - dependencies: - escape-string-regexp "^1.0.2" - -trim-trailing-lines@^1.0.0: - version "1.1.3" - resolved "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz#7f0739881ff76657b7776e10874128004b625a94" - integrity sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA== - -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" - integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== - -trough@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" - integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== - -truncate-html@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/truncate-html/-/truncate-html-1.0.3.tgz#0166dfc7890626130c2e4174c6b73d4d63993e5f" - integrity sha512-1o1prdRv+iehXcGwn29YgXU17DotHkr+OK3ijVEG7FGMwHNG9RyobXwimw6djDvbIc24rhmz3tjNNvNESjkNkQ== - dependencies: - "@types/cheerio" "^0.22.8" - cheerio "0.22.0" - -tryer@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" - integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== - -ts-dedent@^1.1.0, ts-dedent@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ts-dedent/-/ts-dedent-1.1.1.tgz#68fad040d7dbd53a90f545b450702340e17d18f3" - integrity sha512-UGTRZu1evMw4uTPyYF66/KFd22XiU+jMaIuHrkIHQ2GivAXVlLV0v/vHrpOuTRf9BmpNHi/SO7Vd0rLu0y57jg== - -ts-easing@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz#c8a8a35025105566588d87dbda05dd7fbfa5a4ec" - integrity sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ== - -ts-interface-checker@^0.1.9: - version "0.1.10" - resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.10.tgz#b68a49e37e90a05797e590f08494dd528bf383cf" - integrity sha512-UJYuKET7ez7ry0CnvfY6fPIUIZDw+UI3qvTUQeS2MyI4TgEeWAUBqy185LeaHcdJ9zG2dgFpPJU/AecXU0Afug== - -ts-invariant@^0.4.0: - version "0.4.4" - resolved "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" - integrity sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA== - dependencies: - tslib "^1.9.3" - -ts-jest@^26.0.0: - version "26.1.1" - resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-26.1.1.tgz#b98569b8a4d4025d966b3d40c81986dd1c510f8d" - integrity sha512-Lk/357quLg5jJFyBQLnSbhycnB3FPe+e9i7ahxokyXxAYoB0q1pPmqxxRPYr4smJic1Rjcf7MXDBhZWgxlli0A== - dependencies: - bs-logger "0.x" - buffer-from "1.x" - fast-json-stable-stringify "2.x" - json5 "2.x" - lodash.memoize "4.x" - make-error "1.x" - micromatch "4.x" - mkdirp "1.x" - semver "7.x" - yargs-parser "18.x" - -ts-loader@^7.0.4: - version "7.0.4" - resolved "https://registry.npmjs.org/ts-loader/-/ts-loader-7.0.4.tgz#5d9b95227de5afb91fdd9668f8920eb193cfe0cc" - integrity sha512-5du6OQHl+4ZjO4crEyoYUyWSrmmo7bAO+inkaILZ68mvahqrfoa4nn0DRmpQ4ruT4l+cuJCgF0xD7SBIyLeeow== - dependencies: - chalk "^2.3.0" - enhanced-resolve "^4.0.0" - loader-utils "^1.0.2" - micromatch "^4.0.0" - semver "^6.0.0" - -ts-node@^8.6.2: - version "8.10.2" - resolved "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d" - integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== - dependencies: - arg "^4.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.17" - yn "3.1.1" - -ts-pnp@^1.1.2: - version "1.1.6" - resolved "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.6.tgz#389a24396d425a0d3162e96d2b4638900fdc289a" - integrity sha512-CrG5GqAAzMT7144Cl+UIFP7mz/iIhiy+xQ6GGcnjTezhALT02uPMRw7tgDSESgB5MsfKt55+GPWw4ir1kVtMIQ== - -tsconfig-paths@^3.9.0: - version "3.9.0" - resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" - integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.0" - strip-bom "^3.0.0" - -tslib@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== - -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: - version "1.11.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" - integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== - -tslib@^2.0.0, tslib@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz#18d13fc2dce04051e20f074cc8387fd8089ce4f3" - integrity sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g== - -tsutils@^3.17.1: - version "3.17.1" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" - integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== - dependencies: - tslib "^1.8.1" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.10.0: - version "0.10.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz#7f06b2b9fbfc581068d1341ffabd0349ceafc642" - integrity sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw== - -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - -type-fest@^0.3.0: - version "0.3.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" - integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-is@^1.6.16, type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" - integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== - -typed-styles@^0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9" - integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typescript@^3.9.3: - version "3.9.7" - resolved "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" - integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== - -uc.micro@^1.0.1, uc.micro@^1.0.5: - version "1.0.6" - resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" - integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== - -uglify-js@^3.1.4: - version "3.8.0" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.8.0.tgz#f3541ae97b2f048d7e7e3aa4f39fd8a1f5d7a805" - integrity sha512-ugNSTT8ierCsDHso2jkBHXYrU8Y5/fY2ZUprfrJUiD7YpuFvV4jODLFmb3h4btQjqr5Nh4TX4XtgDfCU1WdioQ== - dependencies: - commander "~2.20.3" - source-map "~0.6.1" - -uid-number@0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= - -uid2@0.0.3, uid2@0.0.x: - version "0.0.3" - resolved "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82" - integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I= - -umask@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" - integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= - -unbzip2-stream@^1.0.9: - version "1.4.3" - resolved "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" - integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== - dependencies: - buffer "^5.2.1" - through "^2.3.8" - -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= - -undefsafe@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae" - integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A== - dependencies: - debug "^2.2.0" - -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== - -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" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - -unified@^6.1.5: - version "6.2.0" - resolved "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" - integrity sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-plain-obj "^1.1.0" - trough "^1.0.0" - vfile "^2.0.0" - x-is-string "^0.1.0" - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - -unist-util-is@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" - integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== - -unist-util-remove-position@^1.0.0: - version "1.1.4" - resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020" - integrity sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A== - dependencies: - unist-util-visit "^1.1.0" - -unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" - integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== - -unist-util-visit-parents@1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz#f6e3afee8bdbf961c0e6f028ea3c0480028c3d06" - integrity sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q== - -unist-util-visit-parents@^2.0.0: - version "2.1.2" - resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" - integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== - dependencies: - unist-util-is "^3.0.0" - -unist-util-visit@^1.1.0, unist-util-visit@^1.3.0: - version "1.4.1" - resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" - integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== - dependencies: - unist-util-visit-parents "^2.0.0" - -universal-user-agent@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.1.tgz#fd8d6cb773a679a709e967ef8288a31fcc03e557" - integrity sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg== - dependencies: - os-name "^3.1.0" - -universal-user-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-5.0.0.tgz#a3182aa758069bf0e79952570ca757de3579c1d9" - integrity sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q== - dependencies: - os-name "^3.1.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" - integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== - -unixify@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090" - integrity sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA= - dependencies: - normalize-path "^2.1.1" - -unpipe@1.0.0, unpipe@~1.0.0: - version "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: - version "1.1.1" - resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - -upath@^1.1.1, upath@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -update-notifier@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz#4866b98c3bc5b5473c020b1250583628f9a328f3" - integrity sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew== - dependencies: - boxen "^4.2.0" - chalk "^3.0.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.3.1" - is-npm "^4.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - pupa "^2.0.1" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - -uri-js@^4.2.1, uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-loader@^2.0.1: - version "2.3.0" - resolved "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b" - integrity sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog== - dependencies: - loader-utils "^1.2.3" - mime "^2.4.4" - schema-utils "^2.5.0" - -url-loader@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/url-loader/-/url-loader-4.1.0.tgz#c7d6b0d6b0fccd51ab3ffc58a78d32b8d89a7be2" - integrity sha512-IzgAAIC8wRrg6NYkFIJY09vtktQcsvU8V6HhtQj9PTefbYImzLB1hufqo4m+RyM5N3mLx5BqJKccgxJS+W3kqw== - dependencies: - loader-utils "^2.0.0" - mime-types "^2.1.26" - schema-utils "^2.6.5" - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= - dependencies: - prepend-http "^1.0.1" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -url-parse@^1.4.3, url-parse@^1.4.7: - version "1.4.7" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= - -url-value-parser@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/url-value-parser/-/url-value-parser-2.0.1.tgz#c8179a095ab9ec1f5aa17ca36af5af396b4e95ed" - integrity sha512-bexECeREBIueboLGM3Y1WaAzQkIn+Tca/Xjmjmfd0S/hFHSCEoFkNh0/D0l9G4K74MkEP/lLFRlYnxX3d68Qgw== - -url@^0.11.0, url@~0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use-callback-ref@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.2.1.tgz#898759ccb9e14be6c7a860abafa3ffbd826c89bb" - integrity sha512-C3nvxh0ZpaOxs9RCnWwAJ+7bJPwQI8LHF71LzbQ3BvzH5XkdtlkMadqElGevg5bYBDFip4sAnD4m06zAKebg1w== - -use-memo-one@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.1.tgz#39e6f08fe27e422a7d7b234b5f9056af313bd22c" - integrity sha512-oFfsyun+bP7RX8X2AskHNTxu+R3QdE/RC5IefMbqptmACAA/gfol1KDD5KRzPsGMa62sWxGZw+Ui43u6x4ddoQ== - -use-sidecar@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.0.2.tgz#e72f582a75842f7de4ef8becd6235a4720ad8af6" - integrity sha512-287RZny6m5KNMTb/Kq9gmjafi7lQL0YHO1lYolU6+tY1h9+Z3uCtkJJ3OSOq3INwYf2hBryCcDh4520AhJibMA== - dependencies: - detect-node "^2.0.4" - tslib "^1.9.3" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util-promisify@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz#3c2236476c4d32c5ff3c47002add7c13b9a82a53" - integrity sha1-PCI2R2xNMsX/PEcAKt18E7moKlM= - dependencies: - object.getownpropertydescriptors "^2.0.3" - -util.promisify@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -util.promisify@^1.0.0, util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utila@^0.4.0, utila@~0.4: - version "0.4.0" - resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= - -utils-merge@1.0.1, utils-merge@1.x.x: - version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2, uuid@^3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" - integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== - -uuid@^8.0.0, uuid@^8.2.0: - version "8.3.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" - integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== - -v8-compile-cache@^2.0.3: - version "2.1.0" - resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" - integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== - -v8-to-istanbul@^4.1.3: - version "4.1.4" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz#b97936f21c0e2d9996d4985e5c5156e9d4e49cd6" - integrity sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -v8flags@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" - integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== - dependencies: - homedir-polyfill "^1.0.1" - -valid-url@1.0.9: - version "1.0.9" - resolved "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" - integrity sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA= - -validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3: - version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -validate-npm-package-name@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= - dependencies: - builtins "^1.0.3" - -validate.io-array@^1.0.3: - version "1.0.6" - resolved "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz#5b5a2cafd8f8b85abb2f886ba153f2d93a27774d" - integrity sha1-W1osr9j4uFq7L4hroVPy2Tond00= - -validate.io-function@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz#343a19802ed3b1968269c780e558e93411c0bad7" - integrity sha1-NDoZgC7TsZaCaceA5VjpNBHAutc= - -validate.io-integer-array@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz#2cabde033293a6bcbe063feafe91eaf46b13a089" - integrity sha1-LKveAzKTpry+Bj/q/pHq9GsToIk= - dependencies: - validate.io-array "^1.0.3" - validate.io-integer "^1.0.4" - -validate.io-integer@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz#168496480b95be2247ec443f2233de4f89878068" - integrity sha1-FoSWSAuVviJH7EQ/IjPeT4mHgGg= - dependencies: - validate.io-number "^1.0.3" - -validate.io-number@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz#f63ffeda248bf28a67a8d48e0e3b461a1665baf8" - integrity sha1-9j/+2iSL8opnqNSODjtGGhZluvg= - -vary@^1, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vfile-location@^2.0.0: - version "2.0.6" - resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e" - integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== - -vfile-message@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" - integrity sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA== - dependencies: - unist-util-stringify-position "^1.1.1" - -vfile@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a" - integrity sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w== - dependencies: - is-buffer "^1.1.4" - replace-ext "1.0.0" - unist-util-stringify-position "^1.0.0" - vfile-message "^1.0.0" - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -vscode-languageserver-types@^3.15.1: - version "3.15.1" - resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz#17be71d78d2f6236d414f0001ce1ef4d23e6b6de" - integrity sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ== - -w3c-hr-time@^1.0.1, w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -wait-on@5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/wait-on/-/wait-on-5.1.0.tgz#b697f21c6fea0908b9c7ad6ed56ace4736768b66" - integrity sha512-JM0kgaE+V0nCDvSl72iM05W8NDt2E2M56WC5mzR7M+T+k6xjt2yYpyom+xA8RasSunFGzbxIpAXbVzXqtweAnA== - dependencies: - "@hapi/joi" "^17.1.1" - axios "^0.19.2" - lodash "^4.17.19" - minimist "^1.2.5" - rxjs "^6.5.5" - -walker@^1.0.7, walker@~1.0.5: - version "1.0.7" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= - dependencies: - makeerror "1.0.x" - -warning@^4.0.2, warning@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" - integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== - dependencies: - loose-envify "^1.0.0" - -watchpack@^1.6.1: - version "1.6.1" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2" - integrity sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA== - dependencies: - chokidar "^2.1.8" - graceful-fs "^4.1.2" - neo-async "^2.5.0" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -wcwidth@^1.0.0, wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= - dependencies: - defaults "^1.0.3" - -webapi-parser@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/webapi-parser/-/webapi-parser-0.5.0.tgz#2632185c5d8f3e6addb2520857af89ea9844dc14" - integrity sha512-fPt6XuMqLSvBz8exwX4QE1UT+pROLHa00EMDCdO0ybICduwQ1V4f7AWX4pNOpCp+x+0FjczEsOxtQU0d8L3QKw== - dependencies: - ajv "6.5.2" - -webidl-conversions@^3.0.0, webidl-conversions@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= - -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.0.0: - version "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: - 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== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@^3.10.3: - 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== - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - 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" - 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.7" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "0.3.20" - sockjs-client "1.4.0" - spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.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-hot-middleware@^2.25.0: - version "2.25.0" - resolved "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz#4528a0a63ec37f8f8ef565cf9e534d57d09fe706" - integrity sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA== - dependencies: - ansi-html "0.0.7" - html-entities "^1.2.0" - querystring "^0.2.0" - strip-ansi "^3.0.0" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-node-externals@^2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-2.5.0.tgz#8d50f3289c71bc2b921a8da228e0b652acc503f1" - integrity sha512-g7/Z7Q/gsP8GkJkKZuJggn6RSb5PvxW1YD5vvmRZIxaSxAzkqjfL5n9CslVmNYlSqBVCyiqFgOqVS2IOObCSRg== - -webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: - version "1.4.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-virtual-modules@^0.2.0: - version "0.2.1" - resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.2.1.tgz#8ab73d4df0fd37ed27bb8d823bc60ea7266c8bf7" - integrity sha512-0PWBlxyt4uGDofooIEanWhhyBOHdd+lr7QpYNDLC7/yc5lqJT8zlc04MTIBnKj+c2BlQNNuwE5er/Tg4wowHzA== - dependencies: - debug "^3.0.0" - -webpack@^4.33.0, webpack@^4.38.0, webpack@^4.41.6: - version "4.43.0" - resolved "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" - integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.6.1" - 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= - dependencies: - websocket-extensions ">=0.1.1" - -websocket-driver@>=0.5.1: - version "0.7.3" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" - integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== - dependencies: - http-parser-js ">=0.4.0 <0.4.11" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -websocket@1.0.31: - version "1.0.31" - resolved "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz#e5d0f16c3340ed87670e489ecae6144c79358730" - integrity sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ== - dependencies: - debug "^2.2.0" - es5-ext "^0.10.50" - nan "^2.14.0" - typedarray-to-buffer "^3.1.5" - yaeti "^0.0.6" - -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-fetch@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" - integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== - -whatwg-fetch@^3.0.0, whatwg-fetch@^3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz#e11de14f4878f773fbebcde8871b2c0699af8b30" - integrity sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ== - -whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-2.0.1.tgz#5396b2043f020ee6f704d9c45ea8519e724de659" - integrity sha1-U5ayBD8CDub3BNnEXqhRnnJN5lk= - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -whatwg-url@^6.4.1: - version "6.5.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" - integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -whatwg-url@^8.0.0: - version "8.1.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.1.0.tgz#c628acdcf45b82274ce7281ee31dd3c839791771" - integrity sha512-vEIkwNi9Hqt4TV9RdnaBPNt+E2Sgmo3gePebCRgZ1R7g6d23+53zCTnuB0amKI4AXq6VM8jj2DUAa0S1vjJxkw== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^2.0.2" - webidl-conversions "^5.0.0" - -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which-pm-runs@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" - integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= - -which@1, which@^1.2.14, which@^1.2.9, which@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -window-size@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" - integrity sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU= - -windows-release@^3.1.0: - version "3.2.0" - resolved "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz#8122dad5afc303d833422380680a79cdfa91785f" - integrity sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA== - dependencies: - execa "^1.0.0" - -winston-transport@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.3.0.tgz#df68c0c202482c448d9b47313c07304c2d7c2c66" - integrity sha512-B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A== - dependencies: - readable-stream "^2.3.6" - triple-beam "^1.2.0" - -winston@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz#63061377976c73584028be2490a1846055f77f07" - integrity sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw== - dependencies: - async "^2.6.1" - diagnostics "^1.1.1" - is-stream "^1.1.0" - logform "^2.1.1" - one-time "0.0.4" - readable-stream "^3.1.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.3.0" - -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= - -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -worker-rpc@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" - integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== - dependencies: - microevent.ts "~0.1.1" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrap-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" - integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= - dependencies: - 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" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: - version "2.4.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -write-json-file@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" - integrity sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8= - dependencies: - detect-indent "^5.0.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - pify "^3.0.0" - sort-keys "^2.0.0" - write-file-atomic "^2.0.0" - -write-json-file@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a" - integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ== - dependencies: - detect-indent "^5.0.0" - graceful-fs "^4.1.15" - make-dir "^2.1.0" - pify "^4.0.1" - sort-keys "^2.0.0" - write-file-atomic "^2.4.2" - -write-pkg@^3.1.0: - version "3.2.0" - resolved "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz#0e178fe97820d389a8928bc79535dbe68c2cff21" - integrity sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw== - dependencies: - sort-keys "^2.0.0" - write-json-file "^2.2.0" - -write@1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - -ws@^5.2.0: - version "5.2.2" - resolved "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== - dependencies: - async-limiter "~1.0.0" - -ws@^6.0.0, ws@^6.1.2, ws@^6.2.1: - 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: - version "7.3.0" - resolved "https://registry.npmjs.org/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd" - integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w== - -x-is-string@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" - integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - -xml-but-prettier@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/xml-but-prettier/-/xml-but-prettier-1.0.1.tgz#f5a33267ed42ccd4e355c62557a5e39b01fb40f3" - integrity sha1-9aMyZ+1CzNTjVcYlV6XjmwH7QPM= - dependencies: - repeat-string "^1.5.2" - -xml-crypto@^1.4.0: - version "1.5.3" - resolved "https://registry.npmjs.org/xml-crypto/-/xml-crypto-1.5.3.tgz#a8f500b90f0dfaf0efa3331c345ecb0fff993c34" - integrity sha512-uHkmpUtX15xExe5iimPmakAZN+6CqIvjmaJTy4FwqGzaTjrKRBNeqMh8zGEzVNgW0dk6beFYpyQSgqV/J6C5xA== - dependencies: - xmldom "0.1.27" - xpath "0.0.27" - -xml-encryption@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/xml-encryption/-/xml-encryption-1.2.0.tgz#37c8b470beae88b4625ea8cad82f108ea0f9c364" - integrity sha512-J3NjGMY8jf6bTo15jURTYBLtsisbnyCeM+MuxtfiAkZEZBnSZpNKjUUORhiOScKvSi6tMOAaZ3r7bZOXOni+Ew== - dependencies: - escape-html "^1.0.3" - node-forge "^0.7.0" - xmldom "~0.1.15" - xpath "0.0.27" - -xml-js@^1.6.11: - version "1.6.11" - resolved "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" - integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== - dependencies: - sax "^1.2.4" - -"xml-name-validator@>= 2.0.1 < 3.0.0": - version "2.0.1" - resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" - integrity sha1-TYuPHszTQZqjYgYb7O9RXh5VljU= - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xml2js@0.4.x: - version "0.4.23" - resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" - integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - -xmlbuilder@^11.0.0, xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== - -xmlbuilder@^13.0.0: - version "13.0.2" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz#02ae33614b6a047d1c32b5389c1fdacb2bce47a7" - integrity sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -xmldom@0.1.27: - version "0.1.27" - resolved "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" - integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk= - -xmldom@0.1.x, xmldom@^0.1.22, xmldom@~0.1.15: - version "0.1.31" - resolved "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz#b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff" - integrity sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ== - -xpath@0.0.27: - version "0.0.27" - resolved "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz#dd3421fbdcc5646ac32c48531b4d7e9d0c2cfa92" - integrity sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ== - -xregexp@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50" - integrity sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g== - dependencies: - "@babel/runtime-corejs3" "^7.8.3" - -xss@^1.0.6: - version "1.0.7" - resolved "https://registry.npmjs.org/xss/-/xss-1.0.7.tgz#a554cbd5e909324bd6893fb47fff441ad54e2a95" - integrity sha512-A9v7tblGvxu8TWXQC9rlpW96a+LN1lyw6wyhpTmmGW+FwRMactchBR3ROKSi33UPCUcUHSu8s9YP6F+K3Mw//w== - dependencies: - commander "^2.20.3" - cssfilter "0.0.10" - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yaeti@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" - integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: - version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml-ast-parser@0.0.43: - version "0.0.43" - resolved "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" - integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== - -yaml@*, yaml@^1.10.0, yaml@^1.7.2, yaml@^1.9.2: - version "1.10.0" - resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" - integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== - -yamljs@^0.2.1: - version "0.2.10" - resolved "https://registry.npmjs.org/yamljs/-/yamljs-0.2.10.tgz#481cc7c25ca73af59f591f0c96e3ce56c757a40f" - integrity sha1-SBzHwlynOvWfWR8MluPOVsdXpA8= - dependencies: - argparse "^1.0.7" - glob "^7.0.5" - -yargs-parser@18.x, yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^10.0.0: - version "10.1.0" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" - integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== - dependencies: - camelcase "^4.1.0" - -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@^15.0.1: - version "15.0.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" - integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-3.2.0.tgz#5081355d19d9d0c8c5d81ada908cb4e6d186664f" - integrity sha1-UIE1XRnZ0MjF2BrakIy05tGGZk8= - dependencies: - camelcase "^3.0.0" - lodash.assign "^4.1.0" - -yargs@^13.3.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@^14.2.2: - version "14.2.3" - resolved "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" - integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== - dependencies: - cliui "^5.0.0" - decamelize "^1.2.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 "^15.0.1" - -yargs@^15.3.1, yargs@^15.4.1: - version "15.4.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.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 "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-2.3.0.tgz#e900c87250ec5cd080db6009fe3dd63156f1d7fb" - integrity sha1-6QDIclDsXNCA22AJ/j3WMVbx1/s= - dependencies: - wordwrap "0.0.2" - -yargs@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-5.0.0.tgz#3355144977d05757dbb86d6e38ec056123b3a66e" - integrity sha1-M1UUSXfQV1fbuG1uOOwFYSOzpm4= - dependencies: - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - lodash.assign "^4.2.0" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - window-size "^0.2.0" - y18n "^3.2.1" - yargs-parser "^3.2.0" - -yauzl@^2.10.0, yauzl@^2.4.2: - version "2.10.0" - resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -yml-loader@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/yml-loader/-/yml-loader-2.1.0.tgz#b976b8691b537b6d3dc7d92a9a7d34b90de10870" - integrity sha512-mo42d5FQWlXxpyTEpYywPu1LzK3F69pPPCOB8WKgJi8s+aqaogQP7XnXTjSobbKzzlZ/wXm7kg9CkP4x4ZnVMw== - dependencies: - js-yaml "^3.8.3" - loader-utils "^1.1.0" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yn@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yn/-/yn-4.0.0.tgz#611480051ea43b510da1dfdbe177ed159f00a979" - integrity sha512-huWiiCS4TxKc4SfgmTwW1K7JmXPPAmuXWYy4j9qjQo4+27Kni8mGhAAi1cloRWmBe2EqcLgt3IGqQoRL/MtPgg== - -yup@^0.29.1: - version "0.29.3" - resolved "https://registry.npmjs.org/yup/-/yup-0.29.3.tgz#69a30fd3f1c19f5d9e31b1cf1c2b851ce8045fea" - integrity sha512-RNUGiZ/sQ37CkhzKFoedkeMfJM0vNQyaz+wRZJzxdKE7VfDeVKH8bb4rr7XhRLbHJz5hSjoDNwMEIaKhuMZ8gQ== - dependencies: - "@babel/runtime" "^7.10.5" - fn-name "~3.0.0" - lodash "^4.17.15" - lodash-es "^4.17.11" - property-expr "^2.0.2" - synchronous-promise "^2.0.13" - toposort "^2.0.2" - -zen-observable-ts@^0.8.21: - version "0.8.21" - resolved "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d" - integrity sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg== - dependencies: - tslib "^1.9.3" - zen-observable "^0.8.0" - -zen-observable@^0.8.0, zen-observable@^0.8.15: - version "0.8.15" - resolved "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" - integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== - -zenscroll@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/zenscroll/-/zenscroll-4.0.2.tgz#e8d5774d1c0738a47bcfa8729f3712e2deddeb25" - integrity sha1-6NV3TRwHOKR7z6hynzcS4t7d6yU= - -zombie@^6.1.4: - version "6.1.4" - resolved "https://registry.npmjs.org/zombie/-/zombie-6.1.4.tgz#9f0f53f3d9a032beb7f3fe5b382146a3475a4d47" - integrity sha512-yxNvKtyz3PP8lkr31AYh7vdbBD4is9hYXiOQKPp+k/7GiDiFQXX1Ex+peCl4ttodu/bHZcIluJ8lxMla5XefBQ== - dependencies: - babel-runtime "6.26.0" - bluebird "^3.5.1" - debug "^4.1.0" - eventsource "^1.0.5" - iconv-lite "^0.4.21" - jsdom "11.12.0" - lodash "^4.17.10" - mime "^2.3.1" - ms "^2.1.1" - request "^2.85.0" - tough-cookie "^2.3.4" - ws "^6.1.2" From f3a1049ebb365b99ade749fb58eb72a1d1b425df Mon Sep 17 00:00:00 2001 From: NetPenguins Date: Sun, 30 Aug 2020 21:05:06 -0400 Subject: [PATCH 255/656] yarn.lock added back --- .../useDownloadWorkflowRunLogs.ts | 3 +- yarn.lock | 23528 ++++++++++++++++ 2 files changed, 23530 insertions(+), 1 deletion(-) create mode 100644 yarn.lock diff --git a/plugins/github-actions/src/components/WorkflowRunLogs/useDownloadWorkflowRunLogs.ts b/plugins/github-actions/src/components/WorkflowRunLogs/useDownloadWorkflowRunLogs.ts index 1440a1551b..5cf8d57227 100644 --- a/plugins/github-actions/src/components/WorkflowRunLogs/useDownloadWorkflowRunLogs.ts +++ b/plugins/github-actions/src/components/WorkflowRunLogs/useDownloadWorkflowRunLogs.ts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { useApi, githubAuthApiRef } from '@backstage/core'; import { useAsync } from 'react-use'; import { githubActionsApiRef } from '../../api'; @@ -32,4 +33,4 @@ export const useDownloadWorkflowRunLogs = (repo: string, owner: string, id: stri : Promise.reject('No repo/owner provided'); }, [repo, owner, id]); return details; - }; \ No newline at end of file + }; diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000000..99e7edbcb6 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,23528 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@apidevtools/json-schema-ref-parser@9.0.6", "@apidevtools/json-schema-ref-parser@^9.0.6": + version "9.0.6" + resolved "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz#5d9000a3ac1fd25404da886da6b266adcd99cf1c" + integrity sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg== + dependencies: + "@jsdevtools/ono" "^7.1.3" + call-me-maybe "^1.0.1" + js-yaml "^3.13.1" + +"@apollo/protobufjs@^1.0.3": + version "1.0.5" + resolved "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.0.5.tgz#a78b726147efc0795e74c8cb8a11aafc6e02f773" + integrity sha512-ZtyaBH1icCgqwIGb3zrtopV2D5Q8yxibkJzlaViM08eOhTQc7rACdYu0pfORFfhllvdMZ3aq69vifYHszY4gNA== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + "@types/node" "^10.1.0" + long "^4.0.0" + +"@apollographql/apollo-tools@^0.4.3": + version "0.4.8" + resolved "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.8.tgz#d81da89ee880c2345eb86bddb92b35291f6135ed" + integrity sha512-W2+HB8Y7ifowcf3YyPHgDI05izyRtOeZ4MqIr7LbTArtmJ0ZHULWpn84SGMW7NAvTV1tFExpHlveHhnXuJfuGA== + dependencies: + apollo-env "^0.6.5" + +"@apollographql/graphql-playground-html@1.6.26": + version "1.6.26" + resolved "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.26.tgz#2f7b610392e2a872722912fc342b43cf8d641cb3" + integrity sha512-XAwXOIab51QyhBxnxySdK3nuMEUohhDsHQ5Rbco/V1vjlP75zZ0ZLHD9dTpXTN8uxKxopb2lUvJTq+M4g2Q0HQ== + dependencies: + xss "^1.0.6" + +"@ardatan/aggregate-error@0.0.1": + version "0.0.1" + resolved "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.1.tgz#1403ac5de10d8ca689fc1f65844c27179ae1d44f" + integrity sha512-UQ9BequOTIavs0pTHLMwQwKQF8tTV1oezY/H2O9chA+JNPFZSua55xpU5dPSjAU9/jLJ1VwU+HJuTVN8u7S6Fg== + +"@asyncapi/avro-schema-parser@^0.1.2": + version "0.1.2" + resolved "https://registry.npmjs.org/@asyncapi/avro-schema-parser/-/avro-schema-parser-0.1.2.tgz#f6c340ccaa24bc36399d3a0f1a6e02790a948453" + integrity sha512-K4GlakiE42J9AWwAu3BWn3Qbf+N8C6vE4eEm5LEx7HqAhHG+FA0U7/3vvXoj31rnS/8sgPQpc2msLWQlmCtZyw== + +"@asyncapi/openapi-schema-parser@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@asyncapi/openapi-schema-parser/-/openapi-schema-parser-2.0.0.tgz#80e2f38e92b6635dde19aae07b92e3caa0effc58" + integrity sha512-XfDp3EIs6ptar3jARQZzi3ObmS44l6Qozc5GJmZJUQ6mHLTTqUGJ0nxcrXAW88vosjilgJVaQ63oGolA6smSHQ== + dependencies: + "@openapi-contrib/openapi-schema-to-json-schema" "^3.0.0" + +"@asyncapi/parser@^1.0.0-rc.1": + version "1.0.0-rc.3" + resolved "https://registry.npmjs.org/@asyncapi/parser/-/parser-1.0.0-rc.3.tgz#670224bad2b01dc4ec1b6c23ee502d79e89698e2" + integrity sha512-dfWCxNGt1e4aEmmvrTrV60K6Xo1UqQfYI3NQ5F/7zC6Jd0sSbUKPLlZRhKFxYAtX6bO2IMc4f+6XRgGNw9NQ8w== + dependencies: + "@apidevtools/json-schema-ref-parser" "^9.0.6" + "@asyncapi/specs" "^2.7.4" + "@fmvilas/pseudo-yaml-ast" "^0.3.1" + ajv "^6.10.1" + js-yaml "^3.13.1" + json-to-ast "^2.1.0" + node-fetch "^2.6.0" + tiny-merge-patch "^0.1.2" + +"@asyncapi/raml-dt-schema-parser@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@asyncapi/raml-dt-schema-parser/-/raml-dt-schema-parser-2.0.0.tgz#6e9eff89032aa7b82a963d8e72e320e493fc3835" + integrity sha512-ve41LIvbqDU8s0ZeDrWy+dyQZ/XSb7vKiJUHNgy8xcgxsz4YuttbEJbyGJvarw3qf2y+0y6cA1KUFiXoE+AIUg== + dependencies: + js-yaml "^3.13.1" + ramldt2jsonschema "^1.1.0" + +"@asyncapi/specs@^2.7.4": + version "2.7.4" + resolved "https://registry.npmjs.org/@asyncapi/specs/-/specs-2.7.4.tgz#5db4390b68aeb40d70c1723d8f46b0a091110afc" + integrity sha512-3Np9ip1Qn5AgnxTrbI0CMW2F/WUorpiAKz+GUfEy4a6GPk0eTSI6CIcbx2/jej5P91nhEyny9+D3oIzn2MreTA== + +"@babel/code-frame@7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" + integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/code-frame@7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + +"@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.5.5": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" + integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ== + dependencies: + browserslist "^4.12.0" + invariant "^2.2.4" + semver "^5.5.0" + +"@babel/core@^7.1.0", "@babel/core@^7.4.4", "@babel/core@^7.4.5", "@babel/core@^7.7.5", "@babel/core@^7.9.0": + version "7.11.4" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.11.4.tgz#4301dfdfafa01eeb97f1896c5501a3f0655d4229" + integrity sha512-5deljj5HlqRXN+5oJTY7Zs37iH3z3b++KjiKtIsJy1NrjOOVSEaJHEetLBhyu0aQOSNNZ/0IuEAan9GzRuDXHg== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.11.4" + "@babel/helper-module-transforms" "^7.11.0" + "@babel/helpers" "^7.10.4" + "@babel/parser" "^7.11.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.11.0" + "@babel/types" "^7.11.0" + 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/generator@^7.11.0", "@babel/generator@^7.11.4": + version "7.11.4" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.11.4.tgz#1ec7eec00defba5d6f83e50e3ee72ae2fee482be" + integrity sha512-Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g== + dependencies: + "@babel/types" "^7.11.0" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" + integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" + integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-builder-react-jsx-experimental@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz#f35e956a19955ff08c1258e44a515a6d6248646b" + integrity sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-module-imports" "^7.10.4" + "@babel/types" "^7.10.5" + +"@babel/helper-builder-react-jsx@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d" + integrity sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-compilation-targets@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2" + integrity sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ== + dependencies: + "@babel/compat-data" "^7.10.4" + browserslist "^4.12.0" + invariant "^2.2.4" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/helper-create-class-features-plugin@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" + integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.10.5" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" + +"@babel/helper-create-regexp-features-plugin@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" + integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-regex" "^7.10.4" + regexpu-core "^4.7.0" + +"@babel/helper-define-map@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" + integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/types" "^7.10.5" + lodash "^4.17.19" + +"@babel/helper-explode-assignable-expression@^7.10.4": + version "7.11.4" + resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz#2d8e3470252cc17aba917ede7803d4a7a276a41b" + integrity sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" + integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== + dependencies: + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-get-function-arity@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" + integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-hoist-variables@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" + integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" + integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q== + dependencies: + "@babel/types" "^7.11.0" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" + integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" + integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/template" "^7.10.4" + "@babel/types" "^7.11.0" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" + integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + 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-regex@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" + integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== + dependencies: + lodash "^4.17.19" + +"@babel/helper-remap-async-to-generator@^7.10.4": + version "7.11.4" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz#4474ea9f7438f18575e30b0cac784045b402a12d" + integrity sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-wrap-function" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-replace-supers@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" + integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-simple-access@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" + integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== + dependencies: + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" + integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q== + dependencies: + "@babel/types" "^7.11.0" + +"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" + integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== + dependencies: + "@babel/types" "^7.11.0" + +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + +"@babel/helper-wrap-function@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" + integrity sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helpers@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" + integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== + dependencies: + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/highlight@^7.0.0", "@babel/highlight@^7.10.4", "@babel/highlight@^7.8.3": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.0", "@babel/parser@^7.11.4": + version "7.11.4" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.11.4.tgz#6fa1a118b8b0d80d0267b719213dc947e88cc0ca" + integrity sha512-MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA== + +"@babel/plugin-proposal-async-generator-functions@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" + integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.10.4" + "@babel/plugin-syntax-async-generators" "^7.8.0" + +"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.7.0", "@babel/plugin-proposal-class-properties@^7.8.3": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" + integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-proposal-dynamic-import@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" + integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + +"@babel/plugin-proposal-export-namespace-from@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54" + integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" + integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.0" + +"@babel/plugin-proposal-logical-assignment-operators@^7.11.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8" + integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" + integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + +"@babel/plugin-proposal-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" + integrity sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.11.0", "@babel/plugin-proposal-object-rest-spread@^7.6.2", "@babel/plugin-proposal-object-rest-spread@^7.9.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" + integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.10.4" + +"@babel/plugin-proposal-optional-catch-binding@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" + integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@^7.11.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" + integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-private-methods@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" + integrity sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" + integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-async-generators@^7.8.0", "@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" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.10.4", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c" + integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.0": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-flow@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz#53351dd7ae01995e567d04ce42af1a6e0ba846a6" + integrity sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c" + integrity sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@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" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" + integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-arrow-functions@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" + integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-async-to-generator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" + integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.10.4" + +"@babel/plugin-transform-block-scoped-functions@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" + integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-block-scoping@^7.10.4": + version "7.11.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" + integrity sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-classes@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" + integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-define-map" "^7.10.4" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" + integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-destructuring@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" + integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" + integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-duplicate-keys@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" + integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-exponentiation-operator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" + integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-flow-strip-types@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz#c497957f09e86e3df7296271e9eb642876bf7788" + integrity sha512-XTadyuqNst88UWBTdLjM+wEY7BFnY2sYtPyAidfC7M/QaZnSuIZpMvLxqGT7phAcnGyWh/XQFLKcGf04CnvxSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-flow" "^7.10.4" + +"@babel/plugin-transform-for-of@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" + integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" + integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-literals@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" + integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" + integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-modules-amd@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" + integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw== + dependencies: + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.10.4", "@babel/plugin-transform-modules-commonjs@^7.4.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" + integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w== + dependencies: + "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-simple-access" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" + integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw== + dependencies: + "@babel/helper-hoist-variables" "^7.10.4" + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" + integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA== + dependencies: + "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" + integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + +"@babel/plugin-transform-new-target@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" + integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-object-super@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" + integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + +"@babel/plugin-transform-parameters@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" + integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw== + dependencies: + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-property-literals@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" + integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-react-constant-elements@^7.0.0", "@babel/plugin-transform-react-constant-elements@^7.2.0", "@babel/plugin-transform-react-constant-elements@^7.6.3", "@babel/plugin-transform-react-constant-elements@^7.7.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz#0f485260bf1c29012bb973e7e404749eaac12c9e" + integrity sha512-cYmQBW1pXrqBte1raMkAulXmi7rjg3VI6ZLg9QIic8Hq7BtYXaWuZSxsr2siOMI6SWwpxjWfnwhTUrd7JlAV7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-react-display-name@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz#b5795f4e3e3140419c3611b7a2a3832b9aef328d" + integrity sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-react-jsx-development@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz#6ec90f244394604623880e15ebc3c34c356258ba" + integrity sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ== + dependencies: + "@babel/helper-builder-react-jsx-experimental" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.10.4" + +"@babel/plugin-transform-react-jsx-self@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz#cd301a5fed8988c182ed0b9d55e9bd6db0bd9369" + integrity sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.10.4" + +"@babel/plugin-transform-react-jsx-source@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz#34f1779117520a779c054f2cdd9680435b9222b4" + integrity sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.10.4" + +"@babel/plugin-transform-react-jsx@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz#673c9f913948764a4421683b2bef2936968fddf2" + integrity sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A== + dependencies: + "@babel/helper-builder-react-jsx" "^7.10.4" + "@babel/helper-builder-react-jsx-experimental" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.10.4" + +"@babel/plugin-transform-react-pure-annotations@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz#3eefbb73db94afbc075f097523e445354a1c6501" + integrity sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-regenerator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" + integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" + integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-shorthand-properties@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" + integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-spread@^7.11.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" + integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" + +"@babel/plugin-transform-sticky-regex@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" + integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-regex" "^7.10.4" + +"@babel/plugin-transform-template-literals@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" + integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-typeof-symbol@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" + integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-unicode-escapes@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" + integrity sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-unicode-regex@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" + integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/polyfill@^7.8.7": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.10.4.tgz#915e5bfe61490ac0199008e35ca9d7d151a8e45a" + integrity sha512-8BYcnVqQ5kMD2HXoHInBH7H1b/uP3KdnwCYXOqFnXqguOyuu443WXusbIUbWEfY3Z0Txk0M1uG/8YuAMhNl6zg== + dependencies: + core-js "^2.6.5" + regenerator-runtime "^0.13.4" + +"@babel/preset-env@^7.4.5", "@babel/preset-env@^7.9.0", "@babel/preset-env@^7.9.5": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796" + integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg== + dependencies: + "@babel/compat-data" "^7.11.0" + "@babel/helper-compilation-targets" "^7.10.4" + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-proposal-async-generator-functions" "^7.10.4" + "@babel/plugin-proposal-class-properties" "^7.10.4" + "@babel/plugin-proposal-dynamic-import" "^7.10.4" + "@babel/plugin-proposal-export-namespace-from" "^7.10.4" + "@babel/plugin-proposal-json-strings" "^7.10.4" + "@babel/plugin-proposal-logical-assignment-operators" "^7.11.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" + "@babel/plugin-proposal-numeric-separator" "^7.10.4" + "@babel/plugin-proposal-object-rest-spread" "^7.11.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" + "@babel/plugin-proposal-optional-chaining" "^7.11.0" + "@babel/plugin-proposal-private-methods" "^7.10.4" + "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-class-properties" "^7.10.4" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.10.4" + "@babel/plugin-transform-arrow-functions" "^7.10.4" + "@babel/plugin-transform-async-to-generator" "^7.10.4" + "@babel/plugin-transform-block-scoped-functions" "^7.10.4" + "@babel/plugin-transform-block-scoping" "^7.10.4" + "@babel/plugin-transform-classes" "^7.10.4" + "@babel/plugin-transform-computed-properties" "^7.10.4" + "@babel/plugin-transform-destructuring" "^7.10.4" + "@babel/plugin-transform-dotall-regex" "^7.10.4" + "@babel/plugin-transform-duplicate-keys" "^7.10.4" + "@babel/plugin-transform-exponentiation-operator" "^7.10.4" + "@babel/plugin-transform-for-of" "^7.10.4" + "@babel/plugin-transform-function-name" "^7.10.4" + "@babel/plugin-transform-literals" "^7.10.4" + "@babel/plugin-transform-member-expression-literals" "^7.10.4" + "@babel/plugin-transform-modules-amd" "^7.10.4" + "@babel/plugin-transform-modules-commonjs" "^7.10.4" + "@babel/plugin-transform-modules-systemjs" "^7.10.4" + "@babel/plugin-transform-modules-umd" "^7.10.4" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" + "@babel/plugin-transform-new-target" "^7.10.4" + "@babel/plugin-transform-object-super" "^7.10.4" + "@babel/plugin-transform-parameters" "^7.10.4" + "@babel/plugin-transform-property-literals" "^7.10.4" + "@babel/plugin-transform-regenerator" "^7.10.4" + "@babel/plugin-transform-reserved-words" "^7.10.4" + "@babel/plugin-transform-shorthand-properties" "^7.10.4" + "@babel/plugin-transform-spread" "^7.11.0" + "@babel/plugin-transform-sticky-regex" "^7.10.4" + "@babel/plugin-transform-template-literals" "^7.10.4" + "@babel/plugin-transform-typeof-symbol" "^7.10.4" + "@babel/plugin-transform-unicode-escapes" "^7.10.4" + "@babel/plugin-transform-unicode-regex" "^7.10.4" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.11.0" + browserslist "^4.12.0" + core-js-compat "^3.6.2" + invariant "^2.2.2" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/preset-flow@^7.0.0": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.10.4.tgz#e0d9c72f8cb02d1633f6a5b7b16763aa2edf659f" + integrity sha512-XI6l1CptQCOBv+ZKYwynyswhtOKwpZZp5n0LG1QKCo8erRhqjoQV6nvx61Eg30JHpysWQSBwA2AWRU3pBbSY5g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-flow-strip-types" "^7.10.4" + +"@babel/preset-modules@^0.1.3": + version "0.1.4" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.0.0", "@babel/preset-react@^7.9.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz#92e8a66d816f9911d11d4cc935be67adfc82dbcf" + integrity sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-react-display-name" "^7.10.4" + "@babel/plugin-transform-react-jsx" "^7.10.4" + "@babel/plugin-transform-react-jsx-development" "^7.10.4" + "@babel/plugin-transform-react-jsx-self" "^7.10.4" + "@babel/plugin-transform-react-jsx-source" "^7.10.4" + "@babel/plugin-transform-react-pure-annotations" "^7.10.4" + +"@babel/register@^7.9.0": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/register/-/register-7.10.5.tgz#354f3574895f1307f79efe37a51525e52fd38d89" + integrity sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw== + dependencies: + find-cache-dir "^2.0.0" + lodash "^4.17.19" + make-dir "^2.1.0" + pirates "^4.0.0" + source-map-support "^0.5.16" + +"@babel/runtime-corejs2@^7.10.4", "@babel/runtime-corejs2@^7.8.7": + version "7.11.2" + resolved "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.11.2.tgz#700a03945ebad0d31ba6690fc8a6bcc9040faa47" + integrity sha512-AC/ciV28adSSpEkBglONBWq4/Lvm6GAZuxIoyVtsnUpZMl0bxLtoChEnYAkP+47KyOCayZanojtflUEUJtR/6Q== + dependencies: + core-js "^2.6.5" + regenerator-runtime "^0.13.4" + +"@babel/runtime-corejs3@^7.10.2": + version "7.11.2" + resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.11.2.tgz#02c3029743150188edeb66541195f54600278419" + integrity sha512-qh5IR+8VgFz83VBa6OkaET6uN/mJOhHONuy3m1sgF0CV6mXdPSEBdA7e1eUbVvyNtANjMbg22JUv71BaDXLY6A== + dependencies: + 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.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@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.11.2" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" + integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.10.4", "@babel/template@^7.3.3": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" + integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0", "@babel/traverse@^7.9.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" + integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.11.0" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/parser" "^7.11.0" + "@babel/types" "^7.11.0" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.9.0", "@babel/types@^7.9.5": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" + integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@braintree/sanitize-url@^4.0.0": + version "4.1.1" + resolved "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-4.1.1.tgz#671b3cfdbcc40d1449036ce586e882ab6150828e" + integrity sha512-epVksusKVEpwBs2vRg3SWssxn9KXs9CxEYNOcgeSRLRjq070ABj5bLPxkmtQpVeSPCHj8kfAE9J6z2WsLr4wZg== + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@cypress/listr-verbose-renderer@^0.4.1": + version "0.4.1" + resolved "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a" + integrity sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo= + dependencies: + chalk "^1.1.3" + cli-cursor "^1.0.2" + date-fns "^1.27.2" + figures "^1.7.0" + +"@cypress/request@^2.88.5": + version "2.88.5" + resolved "https://registry.npmjs.org/@cypress/request/-/request-2.88.5.tgz#8d7ecd17b53a849cfd5ab06d5abe7d84976375d7" + integrity sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +"@cypress/xvfb@^1.2.4": + version "1.2.4" + resolved "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" + integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== + dependencies: + debug "^3.1.0" + lodash.once "^4.1.1" + +"@dabh/diagnostics@^2.0.2": + version "2.0.2" + resolved "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz#290d08f7b381b8f94607dc8f471a12c675f9db31" + integrity sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" + +"@date-io/core@1.x", "@date-io/core@^1.3.13": + version "1.3.13" + resolved "https://registry.npmjs.org/@date-io/core/-/core-1.3.13.tgz#90c71da493f20204b7a972929cc5c482d078b3fa" + integrity sha512-AlEKV7TxjeK+jxWVKcCFrfYAk8spX9aCyiToFIiLPtfQbsjmRGLIhb5VZgptQcJdHtLXo7+m0DuurwFgUToQuA== + +"@date-io/date-fns@^1.1.0": + version "1.3.13" + resolved "https://registry.npmjs.org/@date-io/date-fns/-/date-fns-1.3.13.tgz#7798844041640ab393f7e21a7769a65d672f4735" + integrity sha512-yXxGzcRUPcogiMj58wVgFjc9qUYrCnnU9eLcyNbsQCmae4jPuZCDoIBR21j8ZURsM7GRtU62VOw5yNd4dDHunA== + dependencies: + "@date-io/core" "^1.3.13" + +"@emotion/cache@^10.0.27": + version "10.0.29" + resolved "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz#87e7e64f412c060102d589fe7c6dc042e6f9d1e0" + integrity sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ== + dependencies: + "@emotion/sheet" "0.9.4" + "@emotion/stylis" "0.8.5" + "@emotion/utils" "0.11.3" + "@emotion/weak-memoize" "0.2.5" + +"@emotion/core@^10.0.0", "@emotion/core@^10.0.20", "@emotion/core@^10.0.28": + version "10.0.35" + resolved "https://registry.npmjs.org/@emotion/core/-/core-10.0.35.tgz#513fcf2e22cd4dfe9d3894ed138c9d7a859af9b3" + integrity sha512-sH++vJCdk025fBlRZSAhkRlSUoqSqgCzYf5fMOmqqi3bM6how+sQpg3hkgJonj8GxXM4WbD7dRO+4tegDB9fUw== + dependencies: + "@babel/runtime" "^7.5.5" + "@emotion/cache" "^10.0.27" + "@emotion/css" "^10.0.27" + "@emotion/serialize" "^0.11.15" + "@emotion/sheet" "0.9.4" + "@emotion/utils" "0.11.3" + +"@emotion/css@^10.0.27": + version "10.0.27" + resolved "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz#3a7458198fbbebb53b01b2b87f64e5e21241e14c" + integrity sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw== + dependencies: + "@emotion/serialize" "^0.11.15" + "@emotion/utils" "0.11.3" + babel-plugin-emotion "^10.0.27" + +"@emotion/hash@0.8.0", "@emotion/hash@^0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" + integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== + +"@emotion/is-prop-valid@0.8.8", "@emotion/is-prop-valid@^0.8.1", "@emotion/is-prop-valid@^0.8.6": + version "0.8.8" + resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" + integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== + dependencies: + "@emotion/memoize" "0.7.4" + +"@emotion/memoize@0.7.4", "@emotion/memoize@^0.7.1": + version "0.7.4" + resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" + integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== + +"@emotion/serialize@^0.11.15", "@emotion/serialize@^0.11.16": + version "0.11.16" + resolved "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz#dee05f9e96ad2fb25a5206b6d759b2d1ed3379ad" + integrity sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg== + dependencies: + "@emotion/hash" "0.8.0" + "@emotion/memoize" "0.7.4" + "@emotion/unitless" "0.7.5" + "@emotion/utils" "0.11.3" + csstype "^2.5.7" + +"@emotion/sheet@0.9.4": + version "0.9.4" + resolved "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz#894374bea39ec30f489bbfc3438192b9774d32e5" + integrity sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA== + +"@emotion/styled-base@^10.0.27": + version "10.0.31" + resolved "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.0.31.tgz#940957ee0aa15c6974adc7d494ff19765a2f742a" + integrity sha512-wTOE1NcXmqMWlyrtwdkqg87Mu6Rj1MaukEoEmEkHirO5IoHDJ8LgCQL4MjJODgxWxXibGR3opGp1p7YvkNEdXQ== + dependencies: + "@babel/runtime" "^7.5.5" + "@emotion/is-prop-valid" "0.8.8" + "@emotion/serialize" "^0.11.15" + "@emotion/utils" "0.11.3" + +"@emotion/styled@^10.0.0", "@emotion/styled@^10.0.17": + 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== + dependencies: + "@emotion/styled-base" "^10.0.27" + babel-plugin-emotion "^10.0.27" + +"@emotion/stylis@0.8.5": + version "0.8.5" + resolved "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" + integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== + +"@emotion/unitless@0.7.5": + version "0.7.5" + resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" + integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== + +"@emotion/utils@0.11.3": + version "0.11.3" + resolved "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz#a759863867befa7e583400d322652a3f44820924" + integrity sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw== + +"@emotion/weak-memoize@0.2.5": + version "0.2.5" + resolved "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" + integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== + +"@evocateur/libnpmaccess@^3.1.2": + version "3.1.2" + resolved "https://registry.npmjs.org/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz#ecf7f6ce6b004e9f942b098d92200be4a4b1c845" + integrity sha512-KSCAHwNWro0CF2ukxufCitT9K5LjL/KuMmNzSu8wuwN2rjyKHD8+cmOsiybK+W5hdnwc5M1SmRlVCaMHQo+3rg== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + aproba "^2.0.0" + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + npm-package-arg "^6.1.0" + +"@evocateur/libnpmpublish@^1.2.2": + version "1.2.2" + resolved "https://registry.npmjs.org/@evocateur/libnpmpublish/-/libnpmpublish-1.2.2.tgz#55df09d2dca136afba9c88c759ca272198db9f1a" + integrity sha512-MJrrk9ct1FeY9zRlyeoyMieBjGDG9ihyyD9/Ft6MMrTxql9NyoEx2hw9casTIP4CdqEVu+3nQ2nXxoJ8RCXyFg== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + aproba "^2.0.0" + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + lodash.clonedeep "^4.5.0" + normalize-package-data "^2.4.0" + npm-package-arg "^6.1.0" + semver "^5.5.1" + ssri "^6.0.1" + +"@evocateur/npm-registry-fetch@^4.0.0": + version "4.0.0" + resolved "https://registry.npmjs.org/@evocateur/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz#8c4c38766d8d32d3200fcb0a83f064b57365ed66" + integrity sha512-k1WGfKRQyhJpIr+P17O5vLIo2ko1PFLKwoetatdduUSt/aQ4J2sJrJwwatdI5Z3SiYk/mRH9S3JpdmMFd/IK4g== + dependencies: + JSONStream "^1.3.4" + bluebird "^3.5.1" + figgy-pudding "^3.4.1" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" + npm-package-arg "^6.1.0" + safe-buffer "^5.1.2" + +"@evocateur/pacote@^9.6.3": + version "9.6.5" + resolved "https://registry.npmjs.org/@evocateur/pacote/-/pacote-9.6.5.tgz#33de32ba210b6f17c20ebab4d497efc6755f4ae5" + integrity sha512-EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + bluebird "^3.5.3" + cacache "^12.0.3" + chownr "^1.1.2" + figgy-pudding "^3.5.1" + get-stream "^4.1.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" + minimatch "^3.0.4" + minipass "^2.3.5" + mississippi "^3.0.0" + mkdirp "^0.5.1" + normalize-package-data "^2.5.0" + npm-package-arg "^6.1.0" + npm-packlist "^1.4.4" + npm-pick-manifest "^3.0.0" + osenv "^0.1.5" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + protoduck "^5.0.1" + rimraf "^2.6.3" + safe-buffer "^5.2.0" + semver "^5.7.0" + ssri "^6.0.1" + tar "^4.4.10" + unique-filename "^1.1.1" + which "^1.3.1" + +"@fmvilas/pseudo-yaml-ast@^0.3.1": + version "0.3.1" + resolved "https://registry.npmjs.org/@fmvilas/pseudo-yaml-ast/-/pseudo-yaml-ast-0.3.1.tgz#66c5df2c2d76ba8571dc5bd98fda4d7dce6121de" + integrity sha512-8OAB74W2a9M3k9bjYD8AjVXkX+qO8c0SqNT5HlgOqx7AxSw8xdksEcZp7gFtfi+4njSxT6+76ZR+1ubjAwQHOg== + dependencies: + yaml-ast-parser "0.0.43" + +"@graphql-tools/delegate@6.1.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-6.1.0.tgz#ceda597f091d5aed8065df3cea8d59858e35782e" + integrity sha512-LBulO9tEx+4TvRIY3yCivCYdtI18BpDX/qlSs+K7AuTgCH8eJ/S/FinFRTpTK/9bQwXnBh/d9WjiiRekUCiW6g== + dependencies: + "@ardatan/aggregate-error" "0.0.1" + "@graphql-tools/schema" "6.1.0" + "@graphql-tools/utils" "6.1.0" + is-promise "4.0.0" + tslib "~2.0.1" + +"@graphql-tools/graphql-file-loader@^6.0.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.1.0.tgz#8b0d8dc7ffd0417c68ad97a916a0ea1841d55d36" + integrity sha512-UZsCx/JJPlkCPYoKJhOcMpDYRx0RagBJ/0gVjgUyiykGJyl8QqTUz34QZhRFg5WGPWcEyT8z18w5WocPCXwK+g== + dependencies: + "@graphql-tools/import" "6.1.0" + "@graphql-tools/utils" "6.1.0" + fs-extra "9.0.1" + tslib "~2.0.1" + +"@graphql-tools/import@6.1.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@graphql-tools/import/-/import-6.1.0.tgz#82994007a99ba93db3ad95a5c51a59d9c9e84439" + integrity sha512-MuW9v8w8hc6GvsWQH41NnOAr1f7bkV4E6AWMYpndAHPcuwwGHiLHizLCEjbNovzdoA8N9h3sMenhQyRpCAiEzg== + dependencies: + fs-extra "9.0.1" + resolve-from "5.0.0" + +"@graphql-tools/json-file-loader@^6.0.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-6.1.0.tgz#1112dffa2936fb157185afd693e3de6a1805705c" + integrity sha512-U5+aU4Bi9Se2+rFE0lwARHii1TyKtVG+WPNtBM1YJdgQ800/jrgjSCBl2Js/bd2YkICMLz++lCehyQSgrLpIsg== + dependencies: + "@graphql-tools/utils" "6.1.0" + fs-extra "9.0.1" + tslib "~2.0.1" + +"@graphql-tools/load@^6.0.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@graphql-tools/load/-/load-6.1.0.tgz#0880050722ac4297c6f782a84b8b87ce464933d8" + integrity sha512-4puWwWPvLKskTtabMXlYW4fdm5yaAgHNwJeUhs3/ftX9mrJOa8HnfIxULZOES9XEbaRoaVQ0wPRBjJKcTBJ7CQ== + dependencies: + "@graphql-tools/merge" "6.1.0" + "@graphql-tools/utils" "6.1.0" + globby "11.0.1" + import-from "3.0.0" + is-glob "4.0.1" + p-limit "3.0.2" + tslib "~2.0.1" + unixify "1.0.0" + valid-url "1.0.9" + +"@graphql-tools/merge@6.1.0", "@graphql-tools/merge@^6.0.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.1.0.tgz#5c9d09b2387514f4b2d679a2e2b15335cee95f15" + integrity sha512-dD7J/LELhy87+5V8pko5EhSx2leoRIT02V5coa6S19PTiNrVqCJU/fMMKdWC1FmHSWUYOf+wZhItsilUxPr7XQ== + dependencies: + "@graphql-tools/schema" "6.1.0" + "@graphql-tools/utils" "6.1.0" + tslib "~2.0.1" + +"@graphql-tools/schema@6.1.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-6.1.0.tgz#8176bf3b56dc1e78243a5f01646c7abbc9921d26" + integrity sha512-AZflTf9HU3Uy8UgUwxwFXN9Lf+9D36LBoDRIxPRhsj6EtawbwCqsd3UFwNek0OgiwNi3BL2b+D+6QEcw2IOsDA== + dependencies: + "@graphql-tools/utils" "6.1.0" + tslib "~2.0.1" + +"@graphql-tools/url-loader@^6.0.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.1.0.tgz#36a7cb6270548d3e800acebc25ecf65cb8ba6214" + integrity sha512-AzTDZPQqHv2jrTrKhPgLbeWBhEjwFMAFnRKPsaGnSxkZWAeTeA4XevbWS4wl9jho0klTtSRBbKnNBp+dxbpmwA== + dependencies: + "@graphql-tools/delegate" "6.1.0" + "@graphql-tools/utils" "6.1.0" + "@graphql-tools/wrap" "6.1.0" + "@types/websocket" "1.0.1" + cross-fetch "3.0.5" + subscriptions-transport-ws "0.9.18" + tslib "~2.0.1" + valid-url "1.0.9" + websocket "1.0.31" + +"@graphql-tools/utils@6.1.0", "@graphql-tools/utils@^6.0.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.1.0.tgz#a8ab67bb8d8a879f40d29b334f48de6e6be71c41" + integrity sha512-YcyslZ/8rk5nQOGnkEDp/xi6Xphu0mgjh5LTZ1qUio5P+d95/9MW44cPdmi3Feg4kO8u+1GcPC+685hFpJlZJw== + dependencies: + "@ardatan/aggregate-error" "0.0.1" + camel-case "4.1.1" + +"@graphql-tools/wrap@6.1.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-6.1.0.tgz#52451574dc667a423b66ad05720add03cbecb7b8" + integrity sha512-sJ4ePvgQ2AKWGQ75hockh1k+0BhPbr7SZqe4T/HKNMCuATNiRi0m78FoxHTp/JODMKRPfhadunD74CXrxupy6A== + dependencies: + "@graphql-tools/delegate" "6.1.0" + "@graphql-tools/schema" "6.1.0" + "@graphql-tools/utils" "6.1.0" + aggregate-error "3.1.0" + is-promise "4.0.0" + tslib "~2.0.1" + +"@hapi/address@^4.1.0": + version "4.1.0" + resolved "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz#d60c5c0d930e77456fdcde2598e77302e2955e1d" + integrity sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@hapi/formula@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz#edade0619ed58c8e4f164f233cda70211e787128" + integrity sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A== + +"@hapi/hoek@^9.0.0": + version "9.0.4" + resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz#e80ad4e8e8d2adc6c77d985f698447e8628b6010" + integrity sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw== + +"@hapi/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz#805b40d4dbec04fc116a73089494e00f073de8df" + integrity sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw== + +"@hapi/topo@^5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz#c19af8577fa393a06e9c77b60995af959be721e7" + integrity sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@hot-loader/react-dom@^16.13.0": + version "16.13.0" + resolved "https://registry.npmjs.org/@hot-loader/react-dom/-/react-dom-16.13.0.tgz#de245b42358110baf80aaf47a0592153d4047997" + integrity sha512-lJZrmkucz2MrQJTQtJobx5MICXcfQvKihszqv655p557HPi0hMOWxrNpiHv3DWD8ugNWjtWcVWqRnFvwsHq1mQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.19.0" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.2" + resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" + integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== + +"@jest/console@^26.3.0": + version "26.3.0" + resolved "https://registry.npmjs.org/@jest/console/-/console-26.3.0.tgz#ed04063efb280c88ba87388b6f16427c0a85c856" + integrity sha512-/5Pn6sJev0nPUcAdpJHMVIsA8sKizL2ZkcKPE5+dJrCccks7tcM7c9wbgHudBJbxXLoTbqsHkG1Dofoem4F09w== + dependencies: + "@jest/types" "^26.3.0" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.3.0" + jest-util "^26.3.0" + slash "^3.0.0" + +"@jest/core@^26.4.2": + version "26.4.2" + resolved "https://registry.npmjs.org/@jest/core/-/core-26.4.2.tgz#85d0894f31ac29b5bab07aa86806d03dd3d33edc" + integrity sha512-sDva7YkeNprxJfepOctzS8cAk9TOekldh+5FhVuXS40+94SHbiicRO1VV2tSoRtgIo+POs/Cdyf8p76vPTd6dg== + dependencies: + "@jest/console" "^26.3.0" + "@jest/reporters" "^26.4.1" + "@jest/test-result" "^26.3.0" + "@jest/transform" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^26.3.0" + jest-config "^26.4.2" + jest-haste-map "^26.3.0" + jest-message-util "^26.3.0" + jest-regex-util "^26.0.0" + jest-resolve "^26.4.0" + jest-resolve-dependencies "^26.4.2" + jest-runner "^26.4.2" + jest-runtime "^26.4.2" + jest-snapshot "^26.4.2" + jest-util "^26.3.0" + jest-validate "^26.4.2" + jest-watcher "^26.3.0" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^26.3.0": + version "26.3.0" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-26.3.0.tgz#e6953ab711ae3e44754a025f838bde1a7fd236a0" + integrity sha512-EW+MFEo0DGHahf83RAaiqQx688qpXgl99wdb8Fy67ybyzHwR1a58LHcO376xQJHfmoXTu89M09dH3J509cx2AA== + dependencies: + "@jest/fake-timers" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + jest-mock "^26.3.0" + +"@jest/fake-timers@^26.3.0": + version "26.3.0" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.3.0.tgz#f515d4667a6770f60ae06ae050f4e001126c666a" + integrity sha512-ZL9ytUiRwVP8ujfRepffokBvD2KbxbqMhrXSBhSdAhISCw3gOkuntisiSFv+A6HN0n0fF4cxzICEKZENLmW+1A== + dependencies: + "@jest/types" "^26.3.0" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.3.0" + jest-mock "^26.3.0" + jest-util "^26.3.0" + +"@jest/globals@^26.4.2": + version "26.4.2" + resolved "https://registry.npmjs.org/@jest/globals/-/globals-26.4.2.tgz#73c2a862ac691d998889a241beb3dc9cada40d4a" + integrity sha512-Ot5ouAlehhHLRhc+sDz2/9bmNv9p5ZWZ9LE1pXGGTCXBasmi5jnYjlgYcYt03FBwLmZXCZ7GrL29c33/XRQiow== + dependencies: + "@jest/environment" "^26.3.0" + "@jest/types" "^26.3.0" + expect "^26.4.2" + +"@jest/reporters@^26.4.1": + version "26.4.1" + resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-26.4.1.tgz#3b4d6faf28650f3965f8b97bc3d114077fb71795" + integrity sha512-aROTkCLU8++yiRGVxLsuDmZsQEKO6LprlrxtAuzvtpbIFl3eIjgIf3EUxDKgomkS25R9ZzwGEdB5weCcBZlrpQ== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.3.0" + "@jest/test-result" "^26.3.0" + "@jest/transform" "^26.3.0" + "@jest/types" "^26.3.0" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.3.0" + jest-resolve "^26.4.0" + jest-util "^26.3.0" + jest-worker "^26.3.0" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^5.0.1" + optionalDependencies: + node-notifier "^8.0.0" + +"@jest/source-map@^26.3.0": + version "26.3.0" + resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-26.3.0.tgz#0e646e519883c14c551f7b5ae4ff5f1bfe4fc3d9" + integrity sha512-hWX5IHmMDWe1kyrKl7IhFwqOuAreIwHhbe44+XH2ZRHjrKIh0LO5eLQ/vxHFeAfRwJapmxuqlGAEYLadDq6ZGQ== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^26.3.0": + version "26.3.0" + resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-26.3.0.tgz#46cde01fa10c0aaeb7431bf71e4a20d885bc7fdb" + integrity sha512-a8rbLqzW/q7HWheFVMtghXV79Xk+GWwOK1FrtimpI5n1la2SY0qHri3/b0/1F0Ve0/yJmV8pEhxDfVwiUBGtgg== + dependencies: + "@jest/console" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^26.4.2": + version "26.4.2" + resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.4.2.tgz#58a3760a61eec758a2ce6080201424580d97cbba" + integrity sha512-83DRD8N3M0tOhz9h0bn6Kl6dSp+US6DazuVF8J9m21WAp5x7CqSMaNycMP0aemC/SH/pDQQddbsfHRTBXVUgog== + dependencies: + "@jest/test-result" "^26.3.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.3.0" + jest-runner "^26.4.2" + jest-runtime "^26.4.2" + +"@jest/transform@^26.3.0": + version "26.3.0" + resolved "https://registry.npmjs.org/@jest/transform/-/transform-26.3.0.tgz#c393e0e01459da8a8bfc6d2a7c2ece1a13e8ba55" + integrity sha512-Isj6NB68QorGoFWvcOjlUhpkT56PqNIsXKR7XfvoDlCANn/IANlh8DrKAA2l2JKC3yWSMH5wS0GwuQM20w3b2A== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.3.0" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.3.0" + jest-regex-util "^26.0.0" + jest-util "^26.3.0" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^25.5.0": + version "25.5.0" + resolved "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" + integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + +"@jest/types@^26.3.0": + version "26.3.0" + resolved "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz#97627bf4bdb72c55346eef98e3b3f7ddc4941f71" + integrity sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@jsdevtools/ono@^7.1.3": + version "7.1.3" + resolved "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" + integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== + +"@kyleshockey/object-assign-deep@^0.4.2": + version "0.4.2" + resolved "https://registry.npmjs.org/@kyleshockey/object-assign-deep/-/object-assign-deep-0.4.2.tgz#84900f0eefc372798f4751b5262830b8208922ec" + integrity sha1-hJAPDu/DcnmPR1G1JigwuCCJIuw= + +"@kyleshockey/xml@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@kyleshockey/xml/-/xml-1.0.2.tgz#81fad3d7c33da2ba2639db095db3db24c2921f70" + integrity sha512-iMo32MPLcI9cPxs3YL5kmKxKgDmkSZDCFEqIT5eRk7d/Ll8r4X3SwGYSigzALd6+RHWlFEmjL1QyaQ15xDZFlw== + dependencies: + stream "^0.0.2" + +"@kyma-project/asyncapi-react@^0.11.0": + version "0.11.2" + resolved "https://registry.npmjs.org/@kyma-project/asyncapi-react/-/asyncapi-react-0.11.2.tgz#b523b0843da7c29a0d7569b3f31d7d8cbdf84b47" + integrity sha512-Wo6CgM3pzZaRMCVwXaEIrlXMuFtRNGli1GtFgMHQUB686daSCqSvRZUyitDHTZLofL3OI9JeYh5m6SjPji6bxg== + dependencies: + "@asyncapi/avro-schema-parser" "^0.1.2" + "@asyncapi/openapi-schema-parser" "^2.0.0" + "@asyncapi/parser" "^1.0.0-rc.1" + "@asyncapi/raml-dt-schema-parser" "^2.0.0" + constate "^1.2.0" + dompurify "^1.0.11" + json-schema-ref-parser "^9.0.6" + markdown-it "^9.1.0" + merge "^1.2.1" + openapi-sampler "^1.0.0-beta.15" + react-use "^12.2.0" + +"@lerna/add@3.21.0": + version "3.21.0" + resolved "https://registry.npmjs.org/@lerna/add/-/add-3.21.0.tgz#27007bde71cc7b0a2969ab3c2f0ae41578b4577b" + integrity sha512-vhUXXF6SpufBE1EkNEXwz1VLW03f177G9uMOFMQkp6OJ30/PWg4Ekifuz9/3YfgB2/GH8Tu4Lk3O51P2Hskg/A== + dependencies: + "@evocateur/pacote" "^9.6.3" + "@lerna/bootstrap" "3.21.0" + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/npm-conf" "3.16.0" + "@lerna/validation-error" "3.13.0" + dedent "^0.7.0" + npm-package-arg "^6.1.0" + p-map "^2.1.0" + semver "^6.2.0" + +"@lerna/bootstrap@3.21.0": + version "3.21.0" + resolved "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.21.0.tgz#bcd1b651be5b0970b20d8fae04c864548123aed6" + integrity sha512-mtNHlXpmvJn6JTu0KcuTTPl2jLsDNud0QacV/h++qsaKbhAaJr/FElNZ5s7MwZFUM3XaDmvWzHKaszeBMHIbBw== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/has-npm-version" "3.16.5" + "@lerna/npm-install" "3.16.5" + "@lerna/package-graph" "3.18.5" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/rimraf-dir" "3.16.5" + "@lerna/run-lifecycle" "3.16.2" + "@lerna/run-topologically" "3.18.5" + "@lerna/symlink-binary" "3.17.0" + "@lerna/symlink-dependencies" "3.17.0" + "@lerna/validation-error" "3.13.0" + dedent "^0.7.0" + get-port "^4.2.0" + multimatch "^3.0.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + p-finally "^1.0.0" + p-map "^2.1.0" + p-map-series "^1.0.0" + p-waterfall "^1.0.0" + read-package-tree "^5.1.6" + semver "^6.2.0" + +"@lerna/changed@3.21.0": + version "3.21.0" + resolved "https://registry.npmjs.org/@lerna/changed/-/changed-3.21.0.tgz#108e15f679bfe077af500f58248c634f1044ea0b" + integrity sha512-hzqoyf8MSHVjZp0gfJ7G8jaz+++mgXYiNs9iViQGA8JlN/dnWLI5sWDptEH3/B30Izo+fdVz0S0s7ydVE3pWIw== + dependencies: + "@lerna/collect-updates" "3.20.0" + "@lerna/command" "3.21.0" + "@lerna/listable" "3.18.5" + "@lerna/output" "3.13.0" + +"@lerna/check-working-tree@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.16.5.tgz#b4f8ae61bb4523561dfb9f8f8d874dd46bb44baa" + integrity sha512-xWjVBcuhvB8+UmCSb5tKVLB5OuzSpw96WEhS2uz6hkWVa/Euh1A0/HJwn2cemyK47wUrCQXtczBUiqnq9yX5VQ== + dependencies: + "@lerna/collect-uncommitted" "3.16.5" + "@lerna/describe-ref" "3.16.5" + "@lerna/validation-error" "3.13.0" + +"@lerna/child-process@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.16.5.tgz#38fa3c18064aa4ac0754ad80114776a7b36a69b2" + integrity sha512-vdcI7mzei9ERRV4oO8Y1LHBZ3A5+ampRKg1wq5nutLsUA4mEBN6H7JqjWOMY9xZemv6+kATm2ofjJ3lW5TszQg== + dependencies: + chalk "^2.3.1" + execa "^1.0.0" + strong-log-transformer "^2.0.0" + +"@lerna/clean@3.21.0": + version "3.21.0" + resolved "https://registry.npmjs.org/@lerna/clean/-/clean-3.21.0.tgz#c0b46b5300cc3dae2cda3bec14b803082da3856d" + integrity sha512-b/L9l+MDgE/7oGbrav6rG8RTQvRiZLO1zTcG17zgJAAuhlsPxJExMlh2DFwJEVi2les70vMhHfST3Ue1IMMjpg== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/prompt" "3.18.5" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/rimraf-dir" "3.16.5" + p-map "^2.1.0" + p-map-series "^1.0.0" + p-waterfall "^1.0.0" + +"@lerna/cli@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/cli/-/cli-3.18.5.tgz#c90c461542fcd35b6d5b015a290fb0dbfb41d242" + integrity sha512-erkbxkj9jfc89vVs/jBLY/fM0I80oLmJkFUV3Q3wk9J3miYhP14zgVEBsPZY68IZlEjT6T3Xlq2xO1AVaatHsA== + dependencies: + "@lerna/global-options" "3.13.0" + dedent "^0.7.0" + npmlog "^4.1.2" + yargs "^14.2.2" + +"@lerna/collect-uncommitted@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-3.16.5.tgz#a494d61aac31cdc7aec4bbe52c96550274132e63" + integrity sha512-ZgqnGwpDZiWyzIQVZtQaj9tRizsL4dUOhuOStWgTAw1EMe47cvAY2kL709DzxFhjr6JpJSjXV5rZEAeU3VE0Hg== + dependencies: + "@lerna/child-process" "3.16.5" + chalk "^2.3.1" + figgy-pudding "^3.5.1" + npmlog "^4.1.2" + +"@lerna/collect-updates@3.20.0": + version "3.20.0" + resolved "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.20.0.tgz#62f9d76ba21a25b7d9fbf31c02de88744a564bd1" + integrity sha512-qBTVT5g4fupVhBFuY4nI/3FSJtQVcDh7/gEPOpRxoXB/yCSnT38MFHXWl+y4einLciCjt/+0x6/4AG80fjay2Q== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/describe-ref" "3.16.5" + minimatch "^3.0.4" + npmlog "^4.1.2" + slash "^2.0.0" + +"@lerna/command@3.21.0": + version "3.21.0" + resolved "https://registry.npmjs.org/@lerna/command/-/command-3.21.0.tgz#9a2383759dc7b700dacfa8a22b2f3a6e190121f7" + integrity sha512-T2bu6R8R3KkH5YoCKdutKv123iUgUbW8efVjdGCDnCMthAQzoentOJfDeodBwn0P2OqCl3ohsiNVtSn9h78fyQ== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/package-graph" "3.18.5" + "@lerna/project" "3.21.0" + "@lerna/validation-error" "3.13.0" + "@lerna/write-log-file" "3.13.0" + clone-deep "^4.0.1" + dedent "^0.7.0" + execa "^1.0.0" + is-ci "^2.0.0" + npmlog "^4.1.2" + +"@lerna/conventional-commits@3.22.0": + version "3.22.0" + resolved "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.22.0.tgz#2798f4881ee2ef457bdae027ab7d0bf0af6f1e09" + integrity sha512-z4ZZk1e8Mhz7+IS8NxHr64wyklHctCJyWpJKEZZPJiLFJ8yKto/x38O80R10pIzC0rr8Sy/OsjSH4bl0TbbgqA== + dependencies: + "@lerna/validation-error" "3.13.0" + conventional-changelog-angular "^5.0.3" + conventional-changelog-core "^3.1.6" + conventional-recommended-bump "^5.0.0" + fs-extra "^8.1.0" + get-stream "^4.0.0" + lodash.template "^4.5.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + pify "^4.0.1" + semver "^6.2.0" + +"@lerna/create-symlink@3.16.2": + version "3.16.2" + resolved "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.16.2.tgz#412cb8e59a72f5a7d9463e4e4721ad2070149967" + integrity sha512-pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw== + dependencies: + "@zkochan/cmd-shim" "^3.1.0" + fs-extra "^8.1.0" + npmlog "^4.1.2" + +"@lerna/create@3.22.0": + version "3.22.0" + resolved "https://registry.npmjs.org/@lerna/create/-/create-3.22.0.tgz#d6bbd037c3dc5b425fe5f6d1b817057c278f7619" + integrity sha512-MdiQQzCcB4E9fBF1TyMOaAEz9lUjIHp1Ju9H7f3lXze5JK6Fl5NYkouAvsLgY6YSIhXMY8AHW2zzXeBDY4yWkw== + dependencies: + "@evocateur/pacote" "^9.6.3" + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.21.0" + "@lerna/npm-conf" "3.16.0" + "@lerna/validation-error" "3.13.0" + camelcase "^5.0.0" + dedent "^0.7.0" + fs-extra "^8.1.0" + globby "^9.2.0" + init-package-json "^1.10.3" + npm-package-arg "^6.1.0" + p-reduce "^1.0.0" + pify "^4.0.1" + semver "^6.2.0" + slash "^2.0.0" + validate-npm-package-license "^3.0.3" + validate-npm-package-name "^3.0.0" + whatwg-url "^7.0.0" + +"@lerna/describe-ref@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-3.16.5.tgz#a338c25aaed837d3dc70b8a72c447c5c66346ac0" + integrity sha512-c01+4gUF0saOOtDBzbLMFOTJDHTKbDFNErEY6q6i9QaXuzy9LNN62z+Hw4acAAZuJQhrVWncVathcmkkjvSVGw== + dependencies: + "@lerna/child-process" "3.16.5" + npmlog "^4.1.2" + +"@lerna/diff@3.21.0": + version "3.21.0" + resolved "https://registry.npmjs.org/@lerna/diff/-/diff-3.21.0.tgz#e6df0d8b9916167ff5a49fcb02ac06424280a68d" + integrity sha512-5viTR33QV3S7O+bjruo1SaR40m7F2aUHJaDAC7fL9Ca6xji+aw1KFkpCtVlISS0G8vikUREGMJh+c/VMSc8Usw== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.21.0" + "@lerna/validation-error" "3.13.0" + npmlog "^4.1.2" + +"@lerna/exec@3.21.0": + version "3.21.0" + resolved "https://registry.npmjs.org/@lerna/exec/-/exec-3.21.0.tgz#17f07533893cb918a17b41bcc566dc437016db26" + integrity sha512-iLvDBrIE6rpdd4GIKTY9mkXyhwsJ2RvQdB9ZU+/NhR3okXfqKc6py/24tV111jqpXTtZUW6HNydT4dMao2hi1Q== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/profiler" "3.20.0" + "@lerna/run-topologically" "3.18.5" + "@lerna/validation-error" "3.13.0" + p-map "^2.1.0" + +"@lerna/filter-options@3.20.0": + version "3.20.0" + resolved "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.20.0.tgz#0f0f5d5a4783856eece4204708cc902cbc8af59b" + integrity sha512-bmcHtvxn7SIl/R9gpiNMVG7yjx7WyT0HSGw34YVZ9B+3xF/83N3r5Rgtjh4hheLZ+Q91Or0Jyu5O3Nr+AwZe2g== + dependencies: + "@lerna/collect-updates" "3.20.0" + "@lerna/filter-packages" "3.18.0" + dedent "^0.7.0" + figgy-pudding "^3.5.1" + npmlog "^4.1.2" + +"@lerna/filter-packages@3.18.0": + version "3.18.0" + resolved "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-3.18.0.tgz#6a7a376d285208db03a82958cfb8172e179b4e70" + integrity sha512-6/0pMM04bCHNATIOkouuYmPg6KH3VkPCIgTfQmdkPJTullERyEQfNUKikrefjxo1vHOoCACDpy65JYyKiAbdwQ== + dependencies: + "@lerna/validation-error" "3.13.0" + multimatch "^3.0.0" + npmlog "^4.1.2" + +"@lerna/get-npm-exec-opts@3.13.0": + version "3.13.0" + resolved "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-3.13.0.tgz#d1b552cb0088199fc3e7e126f914e39a08df9ea5" + integrity sha512-Y0xWL0rg3boVyJk6An/vurKzubyJKtrxYv2sj4bB8Mc5zZ3tqtv0ccbOkmkXKqbzvNNF7VeUt1OJ3DRgtC/QZw== + dependencies: + npmlog "^4.1.2" + +"@lerna/get-packed@3.16.0": + version "3.16.0" + resolved "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-3.16.0.tgz#1b316b706dcee86c7baa55e50b087959447852ff" + integrity sha512-AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw== + dependencies: + fs-extra "^8.1.0" + ssri "^6.0.1" + tar "^4.4.8" + +"@lerna/github-client@3.22.0": + version "3.22.0" + resolved "https://registry.npmjs.org/@lerna/github-client/-/github-client-3.22.0.tgz#5d816aa4f76747ed736ae64ff962b8f15c354d95" + integrity sha512-O/GwPW+Gzr3Eb5bk+nTzTJ3uv+jh5jGho9BOqKlajXaOkMYGBELEAqV5+uARNGWZFvYAiF4PgqHb6aCUu7XdXg== + dependencies: + "@lerna/child-process" "3.16.5" + "@octokit/plugin-enterprise-rest" "^6.0.1" + "@octokit/rest" "^16.28.4" + git-url-parse "^11.1.2" + npmlog "^4.1.2" + +"@lerna/gitlab-client@3.15.0": + version "3.15.0" + resolved "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-3.15.0.tgz#91f4ec8c697b5ac57f7f25bd50fe659d24aa96a6" + integrity sha512-OsBvRSejHXUBMgwWQqNoioB8sgzL/Pf1pOUhHKtkiMl6aAWjklaaq5HPMvTIsZPfS6DJ9L5OK2GGZuooP/5c8Q== + dependencies: + node-fetch "^2.5.0" + npmlog "^4.1.2" + whatwg-url "^7.0.0" + +"@lerna/global-options@3.13.0": + version "3.13.0" + resolved "https://registry.npmjs.org/@lerna/global-options/-/global-options-3.13.0.tgz#217662290db06ad9cf2c49d8e3100ee28eaebae1" + integrity sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ== + +"@lerna/has-npm-version@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-3.16.5.tgz#ab83956f211d8923ea6afe9b979b38cc73b15326" + integrity sha512-WL7LycR9bkftyqbYop5rEGJ9sRFIV55tSGmbN1HLrF9idwOCD7CLrT64t235t3t4O5gehDnwKI5h2U3oxTrF8Q== + dependencies: + "@lerna/child-process" "3.16.5" + semver "^6.2.0" + +"@lerna/import@3.22.0": + version "3.22.0" + resolved "https://registry.npmjs.org/@lerna/import/-/import-3.22.0.tgz#1a5f0394f38e23c4f642a123e5e1517e70d068d2" + integrity sha512-uWOlexasM5XR6tXi4YehODtH9Y3OZrFht3mGUFFT3OIl2s+V85xIGFfqFGMTipMPAGb2oF1UBLL48kR43hRsOg== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.21.0" + "@lerna/prompt" "3.18.5" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/validation-error" "3.13.0" + dedent "^0.7.0" + fs-extra "^8.1.0" + p-map-series "^1.0.0" + +"@lerna/info@3.21.0": + version "3.21.0" + resolved "https://registry.npmjs.org/@lerna/info/-/info-3.21.0.tgz#76696b676fdb0f35d48c83c63c1e32bb5e37814f" + integrity sha512-0XDqGYVBgWxUquFaIptW2bYSIu6jOs1BtkvRTWDDhw4zyEdp6q4eaMvqdSap1CG+7wM5jeLCi6z94wS0AuiuwA== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/output" "3.13.0" + envinfo "^7.3.1" + +"@lerna/init@3.21.0": + version "3.21.0" + resolved "https://registry.npmjs.org/@lerna/init/-/init-3.21.0.tgz#1e810934dc8bf4e5386c031041881d3b4096aa5c" + integrity sha512-6CM0z+EFUkFfurwdJCR+LQQF6MqHbYDCBPyhu/d086LRf58GtYZYj49J8mKG9ktayp/TOIxL/pKKjgLD8QBPOg== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.21.0" + fs-extra "^8.1.0" + p-map "^2.1.0" + write-json-file "^3.2.0" + +"@lerna/link@3.21.0": + version "3.21.0" + resolved "https://registry.npmjs.org/@lerna/link/-/link-3.21.0.tgz#8be68ff0ccee104b174b5bbd606302c2f06e9d9b" + integrity sha512-tGu9GxrX7Ivs+Wl3w1+jrLi1nQ36kNI32dcOssij6bg0oZ2M2MDEFI9UF2gmoypTaN9uO5TSsjCFS7aR79HbdQ== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/package-graph" "3.18.5" + "@lerna/symlink-dependencies" "3.17.0" + p-map "^2.1.0" + slash "^2.0.0" + +"@lerna/list@3.21.0": + version "3.21.0" + resolved "https://registry.npmjs.org/@lerna/list/-/list-3.21.0.tgz#42f76fafa56dea13b691ec8cab13832691d61da2" + integrity sha512-KehRjE83B1VaAbRRkRy6jLX1Cin8ltsrQ7FHf2bhwhRHK0S54YuA6LOoBnY/NtA8bHDX/Z+G5sMY78X30NS9tg== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/listable" "3.18.5" + "@lerna/output" "3.13.0" + +"@lerna/listable@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/listable/-/listable-3.18.5.tgz#e82798405b5ed8fc51843c8ef1e7a0e497388a1a" + integrity sha512-Sdr3pVyaEv5A7ZkGGYR7zN+tTl2iDcinryBPvtuv20VJrXBE8wYcOks1edBTcOWsPjCE/rMP4bo1pseyk3UTsg== + dependencies: + "@lerna/query-graph" "3.18.5" + chalk "^2.3.1" + columnify "^1.5.4" + +"@lerna/log-packed@3.16.0": + version "3.16.0" + resolved "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-3.16.0.tgz#f83991041ee77b2495634e14470b42259fd2bc16" + integrity sha512-Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ== + dependencies: + byte-size "^5.0.1" + columnify "^1.5.4" + has-unicode "^2.0.1" + npmlog "^4.1.2" + +"@lerna/npm-conf@3.16.0": + version "3.16.0" + resolved "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-3.16.0.tgz#1c10a89ae2f6c2ee96962557738685300d376827" + integrity sha512-HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA== + dependencies: + config-chain "^1.1.11" + pify "^4.0.1" + +"@lerna/npm-dist-tag@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-3.18.5.tgz#9ef9abb7c104077b31f6fab22cc73b314d54ac55" + integrity sha512-xw0HDoIG6HreVsJND9/dGls1c+lf6vhu7yJoo56Sz5bvncTloYGLUppIfDHQr4ZvmPCK8rsh0euCVh2giPxzKQ== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + "@lerna/otplease" "3.18.5" + figgy-pudding "^3.5.1" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + +"@lerna/npm-install@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-3.16.5.tgz#d6bfdc16f81285da66515ae47924d6e278d637d3" + integrity sha512-hfiKk8Eku6rB9uApqsalHHTHY+mOrrHeWEs+gtg7+meQZMTS3kzv4oVp5cBZigndQr3knTLjwthT/FX4KvseFg== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/get-npm-exec-opts" "3.13.0" + fs-extra "^8.1.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + signal-exit "^3.0.2" + write-pkg "^3.1.0" + +"@lerna/npm-publish@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-3.18.5.tgz#240e4039959fd9816b49c5b07421e11b5cb000af" + integrity sha512-3etLT9+2L8JAx5F8uf7qp6iAtOLSMj+ZYWY6oUgozPi/uLqU0/gsMsEXh3F0+YVW33q0M61RpduBoAlOOZnaTg== + dependencies: + "@evocateur/libnpmpublish" "^1.2.2" + "@lerna/otplease" "3.18.5" + "@lerna/run-lifecycle" "3.16.2" + figgy-pudding "^3.5.1" + fs-extra "^8.1.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + pify "^4.0.1" + read-package-json "^2.0.13" + +"@lerna/npm-run-script@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-3.16.5.tgz#9c2ec82453a26c0b46edc0bb7c15816c821f5c15" + integrity sha512-1asRi+LjmVn3pMjEdpqKJZFT/3ZNpb+VVeJMwrJaV/3DivdNg7XlPK9LTrORuKU4PSvhdEZvJmSlxCKyDpiXsQ== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/get-npm-exec-opts" "3.13.0" + npmlog "^4.1.2" + +"@lerna/otplease@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/otplease/-/otplease-3.18.5.tgz#b77b8e760b40abad9f7658d988f3ea77d4fd0231" + integrity sha512-S+SldXAbcXTEDhzdxYLU0ZBKuYyURP/ND2/dK6IpKgLxQYh/z4ScljPDMyKymmEvgiEJmBsPZAAPfmNPEzxjog== + dependencies: + "@lerna/prompt" "3.18.5" + figgy-pudding "^3.5.1" + +"@lerna/output@3.13.0": + version "3.13.0" + resolved "https://registry.npmjs.org/@lerna/output/-/output-3.13.0.tgz#3ded7cc908b27a9872228a630d950aedae7a4989" + integrity sha512-7ZnQ9nvUDu/WD+bNsypmPG5MwZBwu86iRoiW6C1WBuXXDxM5cnIAC1m2WxHeFnjyMrYlRXM9PzOQ9VDD+C15Rg== + dependencies: + npmlog "^4.1.2" + +"@lerna/pack-directory@3.16.4": + version "3.16.4" + resolved "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-3.16.4.tgz#3eae5f91bdf5acfe0384510ed53faddc4c074693" + integrity sha512-uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng== + dependencies: + "@lerna/get-packed" "3.16.0" + "@lerna/package" "3.16.0" + "@lerna/run-lifecycle" "3.16.2" + figgy-pudding "^3.5.1" + npm-packlist "^1.4.4" + npmlog "^4.1.2" + tar "^4.4.10" + temp-write "^3.4.0" + +"@lerna/package-graph@3.18.5", "@lerna/package-graph@^3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-3.18.5.tgz#c740e2ea3578d059e551633e950690831b941f6b" + integrity sha512-8QDrR9T+dBegjeLr+n9WZTVxUYUhIUjUgZ0gvNxUBN8S1WB9r6H5Yk56/MVaB64tA3oGAN9IIxX6w0WvTfFudA== + dependencies: + "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/validation-error" "3.13.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + semver "^6.2.0" + +"@lerna/package@3.16.0": + version "3.16.0" + resolved "https://registry.npmjs.org/@lerna/package/-/package-3.16.0.tgz#7e0a46e4697ed8b8a9c14d59c7f890e0d38ba13c" + integrity sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw== + dependencies: + load-json-file "^5.3.0" + npm-package-arg "^6.1.0" + write-pkg "^3.1.0" + +"@lerna/prerelease-id-from-version@3.16.0": + version "3.16.0" + resolved "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz#b24bfa789f5e1baab914d7b08baae9b7bd7d83a1" + integrity sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA== + dependencies: + semver "^6.2.0" + +"@lerna/profiler@3.20.0": + version "3.20.0" + resolved "https://registry.npmjs.org/@lerna/profiler/-/profiler-3.20.0.tgz#0f6dc236f4ea8f9ea5f358c6703305a4f32ad051" + integrity sha512-bh8hKxAlm6yu8WEOvbLENm42i2v9SsR4WbrCWSbsmOElx3foRnMlYk7NkGECa+U5c3K4C6GeBbwgqs54PP7Ljg== + dependencies: + figgy-pudding "^3.5.1" + fs-extra "^8.1.0" + npmlog "^4.1.2" + upath "^1.2.0" + +"@lerna/project@3.21.0", "@lerna/project@^3.18.0": + version "3.21.0" + resolved "https://registry.npmjs.org/@lerna/project/-/project-3.21.0.tgz#5d784d2d10c561a00f20320bcdb040997c10502d" + integrity sha512-xT1mrpET2BF11CY32uypV2GPtPVm6Hgtha7D81GQP9iAitk9EccrdNjYGt5UBYASl4CIDXBRxwmTTVGfrCx82A== + dependencies: + "@lerna/package" "3.16.0" + "@lerna/validation-error" "3.13.0" + cosmiconfig "^5.1.0" + dedent "^0.7.0" + dot-prop "^4.2.0" + glob-parent "^5.0.0" + globby "^9.2.0" + load-json-file "^5.3.0" + npmlog "^4.1.2" + p-map "^2.1.0" + resolve-from "^4.0.0" + write-json-file "^3.2.0" + +"@lerna/prompt@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/prompt/-/prompt-3.18.5.tgz#628cd545f225887d060491ab95df899cfc5218a1" + integrity sha512-rkKj4nm1twSbBEb69+Em/2jAERK8htUuV8/xSjN0NPC+6UjzAwY52/x9n5cfmpa9lyKf/uItp7chCI7eDmNTKQ== + dependencies: + inquirer "^6.2.0" + npmlog "^4.1.2" + +"@lerna/publish@3.22.1": + version "3.22.1" + resolved "https://registry.npmjs.org/@lerna/publish/-/publish-3.22.1.tgz#b4f7ce3fba1e9afb28be4a1f3d88222269ba9519" + integrity sha512-PG9CM9HUYDreb1FbJwFg90TCBQooGjj+n/pb3gw/eH5mEDq0p8wKdLFe0qkiqUkm/Ub5C8DbVFertIo0Vd0zcw== + dependencies: + "@evocateur/libnpmaccess" "^3.1.2" + "@evocateur/npm-registry-fetch" "^4.0.0" + "@evocateur/pacote" "^9.6.3" + "@lerna/check-working-tree" "3.16.5" + "@lerna/child-process" "3.16.5" + "@lerna/collect-updates" "3.20.0" + "@lerna/command" "3.21.0" + "@lerna/describe-ref" "3.16.5" + "@lerna/log-packed" "3.16.0" + "@lerna/npm-conf" "3.16.0" + "@lerna/npm-dist-tag" "3.18.5" + "@lerna/npm-publish" "3.18.5" + "@lerna/otplease" "3.18.5" + "@lerna/output" "3.13.0" + "@lerna/pack-directory" "3.16.4" + "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/prompt" "3.18.5" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/run-lifecycle" "3.16.2" + "@lerna/run-topologically" "3.18.5" + "@lerna/validation-error" "3.13.0" + "@lerna/version" "3.22.1" + figgy-pudding "^3.5.1" + fs-extra "^8.1.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + p-finally "^1.0.0" + p-map "^2.1.0" + p-pipe "^1.2.0" + semver "^6.2.0" + +"@lerna/pulse-till-done@3.13.0": + version "3.13.0" + resolved "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-3.13.0.tgz#c8e9ce5bafaf10d930a67d7ed0ccb5d958fe0110" + integrity sha512-1SOHpy7ZNTPulzIbargrgaJX387csN7cF1cLOGZiJQA6VqnS5eWs2CIrG8i8wmaUavj2QlQ5oEbRMVVXSsGrzA== + dependencies: + npmlog "^4.1.2" + +"@lerna/query-graph@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-3.18.5.tgz#df4830bb5155273003bf35e8dda1c32d0927bd86" + integrity sha512-50Lf4uuMpMWvJ306be3oQDHrWV42nai9gbIVByPBYJuVW8dT8O8pA3EzitNYBUdLL9/qEVbrR0ry1HD7EXwtRA== + dependencies: + "@lerna/package-graph" "3.18.5" + figgy-pudding "^3.5.1" + +"@lerna/resolve-symlink@3.16.0": + version "3.16.0" + resolved "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-3.16.0.tgz#37fc7095fabdbcf317c26eb74e0d0bde8efd2386" + integrity sha512-Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ== + dependencies: + fs-extra "^8.1.0" + npmlog "^4.1.2" + read-cmd-shim "^1.0.1" + +"@lerna/rimraf-dir@3.16.5": + version "3.16.5" + resolved "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-3.16.5.tgz#04316ab5ffd2909657aaf388ea502cb8c2f20a09" + integrity sha512-bQlKmO0pXUsXoF8lOLknhyQjOZsCc0bosQDoX4lujBXSWxHVTg1VxURtWf2lUjz/ACsJVDfvHZbDm8kyBk5okA== + dependencies: + "@lerna/child-process" "3.16.5" + npmlog "^4.1.2" + path-exists "^3.0.0" + rimraf "^2.6.2" + +"@lerna/run-lifecycle@3.16.2": + version "3.16.2" + resolved "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-3.16.2.tgz#67b288f8ea964db9ea4fb1fbc7715d5bbb0bce00" + integrity sha512-RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A== + dependencies: + "@lerna/npm-conf" "3.16.0" + figgy-pudding "^3.5.1" + npm-lifecycle "^3.1.2" + npmlog "^4.1.2" + +"@lerna/run-topologically@3.18.5": + version "3.18.5" + resolved "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-3.18.5.tgz#3cd639da20e967d7672cb88db0f756b92f2fdfc3" + integrity sha512-6N1I+6wf4hLOnPW+XDZqwufyIQ6gqoPfHZFkfWlvTQ+Ue7CuF8qIVQ1Eddw5HKQMkxqN10thKOFfq/9NQZ4NUg== + dependencies: + "@lerna/query-graph" "3.18.5" + figgy-pudding "^3.5.1" + p-queue "^4.0.0" + +"@lerna/run@3.21.0": + version "3.21.0" + resolved "https://registry.npmjs.org/@lerna/run/-/run-3.21.0.tgz#2a35ec84979e4d6e42474fe148d32e5de1cac891" + integrity sha512-fJF68rT3veh+hkToFsBmUJ9MHc9yGXA7LSDvhziAojzOb0AI/jBDp6cEcDQyJ7dbnplba2Lj02IH61QUf9oW0Q== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/npm-run-script" "3.16.5" + "@lerna/output" "3.13.0" + "@lerna/profiler" "3.20.0" + "@lerna/run-topologically" "3.18.5" + "@lerna/timer" "3.13.0" + "@lerna/validation-error" "3.13.0" + p-map "^2.1.0" + +"@lerna/symlink-binary@3.17.0": + version "3.17.0" + resolved "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-3.17.0.tgz#8f8031b309863814883d3f009877f82e38aef45a" + integrity sha512-RLpy9UY6+3nT5J+5jkM5MZyMmjNHxZIZvXLV+Q3MXrf7Eaa1hNqyynyj4RO95fxbS+EZc4XVSk25DGFQbcRNSQ== + dependencies: + "@lerna/create-symlink" "3.16.2" + "@lerna/package" "3.16.0" + fs-extra "^8.1.0" + p-map "^2.1.0" + +"@lerna/symlink-dependencies@3.17.0": + version "3.17.0" + resolved "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-3.17.0.tgz#48d6360e985865a0e56cd8b51b308a526308784a" + integrity sha512-KmjU5YT1bpt6coOmdFueTJ7DFJL4H1w5eF8yAQ2zsGNTtZ+i5SGFBWpb9AQaw168dydc3s4eu0W0Sirda+F59Q== + dependencies: + "@lerna/create-symlink" "3.16.2" + "@lerna/resolve-symlink" "3.16.0" + "@lerna/symlink-binary" "3.17.0" + fs-extra "^8.1.0" + p-finally "^1.0.0" + p-map "^2.1.0" + p-map-series "^1.0.0" + +"@lerna/timer@3.13.0": + version "3.13.0" + resolved "https://registry.npmjs.org/@lerna/timer/-/timer-3.13.0.tgz#bcd0904551db16e08364d6c18e5e2160fc870781" + integrity sha512-RHWrDl8U4XNPqY5MQHkToWS9jHPnkLZEt5VD+uunCKTfzlxGnRCr3/zVr8VGy/uENMYpVP3wJa4RKGY6M0vkRw== + +"@lerna/validation-error@3.13.0": + version "3.13.0" + resolved "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-3.13.0.tgz#c86b8f07c5ab9539f775bd8a54976e926f3759c3" + integrity sha512-SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA== + dependencies: + npmlog "^4.1.2" + +"@lerna/version@3.22.1": + version "3.22.1" + resolved "https://registry.npmjs.org/@lerna/version/-/version-3.22.1.tgz#9805a9247a47ee62d6b81bd9fa5fb728b24b59e2" + integrity sha512-PSGt/K1hVqreAFoi3zjD0VEDupQ2WZVlVIwesrE5GbrL2BjXowjCsTDPqblahDUPy0hp6h7E2kG855yLTp62+g== + dependencies: + "@lerna/check-working-tree" "3.16.5" + "@lerna/child-process" "3.16.5" + "@lerna/collect-updates" "3.20.0" + "@lerna/command" "3.21.0" + "@lerna/conventional-commits" "3.22.0" + "@lerna/github-client" "3.22.0" + "@lerna/gitlab-client" "3.15.0" + "@lerna/output" "3.13.0" + "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/prompt" "3.18.5" + "@lerna/run-lifecycle" "3.16.2" + "@lerna/run-topologically" "3.18.5" + "@lerna/validation-error" "3.13.0" + chalk "^2.3.1" + dedent "^0.7.0" + load-json-file "^5.3.0" + minimatch "^3.0.4" + npmlog "^4.1.2" + p-map "^2.1.0" + p-pipe "^1.2.0" + p-reduce "^1.0.0" + p-waterfall "^1.0.0" + semver "^6.2.0" + slash "^2.0.0" + temp-write "^3.4.0" + write-json-file "^3.2.0" + +"@lerna/write-log-file@3.13.0": + version "3.13.0" + resolved "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-3.13.0.tgz#b78d9e4cfc1349a8be64d91324c4c8199e822a26" + integrity sha512-RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A== + dependencies: + npmlog "^4.1.2" + write-file-atomic "^2.3.0" + +"@material-icons/font@^1.0.2": + version "1.0.4" + resolved "https://registry.npmjs.org/@material-icons/font/-/font-1.0.4.tgz#4bfc59dcaba90f6d71e4aeffd1ebb2ea6119c844" + integrity sha512-tt80HS8dDtx/jj6fXWi6CycCZWC1AY3YOXjHwxShwe/jrW/fRVdw0C9JOGo0ij5/7y+uG0Rp0c4plu7J4Cq7EA== + +"@material-ui/core@^4.9.1": + version "4.11.0" + resolved "https://registry.npmjs.org/@material-ui/core/-/core-4.11.0.tgz#b69b26e4553c9e53f2bfaf1053e216a0af9be15a" + integrity sha512-bYo9uIub8wGhZySHqLQ833zi4ZML+XCBE1XwJ8EuUVSpTWWG57Pm+YugQToJNFsEyiKFhPh8DPD0bgupz8n01g== + dependencies: + "@babel/runtime" "^7.4.4" + "@material-ui/styles" "^4.10.0" + "@material-ui/system" "^4.9.14" + "@material-ui/types" "^5.1.0" + "@material-ui/utils" "^4.10.2" + "@types/react-transition-group" "^4.2.0" + clsx "^1.0.4" + hoist-non-react-statics "^3.3.2" + popper.js "1.16.1-lts" + prop-types "^15.7.2" + react-is "^16.8.0" + react-transition-group "^4.4.0" + +"@material-ui/icons@^4.9.1": + version "4.9.1" + resolved "https://registry.npmjs.org/@material-ui/icons/-/icons-4.9.1.tgz#fdeadf8cb3d89208945b33dbc50c7c616d0bd665" + integrity sha512-GBitL3oBWO0hzBhvA9KxqcowRUsA0qzwKkURyC8nppnC3fw54KPKZ+d4V1Eeg/UnDRSzDaI9nGCdel/eh9AQMg== + dependencies: + "@babel/runtime" "^7.4.4" + +"@material-ui/lab@4.0.0-alpha.45": + version "4.0.0-alpha.45" + resolved "https://registry.npmjs.org/@material-ui/lab/-/lab-4.0.0-alpha.45.tgz#6e1abbdd6e44b9ef7b3eff8ef892a3da5dc52f10" + integrity sha512-zT6kUU87SHsPukiu3tlWg8V6o0tGS38c1b/xst/kPqX6eLbfqrROyxhHn1A8ZtHmqga1AKQdv/1llQoG80Afww== + dependencies: + "@babel/runtime" "^7.4.4" + "@material-ui/utils" "^4.7.1" + clsx "^1.0.4" + prop-types "^15.7.2" + react-is "^16.8.0" + +"@material-ui/pickers@^3.2.2": + version "3.2.10" + resolved "https://registry.npmjs.org/@material-ui/pickers/-/pickers-3.2.10.tgz#19df024895876eb0ec7cd239bbaea595f703f0ae" + integrity sha512-B8G6Obn5S3RCl7hwahkQj9sKUapwXWFjiaz/Bsw1fhYFdNMnDUolRiWQSoKPb1/oKe37Dtfszoywi1Ynbo3y8w== + dependencies: + "@babel/runtime" "^7.6.0" + "@date-io/core" "1.x" + "@types/styled-jsx" "^2.2.8" + clsx "^1.0.2" + react-transition-group "^4.0.0" + rifm "^0.7.0" + +"@material-ui/styles@^4.10.0": + version "4.10.0" + resolved "https://registry.npmjs.org/@material-ui/styles/-/styles-4.10.0.tgz#2406dc23aa358217aa8cc772e6237bd7f0544071" + integrity sha512-XPwiVTpd3rlnbfrgtEJ1eJJdFCXZkHxy8TrdieaTvwxNYj42VnnCyFzxYeNW9Lhj4V1oD8YtQ6S5Gie7bZDf7Q== + dependencies: + "@babel/runtime" "^7.4.4" + "@emotion/hash" "^0.8.0" + "@material-ui/types" "^5.1.0" + "@material-ui/utils" "^4.9.6" + clsx "^1.0.4" + csstype "^2.5.2" + hoist-non-react-statics "^3.3.2" + jss "^10.0.3" + jss-plugin-camel-case "^10.0.3" + jss-plugin-default-unit "^10.0.3" + jss-plugin-global "^10.0.3" + jss-plugin-nested "^10.0.3" + jss-plugin-props-sort "^10.0.3" + jss-plugin-rule-value-function "^10.0.3" + jss-plugin-vendor-prefixer "^10.0.3" + prop-types "^15.7.2" + +"@material-ui/system@^4.9.14": + version "4.9.14" + resolved "https://registry.npmjs.org/@material-ui/system/-/system-4.9.14.tgz#4b00c48b569340cefb2036d0596b93ac6c587a5f" + integrity sha512-oQbaqfSnNlEkXEziDcJDDIy8pbvwUmZXWNqlmIwDqr/ZdCK8FuV3f4nxikUh7hvClKV2gnQ9djh5CZFTHkZj3w== + dependencies: + "@babel/runtime" "^7.4.4" + "@material-ui/utils" "^4.9.6" + csstype "^2.5.2" + prop-types "^15.7.2" + +"@material-ui/types@^5.1.0": + version "5.1.0" + resolved "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz#efa1c7a0b0eaa4c7c87ac0390445f0f88b0d88f2" + integrity sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A== + +"@material-ui/utils@^4.10.2", "@material-ui/utils@^4.7.1", "@material-ui/utils@^4.9.6": + version "4.10.2" + resolved "https://registry.npmjs.org/@material-ui/utils/-/utils-4.10.2.tgz#3fd5470ca61b7341f1e0468ac8f29a70bf6df321" + integrity sha512-eg29v74P7W5r6a4tWWDAAfZldXIzfyO1am2fIsC39hdUUHm/33k6pGOKPbgDjg/U/4ifmgAePy/1OjkKN6rFRw== + dependencies: + "@babel/runtime" "^7.4.4" + prop-types "^15.7.2" + react-is "^16.8.0" + +"@mattiasbuelens/web-streams-polyfill@^0.2.0": + version "0.2.1" + resolved "https://registry.npmjs.org/@mattiasbuelens/web-streams-polyfill/-/web-streams-polyfill-0.2.1.tgz#d7c4aa94f98084ec0787be084d47167d62ea5f67" + integrity sha512-oKuFCQFa3W7Hj7zKn0+4ypI8JFm4ZKIoncwAC6wd5WwFW2sL7O1hpPoJdSWpynQ4DJ4lQ6MvFoVDmCLilonDFg== + dependencies: + "@types/whatwg-streams" "^0.0.7" + +"@mdx-js/react@^1.0.0", "@mdx-js/react@^1.5.2": + version "1.6.16" + resolved "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.16.tgz#538eb14473194d0b3c54020cb230e426174315cd" + integrity sha512-+FhuSVOPo7+4fZaRwWuCSRUcZkJOkZu0rfAbBKvoCg1LWb1Td8Vzi0DTLORdSvgWNbU6+EL40HIgwTOs00x2Jw== + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== + dependencies: + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + dependencies: + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" + +"@octokit/auth-token@^2.4.0": + version "2.4.2" + resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.2.tgz#10d0ae979b100fa6b72fa0e8e63e27e6d0dbff8a" + integrity sha512-jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ== + dependencies: + "@octokit/types" "^5.0.0" + +"@octokit/core@^3.0.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@octokit/core/-/core-3.1.2.tgz#c937d5f9621b764573068fcd2e5defcc872fd9cc" + integrity sha512-AInOFULmwOa7+NFi9F8DlDkm5qtZVmDQayi7TUgChE3yeIGPq0Y+6cAEXPexQ3Ea+uZy66hKEazR7DJyU+4wfw== + dependencies: + "@octokit/auth-token" "^2.4.0" + "@octokit/graphql" "^4.3.1" + "@octokit/request" "^5.4.0" + "@octokit/types" "^5.0.0" + before-after-hook "^2.1.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^6.0.1": + version "6.0.5" + resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.5.tgz#43a6adee813c5ffd2f719e20cfd14a1fee7c193a" + integrity sha512-70K5u6zd45ItOny6aHQAsea8HHQjlQq85yqOMe+Aj8dkhN2qSJ9T+Q3YjUjEYfPRBcuUWNgMn62DQnP/4LAIiQ== + dependencies: + "@octokit/types" "^5.0.0" + is-plain-object "^4.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^4.3.1": + version "4.5.4" + resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.5.4.tgz#c9ef75b0406ebf195bf5f4ed2304a77ed7df27c7" + integrity sha512-ITpZ+dQc0cXAW1FmDkHJJM+8Lb6anUnin0VB5hLBilnYVdLC0ICFU/KIvT7OXfW9S81DE3U4Vx2EypDG1OYaPA== + dependencies: + "@octokit/request" "^5.3.0" + "@octokit/types" "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/plugin-enterprise-rest@^6.0.1": + version "6.0.1" + resolved "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" + integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== + +"@octokit/plugin-paginate-rest@^1.1.1": + version "1.1.2" + resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz#004170acf8c2be535aba26727867d692f7b488fc" + integrity sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q== + dependencies: + "@octokit/types" "^2.0.1" + +"@octokit/plugin-paginate-rest@^2.2.0": + version "2.3.1" + resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.3.1.tgz#00f91701dfda26227c3e748d42bc89e2d0d9ce55" + integrity sha512-81A+ONLpcSX7vWxnEmVZteQPNsbdeScSVUqjgMYPSk1trzG69iYkhS42wPRWtN0nYw6OEmT48DNeQCjHeyroYw== + dependencies: + "@octokit/types" "^5.3.0" + +"@octokit/plugin-request-log@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz#eef87a431300f6148c39a7f75f8cfeb218b2547e" + integrity sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw== + +"@octokit/plugin-rest-endpoint-methods@2.4.0": + version "2.4.0" + resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz#3288ecf5481f68c494dd0602fc15407a59faf61e" + integrity sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ== + dependencies: + "@octokit/types" "^2.0.1" + deprecation "^2.3.1" + +"@octokit/plugin-rest-endpoint-methods@4.1.3": + version "4.1.3" + resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.1.3.tgz#44d9af35cd9fef63c7a4cf3b0e6b681886cc8d34" + integrity sha512-az3seq9yuc0OXlNLrZ0fWTNbFuL4sN8GN1sLmovELg3+LnpWmOs3GAn2KGa6E7SKMgpCuFvJwvsHEfYasTHUxQ== + dependencies: + "@octokit/types" "^5.1.1" + deprecation "^2.3.1" + +"@octokit/request-error@^1.0.2": + version "1.2.1" + resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.1.tgz#ede0714c773f32347576c25649dc013ae6b31801" + integrity sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA== + dependencies: + "@octokit/types" "^2.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request-error@^2.0.0": + version "2.0.2" + resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.2.tgz#0e76b83f5d8fdda1db99027ea5f617c2e6ba9ed0" + integrity sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw== + dependencies: + "@octokit/types" "^5.0.1" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.2.0", "@octokit/request@^5.3.0", "@octokit/request@^5.4.0": + version "5.4.7" + resolved "https://registry.npmjs.org/@octokit/request/-/request-5.4.7.tgz#fd703ee092e0463ceba49ff7a3e61cb4cf8a0fde" + integrity sha512-FN22xUDP0i0uF38YMbOfx6TotpcENP5W8yJM1e/LieGXn6IoRxDMnBf7tx5RKSW4xuUZ/1P04NFZy5iY3Rax1A== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.0.0" + "@octokit/types" "^5.0.0" + deprecation "^2.0.0" + is-plain-object "^4.0.0" + node-fetch "^2.3.0" + once "^1.4.0" + universal-user-agent "^6.0.0" + +"@octokit/rest@^16.28.4": + version "16.43.2" + resolved "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.2.tgz#c53426f1e1d1044dee967023e3279c50993dd91b" + integrity sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ== + dependencies: + "@octokit/auth-token" "^2.4.0" + "@octokit/plugin-paginate-rest" "^1.1.1" + "@octokit/plugin-request-log" "^1.0.0" + "@octokit/plugin-rest-endpoint-methods" "2.4.0" + "@octokit/request" "^5.2.0" + "@octokit/request-error" "^1.0.2" + atob-lite "^2.0.0" + before-after-hook "^2.0.0" + btoa-lite "^1.0.0" + deprecation "^2.0.0" + lodash.get "^4.4.2" + lodash.set "^4.3.2" + lodash.uniq "^4.5.0" + octokit-pagination-methods "^1.1.0" + once "^1.4.0" + universal-user-agent "^4.0.0" + +"@octokit/rest@^18.0.0": + version "18.0.4" + resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.0.4.tgz#3c7e7dba671ae2097c24086581a2dc2fdb039be0" + integrity sha512-l4PspvLvBG+bTDsji+XceDWuIf7qAZHLljbqJZ6UDdtACkW+MuFsprXicV5pEFAkxfPusyVDDPYJKRY1KJb7Zg== + dependencies: + "@octokit/core" "^3.0.0" + "@octokit/plugin-paginate-rest" "^2.2.0" + "@octokit/plugin-request-log" "^1.0.0" + "@octokit/plugin-rest-endpoint-methods" "4.1.3" + +"@octokit/types@^2.0.0", "@octokit/types@^2.0.1": + version "2.16.2" + resolved "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz#4c5f8da3c6fecf3da1811aef678fda03edac35d2" + integrity sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q== + dependencies: + "@types/node" ">= 8" + +"@octokit/types@^5.0.0", "@octokit/types@^5.0.1", "@octokit/types@^5.1.1", "@octokit/types@^5.3.0": + version "5.4.1" + resolved "https://registry.npmjs.org/@octokit/types/-/types-5.4.1.tgz#d5d5f2b70ffc0e3f89467c3db749fa87fc3b7031" + integrity sha512-OlMlSySBJoJ6uozkr/i03nO5dlYQyE05vmQNZhAh9MyO4DPBP88QlwsDVLmVjIMFssvIZB6WO0ctIGMRG+xsJQ== + dependencies: + "@types/node" ">= 8" + +"@open-draft/until@^1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz#db9cc719191a62e7d9200f6e7bab21c5b848adca" + integrity sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q== + +"@openapi-contrib/openapi-schema-to-json-schema@^3.0.0": + version "3.0.4" + resolved "https://registry.npmjs.org/@openapi-contrib/openapi-schema-to-json-schema/-/openapi-schema-to-json-schema-3.0.4.tgz#a0e29445b9cd76331c473ab820e97b28ae828ebc" + integrity sha512-+1RBoJ+xjX8mIXxisTJVlN/r6DOh4kyszw3cLBSAxwKP7Ui42DjlxWgR2PnWxOOWtRCnQurRzlsvL1ce5FUrWg== + dependencies: + fast-deep-equal "^3.1.3" + +"@panva/asn1.js@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6" + integrity sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw== + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= + +"@reach/router@^1.2.1", "@reach/router@^1.3.3": + version "1.3.4" + resolved "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz#d2574b19370a70c80480ed91f3da840136d10f8c" + integrity sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA== + dependencies: + create-react-context "0.3.0" + invariant "^2.2.3" + prop-types "^15.6.1" + react-lifecycles-compat "^3.0.4" + +"@rjsf/core@^2.1.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@rjsf/core/-/core-2.3.0.tgz#334c73d2262ef1a8cda477e238067af7336c5599" + integrity sha512-OZKYHt9tjKhzOH4CvsPiCwepuIacqI++cNmnL2fsxh1IF+uEWGlo3NLDWhhSaBbOv9jps6a5YQcLbLtjNuSwug== + dependencies: + "@babel/runtime-corejs2" "^7.8.7" + "@types/json-schema" "^7.0.4" + ajv "^6.7.0" + core-js "^2.5.7" + json-schema-merge-allof "^0.6.0" + jsonpointer "^4.0.1" + lodash "^4.17.15" + prop-types "^15.7.2" + react-app-polyfill "^1.0.4" + react-is "^16.9.0" + shortid "^2.2.14" + +"@rjsf/material-ui@^2.1.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@rjsf/material-ui/-/material-ui-2.3.0.tgz#a051eb4db2ad778e39933a31ba806f415dd3ba90" + integrity sha512-v/xZ4Xk18ZgBARcCe99IDqdO97GU0UC784gG8PhGGFDdy5Rbdy7ixTjHkGYttkr43PB7SX6ttohNhkKSW4nATQ== + +"@roadiehq/backstage-plugin-github-pull-requests@0.3.0": + version "0.3.0" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-0.3.0.tgz#465cb74b1dab6f34a5a5bf4fa57b6c1d312bc5b7" + integrity sha512-nSyMh8p3SAYj1yj5/+Po82g7aZwF5pWb+fh7bLPdf+ywl5pa+aKQxAVNCvlvgfN2WZ9gDTMbCPyWDgCfeJ/V9g== + dependencies: + "@backstage/catalog-model" "^0.1.1-alpha.16" + "@backstage/core" "^0.1.1-alpha.16" + "@backstage/core-api" "^0.1.1-alpha.16" + "@backstage/plugin-catalog" "^0.1.1-alpha.16" + "@backstage/theme" "^0.1.1-alpha.16" + "@material-ui/core" "^4.9.1" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.45" + "@octokit/rest" "^18.0.0" + "@octokit/types" "^5.0.1" + "@types/react-dom" "^16.9.8" + history "^5.0.0" + moment "^2.27.0" + react "^16.13.1" + react-dom "^16.13.1" + react-router-dom "6.0.0-beta.0" + react-use "^15.3.3" + +"@roadiehq/backstage-plugin-travis-ci@^0.1.4": + version "0.1.4" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-0.1.4.tgz#ddbb2ba5b9d47f474462ecbc8c769759578e8526" + integrity sha512-T1eJ0huhwZcRHjrDKWoAzlKBv8UbhXgrvE7wuHD7dCcmfQdln0jbn7cskOpTnVmrzGXWKQ6mDyKX3LfdEPYbAw== + dependencies: + "@backstage/core" "^0.1.1-alpha.18" + "@backstage/theme" "^0.1.1-alpha.18" + "@material-ui/core" "^4.9.1" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.45" + date-fns "^2.15.0" + history "^5.0.0" + moment "^2.27.0" + react "^16.13.1" + react-dom "^16.13.1" + react-lazylog "^4.5.2" + react-router "6.0.0-beta.0" + react-router-dom "6.0.0-beta.0" + react-use "^15.3.3" + +"@rollup/plugin-commonjs@^13.0.0": + version "13.0.2" + resolved "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-13.0.2.tgz#b7783f0db049450c72d60bc06cf48d4951515e58" + integrity sha512-9JXf2k8xqvMYfqmhgtB6eCgMN9fbxwF1XDF3mGKJc6pkAmt0jnsqurxQ0tC1akQKNSXCm7c3unQxa3zuxtZ7mQ== + dependencies: + "@rollup/pluginutils" "^3.0.8" + commondir "^1.0.1" + estree-walker "^1.0.1" + glob "^7.1.2" + is-reference "^1.1.2" + magic-string "^0.25.2" + resolve "^1.11.0" + +"@rollup/plugin-json@^4.0.2": + version "4.1.0" + resolved "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" + integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== + dependencies: + "@rollup/pluginutils" "^3.0.8" + +"@rollup/plugin-node-resolve@^8.1.0": + version "8.4.0" + resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" + integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deep-freeze "^0.0.1" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.17.0" + +"@rollup/plugin-yaml@^2.1.1": + version "2.1.1" + resolved "https://registry.npmjs.org/@rollup/plugin-yaml/-/plugin-yaml-2.1.1.tgz#6c864adee22004eb325d53bc4ee5553828e056d8" + integrity sha512-CnGD3dbDhP+JeKFX7kJuaBOa7jVzXpl3G8lXp1hasB87cDYOz7qNWd4cFPmYbxMsT/8OCVsceIpRtQ+cj9uxBw== + dependencies: + "@rollup/pluginutils" "^3.0.1" + js-yaml "^3.13.1" + tosource "^1.0.0" + +"@rollup/pluginutils@^3.0.1", "@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@samverschueren/stream-to-observable@^0.3.0": + version "0.3.1" + resolved "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" + integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== + dependencies: + any-observable "^0.3.0" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@sindresorhus/is@^0.7.0": + version "0.7.0" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" + integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== + +"@sindresorhus/is@^2.0.0": + version "2.1.1" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" + integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== + +"@sindresorhus/is@^3.0.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz#548650de521b344e3781fbdb0ece4aa6f729afb8" + integrity sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ== + +"@sinonjs/commons@^1.7.0": + version "1.8.1" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217" + integrity sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@spotify/eslint-config-base@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@spotify/eslint-config-base/-/eslint-config-base-7.0.0.tgz#36804ae09ec938f1aa5f9464ea993f3f151cfaa8" + integrity sha512-XRTrTRyRRYBxPYINKNHw4B8QWlA3p4I+id/Po2sMdejtXH3LZgDgIjdschUZSdQ6J6dVYDdaVykdizRM9I+G6Q== + +"@spotify/eslint-config-oss@^1.0.1": + version "1.0.2" + resolved "https://registry.npmjs.org/@spotify/eslint-config-oss/-/eslint-config-oss-1.0.2.tgz#b0e56e549c78dcdd79063ce48521f10c3420f701" + integrity sha512-3Tn6R98f5BWeb8anOhxYdvZywasp1RaJb+y65W7Db5+xiQVmCnSFvIM3jwysQpu1xRdlUJSCqeDHR7S4Nz3thw== + dependencies: + eslint-plugin-notice "^0.9.10" + +"@spotify/eslint-config-react@^7.0.1": + version "7.0.1" + resolved "https://registry.npmjs.org/@spotify/eslint-config-react/-/eslint-config-react-7.0.1.tgz#2e70de9d7911ea9aeaa55a83a332220a28f6c431" + integrity sha512-HNDHvm19EaBXiDgsg52mjMgKWZTeA0hO2Q75ACNwb8UtjIKkANqyyuzyDGo8jiGMbWIm6wJjShlRtT95emNlqQ== + +"@spotify/eslint-config-typescript@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@spotify/eslint-config-typescript/-/eslint-config-typescript-7.0.0.tgz#fc5227e3344f74b41ac3a530df24a95ac13254e4" + integrity sha512-28I/SAf68NKbWZ5IY0WYMa0D18PxWdC9DP9gRbOTlZufmsS8jEgqf3zBUWmP6XOf1nihpKWcqvbFUG5H7/JYXA== + +"@spotify/eslint-config@^7.0.0", "@spotify/eslint-config@^7.0.1": + version "7.0.1" + resolved "https://registry.npmjs.org/@spotify/eslint-config/-/eslint-config-7.0.1.tgz#07a21cfd7fce89cfc2c6dd5ea5d747e741201b66" + integrity sha512-8GI/TZGUhS4pr7oipT2MjrZFRgXcKzk9YImEusUdD2f5vlCniRFIBQNrvTMkyjfdQqvIVqJPLcdVPXeAgprsMw== + dependencies: + "@spotify/eslint-config-base" "^7.0.0" + "@spotify/eslint-config-react" "^7.0.1" + "@spotify/eslint-config-typescript" "^7.0.0" + "@spotify/web-scripts-utils" "^7.0.0" + "@typescript-eslint/eslint-plugin" "^2.14.0" + "@typescript-eslint/parser" "^2.14.0" + eslint-config-prettier "^6.0.0" + eslint-plugin-jest "^23.6.0" + eslint-plugin-jsx-a11y "^6.2.1" + eslint-plugin-react "^7.12.4" + eslint-plugin-react-hooks "^4.0.0" + +"@spotify/prettier-config@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@spotify/prettier-config/-/prettier-config-7.0.0.tgz#47750979d1282197295108b6958360660a955c16" + integrity sha512-lIMcx/2oDqTtW84iHKkRJe+8U6HK6GPwWH5sJp9UEHcDpdXomOQYvwcGXy2I2zwPQQ14gYYE6nEJuSnnYqsYRw== + +"@spotify/prettier-config@^8.0.0": + version "8.0.0" + resolved "https://registry.npmjs.org/@spotify/prettier-config/-/prettier-config-8.0.0.tgz#8b6c2bd579ddc54887155a0721fe04e96c89f7f2" + integrity sha512-so8w32ZV42CHWxOEXcBtbNO/hLXFrQNXVmhfzhUI6dVB9cq2xjRaiqu8GjFj8LvKbWpPj+S+KwTIS4aDVWqrFQ== + +"@spotify/web-scripts-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@spotify/web-scripts-utils/-/web-scripts-utils-7.0.0.tgz#8c6b8039fc645a36ac48629eb9ba06600f4d828a" + integrity sha512-McMy0j60lxOHjgDjegthZqEWN/PabphiM30A/mI/Y7xh9+JFnYWBTSm/wgn6EW2BsPpV631xSYYkk6B1Ph14Fw== + dependencies: + glob "^7.1.4" + read-pkg-up "^7.0.1" + +"@storybook/addon-actions@^5.3.17": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-5.3.21.tgz#16eed3eb24996adfcbf70bd476a261324d6de593" + integrity sha512-6SAF/j8UBZaAbRz/rYUlcCXda+c4LQvvNlbVJc9GHjNNNMJQQVc3/EU+M7PyFz6uDUxudAW1+AFchGk04ACJ2g== + dependencies: + "@storybook/addons" "5.3.21" + "@storybook/api" "5.3.21" + "@storybook/client-api" "5.3.21" + "@storybook/components" "5.3.21" + "@storybook/core-events" "5.3.21" + "@storybook/theming" "5.3.21" + core-js "^3.0.1" + fast-deep-equal "^2.0.1" + global "^4.3.2" + polished "^3.3.1" + prop-types "^15.7.2" + react "^16.8.3" + react-inspector "^4.0.0" + uuid "^3.3.2" + +"@storybook/addon-links@^5.3.17": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-5.3.21.tgz#4bae11c5de77fcce1f5429be3454376870512db2" + integrity sha512-Gjg3EUGVNSubvWawgbdiXQIKOL7QoMQOCeh1Pyl+5GPozYWDMr8O+86funTbt9LPBzGE1J+RWHarDaArUc6tSw== + dependencies: + "@storybook/addons" "5.3.21" + "@storybook/client-logger" "5.3.21" + "@storybook/core-events" "5.3.21" + "@storybook/csf" "0.0.1" + "@storybook/router" "5.3.21" + core-js "^3.0.1" + global "^4.3.2" + prop-types "^15.7.2" + qs "^6.6.0" + ts-dedent "^1.1.0" + +"@storybook/addon-storysource@^5.3.18": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-5.3.21.tgz#1c958f0b91128cc1d0410c0660422adfe3b876fb" + integrity sha512-xndADOr74/Jf6Dy5bzV/cxmmXZBk4nted5O2fPGGnNIyvG24TPnJcQvPQfiHcC1Br/wW3HMgBcyQp3cT+UhXcg== + dependencies: + "@storybook/addons" "5.3.21" + "@storybook/components" "5.3.21" + "@storybook/router" "5.3.21" + "@storybook/source-loader" "5.3.21" + "@storybook/theming" "5.3.21" + core-js "^3.0.1" + estraverse "^4.2.0" + loader-utils "^1.2.3" + prettier "^1.16.4" + prop-types "^15.7.2" + react-syntax-highlighter "^11.0.2" + regenerator-runtime "^0.13.3" + util-deprecate "^1.0.2" + +"@storybook/addons@5.3.21": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/addons/-/addons-5.3.21.tgz#ee312c738c33e8c34dc11777ef93522c3c36e56a" + integrity sha512-Ji/21WADTLVbTbiKcZ64BcL0Es+h1Afxx3kNmGJqPSTUYroCwIFCT9mUzCqU6G+YyWaISAmTii5UJkTwMkChwA== + dependencies: + "@storybook/api" "5.3.21" + "@storybook/channels" "5.3.21" + "@storybook/client-logger" "5.3.21" + "@storybook/core-events" "5.3.21" + core-js "^3.0.1" + global "^4.3.2" + util-deprecate "^1.0.2" + +"@storybook/addons@^6.0.4": + version "6.0.20" + resolved "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.20.tgz#2c21655db9ffe7606dcabbaf85216f72f4799616" + integrity sha512-UdImOL9+oFgZKjvdpq5Lu9P+UcUm8N6eJzbC8T/eRVomYj1e7sjHs7PyVRsyDiDmhrCKZ5KpNFw3r2yRnav04g== + dependencies: + "@storybook/api" "6.0.20" + "@storybook/channels" "6.0.20" + "@storybook/client-logger" "6.0.20" + "@storybook/core-events" "6.0.20" + "@storybook/router" "6.0.20" + "@storybook/theming" "6.0.20" + core-js "^3.0.1" + global "^4.3.2" + regenerator-runtime "^0.13.3" + +"@storybook/api@5.3.21": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/api/-/api-5.3.21.tgz#8f1772de53b65e1a65d2f0257463d621a8617c58" + integrity sha512-K1o4an/Rx8daKRDooks6qzN6ZGyqizeacZZbair3F8CsSfTgrr2zCcf9pgKojLQa9koEmMHlcdb2KnS+GwPEgA== + dependencies: + "@reach/router" "^1.2.1" + "@storybook/channels" "5.3.21" + "@storybook/client-logger" "5.3.21" + "@storybook/core-events" "5.3.21" + "@storybook/csf" "0.0.1" + "@storybook/router" "5.3.21" + "@storybook/theming" "5.3.21" + "@types/reach__router" "^1.2.3" + core-js "^3.0.1" + fast-deep-equal "^2.0.1" + global "^4.3.2" + lodash "^4.17.15" + memoizerific "^1.11.3" + prop-types "^15.6.2" + react "^16.8.3" + semver "^6.0.0" + shallow-equal "^1.1.0" + store2 "^2.7.1" + telejson "^3.2.0" + util-deprecate "^1.0.2" + +"@storybook/api@6.0.20": + version "6.0.20" + resolved "https://registry.npmjs.org/@storybook/api/-/api-6.0.20.tgz#93f0175d7aa32765263afe1de8ef099a64d382e6" + integrity sha512-ks68jcQ0AuL8KEkxHJ8byI3P9dySqZjQorqdEPsAfACAUmslKyHVgKUObonm7M5HNOBFItntzp9fow6n9iKzHw== + dependencies: + "@reach/router" "^1.3.3" + "@storybook/channels" "6.0.20" + "@storybook/client-logger" "6.0.20" + "@storybook/core-events" "6.0.20" + "@storybook/csf" "0.0.1" + "@storybook/router" "6.0.20" + "@storybook/semver" "^7.3.2" + "@storybook/theming" "6.0.20" + "@types/reach__router" "^1.3.5" + core-js "^3.0.1" + fast-deep-equal "^3.1.1" + global "^4.3.2" + lodash "^4.17.15" + memoizerific "^1.11.3" + react "^16.8.3" + regenerator-runtime "^0.13.3" + store2 "^2.7.1" + telejson "^5.0.2" + ts-dedent "^1.1.1" + util-deprecate "^1.0.2" + +"@storybook/channel-postmessage@5.3.21": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-5.3.21.tgz#9c08bf1c108ff973dbca18e582680d25178db1d4" + integrity sha512-CfoP7aEbZtJ35R9zeujMRdIwprETUi+Ve+y84DhXYQ2uJ0rR3vO4zHLZnxMMyJ5VnYOfuO042uch07+EKBz40Q== + dependencies: + "@storybook/channels" "5.3.21" + "@storybook/client-logger" "5.3.21" + core-js "^3.0.1" + global "^4.3.2" + telejson "^3.2.0" + +"@storybook/channels@5.3.21": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/channels/-/channels-5.3.21.tgz#53ba622b171d68b3b102983a62aa05149a49497b" + integrity sha512-OXoFs9XtBVg/cCk6lYMrxkzaNlJRf54ABdorp7YAAj7S9tRL1JxOZHxmjNQwEoiRvssmem2rAWtEAxfuEANsAA== + dependencies: + core-js "^3.0.1" + +"@storybook/channels@6.0.20": + version "6.0.20" + resolved "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.20.tgz#cadaf7f47b6ba14497cdd3ac0b0bdc18ba645ffe" + integrity sha512-KH75jHRoK4X/2fzE98X5po7w8X+Us+sy5W+HW31yj8MWh/IgFrOmcXvgWbmGSr1K6uPoAzgNNiCaXvubZ6LIKw== + dependencies: + core-js "^3.0.1" + ts-dedent "^1.1.1" + util-deprecate "^1.0.2" + +"@storybook/client-api@5.3.21": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/client-api/-/client-api-5.3.21.tgz#5b218a28f24219c32ab4b92a6af2a3e452fb8089" + integrity sha512-vS4DfA2Avvl7JNQymO4e3RUNoTWIGVfZJ70Irnd6PTAZNojbCXTYuigDavrmyf83F3g5rQpwmSAPjuoi/X/FRA== + dependencies: + "@storybook/addons" "5.3.21" + "@storybook/channel-postmessage" "5.3.21" + "@storybook/channels" "5.3.21" + "@storybook/client-logger" "5.3.21" + "@storybook/core-events" "5.3.21" + "@storybook/csf" "0.0.1" + "@types/webpack-env" "^1.15.0" + core-js "^3.0.1" + eventemitter3 "^4.0.0" + global "^4.3.2" + is-plain-object "^3.0.0" + lodash "^4.17.15" + memoizerific "^1.11.3" + qs "^6.6.0" + stable "^0.1.8" + ts-dedent "^1.1.0" + util-deprecate "^1.0.2" + +"@storybook/client-logger@5.3.21": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-5.3.21.tgz#912c83b0d358e70acad1ad4abe199de4c38b109f" + integrity sha512-OzQkwpZ5SK9cXD9Mv6lxPGPot+hSZvnkEW12kpt1AHfJz4ET26YTDOI3oetPsjfRJo6qYLeQX8+wF7rklfXbzA== + dependencies: + core-js "^3.0.1" + +"@storybook/client-logger@6.0.20": + version "6.0.20" + resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.20.tgz#552a0aa39e437dd4c0d04f1db60e76dbff6e3dcc" + integrity sha512-JRYKAMIy6Mdbrjrt+U04gRv3auPO3QKqCcXJxNmbEuuJZExVYZ8kvL1ic9OzV/go+7GZ5ok1y5FODxvfCKbxXg== + dependencies: + core-js "^3.0.1" + global "^4.3.2" + +"@storybook/components@5.3.21": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/components/-/components-5.3.21.tgz#17ee371a2455c6e807c3d3135a9266e63ad7651a" + integrity sha512-42QQk6qZl6wrtajP8yNCfmNS2t8Iod5QY+4V/l6iNnnT9O+j6cWOlnO+ZyvjNv0Xm0zIOt+VyVjdkKh8FUjQmA== + dependencies: + "@storybook/client-logger" "5.3.21" + "@storybook/theming" "5.3.21" + "@types/react-syntax-highlighter" "11.0.4" + "@types/react-textarea-autosize" "^4.3.3" + core-js "^3.0.1" + global "^4.3.2" + lodash "^4.17.15" + markdown-to-jsx "^6.11.4" + memoizerific "^1.11.3" + polished "^3.3.1" + popper.js "^1.14.7" + prop-types "^15.7.2" + react "^16.8.3" + react-dom "^16.8.3" + react-focus-lock "^2.1.0" + react-helmet-async "^1.0.2" + react-popper-tooltip "^2.8.3" + react-syntax-highlighter "^11.0.2" + react-textarea-autosize "^7.1.0" + simplebar-react "^1.0.0-alpha.6" + ts-dedent "^1.1.0" + +"@storybook/core-events@5.3.21": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-5.3.21.tgz#41d81c3f107302a032545fc86ff344230c04b9e9" + integrity sha512-/Zsm1sKAh6pzQv8jQUmuhM7nuM01ZljIRKy8p2HjPNlMjDB5yaRkBfyeAUXUg+qXNI6aHVWa4jGdPEdwwY4oLA== + dependencies: + core-js "^3.0.1" + +"@storybook/core-events@6.0.20": + version "6.0.20" + resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.20.tgz#cf86fc4315e9ba064a08a0e313e419375ab07abd" + integrity sha512-0UIgBRx5n7CaBAb1JQBSUm0+MI7+7hnJSM6bjwcvBSZxpqSY9txPlQyxmzt5xTDJQye1HxmL1IpHfMxvzATLuQ== + dependencies: + core-js "^3.0.1" + +"@storybook/core@5.3.21": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/core/-/core-5.3.21.tgz#da963166ea24601f318266a3aa6bbc06fc8fb175" + integrity sha512-plD47WIsn/JoyRJDOpmH7N7mEMo/jiA8ZlOitLW55zYvzUn8UrVpRFpMYo91OJxiCT6JFoaEh3XtNdhbgUwnPA== + dependencies: + "@babel/plugin-proposal-class-properties" "^7.7.0" + "@babel/plugin-proposal-object-rest-spread" "^7.6.2" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/plugin-transform-react-constant-elements" "^7.2.0" + "@babel/preset-env" "^7.4.5" + "@storybook/addons" "5.3.21" + "@storybook/channel-postmessage" "5.3.21" + "@storybook/client-api" "5.3.21" + "@storybook/client-logger" "5.3.21" + "@storybook/core-events" "5.3.21" + "@storybook/csf" "0.0.1" + "@storybook/node-logger" "5.3.21" + "@storybook/router" "5.3.21" + "@storybook/theming" "5.3.21" + "@storybook/ui" "5.3.21" + airbnb-js-shims "^2.2.1" + ansi-to-html "^0.6.11" + autoprefixer "^9.7.2" + babel-plugin-add-react-displayname "^0.0.5" + babel-plugin-emotion "^10.0.20" + babel-plugin-macros "^2.7.0" + babel-preset-minify "^0.5.0 || 0.6.0-alpha.5" + boxen "^4.1.0" + case-sensitive-paths-webpack-plugin "^2.2.0" + chalk "^3.0.0" + cli-table3 "0.5.1" + commander "^4.0.1" + core-js "^3.0.1" + corejs-upgrade-webpack-plugin "^2.2.0" + css-loader "^3.0.0" + detect-port "^1.3.0" + dotenv-webpack "^1.7.0" + ejs "^2.7.4" + express "^4.17.0" + file-loader "^4.2.0" + file-system-cache "^1.0.5" + find-cache-dir "^3.0.0" + find-up "^4.1.0" + fs-extra "^8.0.1" + glob-base "^0.3.0" + global "^4.3.2" + html-webpack-plugin "^4.0.0-beta.2" + 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" + open "^7.0.0" + pnp-webpack-plugin "1.5.0" + postcss-flexbugs-fixes "^4.1.0" + postcss-loader "^3.0.0" + pretty-hrtime "^1.0.3" + qs "^6.6.0" + raw-loader "^3.1.0" + react-dev-utils "^9.0.0" + regenerator-runtime "^0.13.3" + resolve "^1.11.0" + resolve-from "^5.0.0" + semver "^6.0.0" + serve-favicon "^2.5.0" + shelljs "^0.8.3" + style-loader "^1.0.0" + terser-webpack-plugin "^2.1.2" + ts-dedent "^1.1.0" + unfetch "^4.1.0" + url-loader "^2.0.1" + util-deprecate "^1.0.2" + webpack "^4.33.0" + webpack-dev-middleware "^3.7.0" + webpack-hot-middleware "^2.25.0" + webpack-virtual-modules "^0.2.0" + +"@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@5.3.21": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-5.3.21.tgz#f11d45042bd57dc69e9037d8f374d9fd0aad8071" + integrity sha512-8xibncy873JXePCK5MC0qem1MKtWI1Lc4hv6rwURSwYpZtkO7yElay3XAFGUSfz8qFJkoDBmMTxBR3fp4Dln7g== + dependencies: + "@types/npmlog" "^4.1.2" + chalk "^3.0.0" + core-js "^3.0.1" + npmlog "^4.1.2" + pretty-hrtime "^1.0.3" + regenerator-runtime "^0.13.3" + +"@storybook/react@^5.3.17": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/react/-/react-5.3.21.tgz#f7f364d3d3adc70746a12cf8b6614952f41d4bd0" + integrity sha512-A50F8dDZxyLGa/dE3q0Zxt7T5r9UbomoSclqw7oJTO9GI76QOu7GfsoWrEL2gTEDAmqXreLVQqGuTLQhBz0rlA== + dependencies: + "@babel/plugin-transform-react-constant-elements" "^7.6.3" + "@babel/preset-flow" "^7.0.0" + "@babel/preset-react" "^7.0.0" + "@storybook/addons" "5.3.21" + "@storybook/core" "5.3.21" + "@storybook/node-logger" "5.3.21" + "@svgr/webpack" "^4.0.3" + "@types/webpack-env" "^1.15.0" + babel-plugin-add-react-displayname "^0.0.5" + babel-plugin-named-asset-import "^0.3.1" + babel-plugin-react-docgen "^4.0.0" + core-js "^3.0.1" + global "^4.3.2" + lodash "^4.17.15" + mini-css-extract-plugin "^0.7.0" + prop-types "^15.7.2" + react-dev-utils "^9.0.0" + regenerator-runtime "^0.13.3" + semver "^6.0.0" + ts-dedent "^1.1.0" + webpack "^4.33.0" + +"@storybook/router@5.3.21": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/router/-/router-5.3.21.tgz#32b08e5daa90a6ffa024bb670b874525a712a901" + integrity sha512-c29m5UikK5Q1lyd6FltOGFhIcpd6PIb855YS3OUNe3F6ZA1tfJ+aNKrCBc65d1c+fvCGG76dYYYv0RvwEmKXXg== + dependencies: + "@reach/router" "^1.2.1" + "@storybook/csf" "0.0.1" + "@types/reach__router" "^1.2.3" + core-js "^3.0.1" + global "^4.3.2" + lodash "^4.17.15" + memoizerific "^1.11.3" + qs "^6.6.0" + util-deprecate "^1.0.2" + +"@storybook/router@6.0.20": + version "6.0.20" + resolved "https://registry.npmjs.org/@storybook/router/-/router-6.0.20.tgz#f81ce852b5173e5c2afeead19af0d66326fe7ebc" + integrity sha512-mHd/ZGc0rGenozrITmzkMKVSTdGztBqEQXPLMGaL2f7+kQENHcbMe0KL90Hh54WnUUfupO2pQf76Pvw7JPN5NQ== + dependencies: + "@reach/router" "^1.3.3" + "@types/reach__router" "^1.3.5" + core-js "^3.0.1" + global "^4.3.2" + memoizerific "^1.11.3" + qs "^6.6.0" + +"@storybook/semver@^7.3.2": + version "7.3.2" + resolved "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz#f3b9c44a1c9a0b933c04e66d0048fcf2fa10dac0" + integrity sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg== + dependencies: + core-js "^3.6.5" + find-up "^4.1.0" + +"@storybook/source-loader@5.3.21": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-5.3.21.tgz#d5f8758fc6b2d9f0ca45e2ffbffa513d5151fd9e" + integrity sha512-kzaxvmWhRdkgp7a/XhsHxOB1D3XOkA8kmFahMAJD506hts8he+G2QSaj3BosOFCxa2OYAxbcIBs3JFyaXQGJ0A== + dependencies: + "@storybook/addons" "5.3.21" + "@storybook/client-logger" "5.3.21" + "@storybook/csf" "0.0.1" + core-js "^3.0.1" + estraverse "^4.2.0" + global "^4.3.2" + loader-utils "^1.2.3" + prettier "^1.16.4" + prop-types "^15.7.2" + regenerator-runtime "^0.13.3" + +"@storybook/theming@5.3.21": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/theming/-/theming-5.3.21.tgz#ae2dc101aa57c3be4df1724ae729e11bad118e0b" + integrity sha512-FZbxjizqdO9lV5LUixPio/7+6UdPiswCzTJn8Hcot9uwwgfnrViRdN7xyjmSYRqv9nHP3OlYbtdeCAgZ4aPq8g== + dependencies: + "@emotion/core" "^10.0.20" + "@emotion/styled" "^10.0.17" + "@storybook/client-logger" "5.3.21" + 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.3.1" + prop-types "^15.7.2" + resolve-from "^5.0.0" + ts-dedent "^1.1.0" + +"@storybook/theming@6.0.20": + version "6.0.20" + resolved "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.20.tgz#a7d4b953552dc9cc7431497ec7920774d21ae24f" + integrity sha512-gTDq3Qu/LuJ04/4quld0/oFnW2gIaKEYxwIyAoIjZ3wKOsGyleBEFPZEtyQaKZkzQMh4mkmO020ckDz9+XH0jg== + dependencies: + "@emotion/core" "^10.0.20" + "@emotion/is-prop-valid" "^0.8.6" + "@emotion/styled" "^10.0.17" + "@storybook/client-logger" "6.0.20" + 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 "^1.1.1" + +"@storybook/ui@5.3.21": + version "5.3.21" + resolved "https://registry.npmjs.org/@storybook/ui/-/ui-5.3.21.tgz#b42568e03353b47aaab1b6449311f38858585f81" + integrity sha512-OUf8JYY9LN+XfzLSZE6KtboITGDL6C8Z0W9QOXM5LJwFLv4PkANK/f9qsB5vVHFm7vhoO96butFzs6SjTKhxkw== + dependencies: + "@emotion/core" "^10.0.20" + "@storybook/addons" "5.3.21" + "@storybook/api" "5.3.21" + "@storybook/channels" "5.3.21" + "@storybook/client-logger" "5.3.21" + "@storybook/components" "5.3.21" + "@storybook/core-events" "5.3.21" + "@storybook/router" "5.3.21" + "@storybook/theming" "5.3.21" + copy-to-clipboard "^3.0.8" + core-js "^3.0.1" + core-js-pure "^3.0.1" + emotion-theming "^10.0.19" + fast-deep-equal "^2.0.1" + fuse.js "^3.4.6" + global "^4.3.2" + lodash "^4.17.15" + markdown-to-jsx "^6.11.4" + memoizerific "^1.11.3" + polished "^3.3.1" + prop-types "^15.7.2" + qs "^6.6.0" + react "^16.8.3" + react-dom "^16.8.3" + react-draggable "^4.0.3" + react-helmet-async "^1.0.2" + react-hotkeys "2.0.0" + react-sizeme "^2.6.7" + regenerator-runtime "^0.13.2" + resolve-from "^5.0.0" + semver "^6.0.0" + store2 "^2.7.1" + telejson "^3.2.0" + util-deprecate "^1.0.2" + +"@styled-system/background@^5.1.2": + version "5.1.2" + resolved "https://registry.npmjs.org/@styled-system/background/-/background-5.1.2.tgz#75c63d06b497ab372b70186c0bf608d62847a2ba" + integrity sha512-jtwH2C/U6ssuGSvwTN3ri/IyjdHb8W9X/g8Y0JLcrH02G+BW3OS8kZdHphF1/YyRklnrKrBT2ngwGUK6aqqV3A== + dependencies: + "@styled-system/core" "^5.1.2" + +"@styled-system/border@^5.1.5": + version "5.1.5" + resolved "https://registry.npmjs.org/@styled-system/border/-/border-5.1.5.tgz#0493d4332d2b59b74bb0d57d08c73eb555761ba6" + integrity sha512-JvddhNrnhGigtzWRCVuAHepniyVi6hBlimxWDVAdcTuk7aRn9BYJUwfHslURtwYFsF5FoEs8Zmr1oZq2M1AP0A== + dependencies: + "@styled-system/core" "^5.1.2" + +"@styled-system/color@^5.1.2": + version "5.1.2" + resolved "https://registry.npmjs.org/@styled-system/color/-/color-5.1.2.tgz#b8d6b4af481faabe4abca1a60f8daa4ccc2d9f43" + integrity sha512-1kCkeKDZkt4GYkuFNKc7vJQMcOmTl3bJY3YBUs7fCNM6mMYJeT1pViQ2LwBSBJytj3AB0o4IdLBoepgSgGl5MA== + dependencies: + "@styled-system/core" "^5.1.2" + +"@styled-system/core@^5.1.2": + version "5.1.2" + resolved "https://registry.npmjs.org/@styled-system/core/-/core-5.1.2.tgz#b8b7b86455d5a0514f071c4fa8e434b987f6a772" + integrity sha512-XclBDdNIy7OPOsN4HBsawG2eiWfCcuFt6gxKn1x4QfMIgeO6TOlA2pZZ5GWZtIhCUqEPTgIBta6JXsGyCkLBYw== + dependencies: + object-assign "^4.1.1" + +"@styled-system/css@^5.1.5": + version "5.1.5" + resolved "https://registry.npmjs.org/@styled-system/css/-/css-5.1.5.tgz#0460d5f3ff962fa649ea128ef58d9584f403bbbc" + integrity sha512-XkORZdS5kypzcBotAMPBoeckDs9aSZVkvrAlq5K3xP8IMAUek+x2O4NtwoSgkYkWWzVBu6DGdFZLR790QWGG+A== + +"@styled-system/flexbox@^5.1.2": + version "5.1.2" + resolved "https://registry.npmjs.org/@styled-system/flexbox/-/flexbox-5.1.2.tgz#077090f43f61c3852df63da24e4108087a8beecf" + integrity sha512-6hHV52+eUk654Y1J2v77B8iLeBNtc+SA3R4necsu2VVinSD7+XY5PCCEzBFaWs42dtOEDIa2lMrgL0YBC01mDQ== + dependencies: + "@styled-system/core" "^5.1.2" + +"@styled-system/grid@^5.1.2": + version "5.1.2" + resolved "https://registry.npmjs.org/@styled-system/grid/-/grid-5.1.2.tgz#7165049877732900b99cd00759679fbe45c6c573" + integrity sha512-K3YiV1KyHHzgdNuNlaw8oW2ktMuGga99o1e/NAfTEi5Zsa7JXxzwEnVSDSBdJC+z6R8WYTCYRQC6bkVFcvdTeg== + dependencies: + "@styled-system/core" "^5.1.2" + +"@styled-system/layout@^5.1.2": + version "5.1.2" + resolved "https://registry.npmjs.org/@styled-system/layout/-/layout-5.1.2.tgz#12d73e79887e10062f4dbbbc2067462eace42339" + integrity sha512-wUhkMBqSeacPFhoE9S6UF3fsMEKFv91gF4AdDWp0Aym1yeMPpqz9l9qS/6vjSsDPF7zOb5cOKC3tcKKOMuDCPw== + dependencies: + "@styled-system/core" "^5.1.2" + +"@styled-system/position@^5.1.2": + version "5.1.2" + resolved "https://registry.npmjs.org/@styled-system/position/-/position-5.1.2.tgz#56961266566836f57a24d8e8e33ce0c1adb59dd3" + integrity sha512-60IZfMXEOOZe3l1mCu6sj/2NAyUmES2kR9Kzp7s2D3P4qKsZWxD1Se1+wJvevb+1TP+ZMkGPEYYXRyU8M1aF5A== + dependencies: + "@styled-system/core" "^5.1.2" + +"@styled-system/shadow@^5.1.2": + version "5.1.2" + resolved "https://registry.npmjs.org/@styled-system/shadow/-/shadow-5.1.2.tgz#beddab28d7de03cd0177a87ac4ed3b3b6d9831fd" + integrity sha512-wqniqYb7XuZM7K7C0d1Euxc4eGtqEe/lvM0WjuAFsQVImiq6KGT7s7is+0bNI8O4Dwg27jyu4Lfqo/oIQXNzAg== + dependencies: + "@styled-system/core" "^5.1.2" + +"@styled-system/should-forward-prop@^5.1.2": + version "5.1.5" + resolved "https://registry.npmjs.org/@styled-system/should-forward-prop/-/should-forward-prop-5.1.5.tgz#c392008c6ae14a6eb78bf1932733594f7f7e5c76" + integrity sha512-+rPRomgCGYnUIaFabDoOgpSDc4UUJ1KsmlnzcEp0tu5lFrBQKgZclSo18Z1URhaZm7a6agGtS5Xif7tuC2s52Q== + dependencies: + "@emotion/is-prop-valid" "^0.8.1" + "@emotion/memoize" "^0.7.1" + styled-system "^5.1.5" + +"@styled-system/space@^5.1.2": + version "5.1.2" + resolved "https://registry.npmjs.org/@styled-system/space/-/space-5.1.2.tgz#38925d2fa29a41c0eb20e65b7c3efb6e8efce953" + integrity sha512-+zzYpR8uvfhcAbaPXhH8QgDAV//flxqxSjHiS9cDFQQUSznXMQmxJegbhcdEF7/eNnJgHeIXv1jmny78kipgBA== + dependencies: + "@styled-system/core" "^5.1.2" + +"@styled-system/typography@^5.1.2": + version "5.1.2" + resolved "https://registry.npmjs.org/@styled-system/typography/-/typography-5.1.2.tgz#65fb791c67d50cd2900d234583eaacdca8c134f7" + integrity sha512-BxbVUnN8N7hJ4aaPOd7wEsudeT7CxarR+2hns8XCX1zp0DFfbWw4xYa/olA0oQaqx7F1hzDg+eRaGzAJbF+jOg== + dependencies: + "@styled-system/core" "^5.1.2" + +"@styled-system/variant@^5.1.5": + version "5.1.5" + resolved "https://registry.npmjs.org/@styled-system/variant/-/variant-5.1.5.tgz#8446d8aad06af3a4c723d717841df2dbe4ddeafd" + integrity sha512-Yn8hXAFoWIro8+Q5J8YJd/mP85Teiut3fsGVR9CAxwgNfIAiqlYxsk5iHU7VHJks/0KjL4ATSjmbtCDC/4l1qw== + dependencies: + "@styled-system/core" "^5.1.2" + "@styled-system/css" "^5.1.5" + +"@sucrase/webpack-loader@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@sucrase/webpack-loader/-/webpack-loader-2.0.0.tgz#b8a70b8d3df3eeb570e6a3315e1a9c6b723e4a37" + integrity sha512-KUfWr83g70Qm+ZqjGL+M4tX01taDP3BldQcI6NSMlDf7WTDfuo0RvLlS0ekF6dPVslNyZhbFFBy2OBTB6Sa6+Q== + dependencies: + loader-utils "^1.1.0" + +"@svgr/babel-plugin-add-jsx-attribute@^4.2.0": + version "4.2.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz#dadcb6218503532d6884b210e7f3c502caaa44b1" + integrity sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig== + +"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" + integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== + +"@svgr/babel-plugin-remove-jsx-attribute@^4.2.0": + version "4.2.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz#297550b9a8c0c7337bea12bdfc8a80bb66f85abc" + integrity sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ== + +"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" + integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^4.2.0": + version "4.2.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz#c196302f3e68eab6a05e98af9ca8570bc13131c7" + integrity sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": + version "5.0.1" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" + integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^4.2.0": + version "4.2.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz#310ec0775de808a6a2e4fd4268c245fd734c1165" + integrity sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": + version "5.0.1" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" + integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== + +"@svgr/babel-plugin-svg-dynamic-title@^4.3.3": + version "4.3.3" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.3.3.tgz#2cdedd747e5b1b29ed4c241e46256aac8110dd93" + integrity sha512-w3Be6xUNdwgParsvxkkeZb545VhXEwjGMwExMVBIdPQJeyMQHqm9Msnb2a1teHBqUYL66qtwfhNkbj1iarCG7w== + +"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" + integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== + +"@svgr/babel-plugin-svg-em-dimensions@^4.2.0": + version "4.2.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz#9a94791c9a288108d20a9d2cc64cac820f141391" + integrity sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w== + +"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" + integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== + +"@svgr/babel-plugin-transform-react-native-svg@^4.2.0": + version "4.2.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz#151487322843359a1ca86b21a3815fd21a88b717" + integrity sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw== + +"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" + integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== + +"@svgr/babel-plugin-transform-svg-component@^4.2.0": + version "4.2.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz#5f1e2f886b2c85c67e76da42f0f6be1b1767b697" + integrity sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw== + +"@svgr/babel-plugin-transform-svg-component@^5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.4.0.tgz#a2212b4d018e6075a058bb7e220a66959ef7a03c" + integrity sha512-zLl4Fl3NvKxxjWNkqEcpdSOpQ3LGVH2BNFQ6vjaK6sFo2IrSznrhURIPI0HAphKiiIwNYjAfE0TNoQDSZv0U9A== + +"@svgr/babel-preset@^4.3.3": + version "4.3.3" + resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-4.3.3.tgz#a75d8c2f202ac0e5774e6bfc165d028b39a1316c" + integrity sha512-6PG80tdz4eAlYUN3g5GZiUjg2FMcp+Wn6rtnz5WJG9ITGEF1pmFdzq02597Hn0OmnQuCVaBYQE1OVFAnwOl+0A== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^4.2.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^4.2.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^4.2.0" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^4.2.0" + "@svgr/babel-plugin-svg-dynamic-title" "^4.3.3" + "@svgr/babel-plugin-svg-em-dimensions" "^4.2.0" + "@svgr/babel-plugin-transform-react-native-svg" "^4.2.0" + "@svgr/babel-plugin-transform-svg-component" "^4.2.0" + +"@svgr/babel-preset@^5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.4.0.tgz#da21854643e1c4ad2279239baa7d5a8b128c1f15" + integrity sha512-Gyx7cCxua04DBtyILTYdQxeO/pwfTBev6+eXTbVbxe4HTGhOUW6yo7PSbG2p6eJMl44j6XSequ0ZDP7bl0nu9A== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1" + "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" + "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" + "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" + "@svgr/babel-plugin-transform-svg-component" "^5.4.0" + +"@svgr/core@^4.3.3": + version "4.3.3" + resolved "https://registry.npmjs.org/@svgr/core/-/core-4.3.3.tgz#b37b89d5b757dc66e8c74156d00c368338d24293" + integrity sha512-qNuGF1QON1626UCaZamWt5yedpgOytvLj5BQZe2j1k1B8DUG4OyugZyfEwBeXozCUwhLEpsrgPrE+eCu4fY17w== + dependencies: + "@svgr/plugin-jsx" "^4.3.3" + camelcase "^5.3.1" + cosmiconfig "^5.2.1" + +"@svgr/core@^5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/core/-/core-5.4.0.tgz#655378ee43679eb94fee3d4e1976e38252dff8e7" + integrity sha512-hWGm1DCCvd4IEn7VgDUHYiC597lUYhFau2lwJBYpQWDirYLkX4OsXu9IslPgJ9UpP7wsw3n2Ffv9sW7SXJVfqQ== + dependencies: + "@svgr/plugin-jsx" "^5.4.0" + camelcase "^6.0.0" + cosmiconfig "^6.0.0" + +"@svgr/hast-util-to-babel-ast@^4.3.2": + version "4.3.2" + resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.2.tgz#1d5a082f7b929ef8f1f578950238f630e14532b8" + integrity sha512-JioXclZGhFIDL3ddn4Kiq8qEqYM2PyDKV0aYno8+IXTLuYt6TOgHUbUAAFvqtb0Xn37NwP0BTHglejFoYr8RZg== + dependencies: + "@babel/types" "^7.4.4" + +"@svgr/hast-util-to-babel-ast@^5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.4.0.tgz#bb5d002e428f510aa5b53ec0a02377a95b367715" + integrity sha512-+U0TZZpPsP2V1WvVhqAOSTk+N+CjYHdZx+x9UBa1eeeZDXwH8pt0CrQf2+SvRl/h2CAPRFkm+Ey96+jKP8Bsgg== + dependencies: + "@babel/types" "^7.9.5" + +"@svgr/plugin-jsx@4.3.x", "@svgr/plugin-jsx@^4.3.3": + version "4.3.3" + resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz#e2ba913dbdfbe85252a34db101abc7ebd50992fa" + integrity sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w== + dependencies: + "@babel/core" "^7.4.5" + "@svgr/babel-preset" "^4.3.3" + "@svgr/hast-util-to-babel-ast" "^4.3.2" + svg-parser "^2.0.0" + +"@svgr/plugin-jsx@^5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.4.0.tgz#ab47504c55615833c6db70fca2d7e489f509787c" + integrity sha512-SGzO4JZQ2HvGRKDzRga9YFSqOqaNrgLlQVaGvpZ2Iht2gwRp/tq+18Pvv9kS9ZqOMYgyix2LLxZMY1LOe9NPqw== + dependencies: + "@babel/core" "^7.7.5" + "@svgr/babel-preset" "^5.4.0" + "@svgr/hast-util-to-babel-ast" "^5.4.0" + svg-parser "^2.0.2" + +"@svgr/plugin-svgo@4.3.x", "@svgr/plugin-svgo@^4.3.1": + version "4.3.1" + resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-4.3.1.tgz#daac0a3d872e3f55935c6588dd370336865e9e32" + integrity sha512-PrMtEDUWjX3Ea65JsVCwTIXuSqa3CG9px+DluF1/eo9mlDrgrtFE7NE/DjdhjJgSM9wenlVBzkzneSIUgfUI/w== + dependencies: + cosmiconfig "^5.2.1" + merge-deep "^3.0.2" + svgo "^1.2.2" + +"@svgr/plugin-svgo@^5.4.0": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.4.0.tgz#45d9800b7099a6f7b4d85ebac89ab9abe8592f64" + integrity sha512-3Cgv3aYi1l6SHyzArV9C36yo4kgwVdF3zPQUC6/aCDUeXAofDYwE5kk3e3oT5ZO2a0N3lB+lLGvipBG6lnG8EA== + dependencies: + cosmiconfig "^6.0.0" + merge-deep "^3.0.2" + svgo "^1.2.2" + +"@svgr/rollup@5.4.x": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/rollup/-/rollup-5.4.0.tgz#b1946c8d2c13870397af014a105d40945b7371e5" + integrity sha512-hwYjrTddW6mFU9vwqRr1TULNvxiIxGdIbqrD5J7vtoATSfWazq/2JSnT4BmiH+/4kFXLEtjKuSKoDUotkOIAkg== + dependencies: + "@babel/core" "^7.7.5" + "@babel/plugin-transform-react-constant-elements" "^7.7.4" + "@babel/preset-env" "^7.9.5" + "@babel/preset-react" "^7.9.4" + "@svgr/core" "^5.4.0" + "@svgr/plugin-jsx" "^5.4.0" + "@svgr/plugin-svgo" "^5.4.0" + rollup-pluginutils "^2.8.2" + +"@svgr/webpack@4.3.x", "@svgr/webpack@^4.0.3": + version "4.3.3" + resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.3.3.tgz#13cc2423bf3dff2d494f16b17eb7eacb86895017" + integrity sha512-bjnWolZ6KVsHhgyCoYRFmbd26p8XVbulCzSG53BDQqAr+JOAderYK7CuYrB3bDjHJuF6LJ7Wrr42+goLRV9qIg== + dependencies: + "@babel/core" "^7.4.5" + "@babel/plugin-transform-react-constant-elements" "^7.0.0" + "@babel/preset-env" "^7.4.5" + "@babel/preset-react" "^7.0.0" + "@svgr/core" "^4.3.3" + "@svgr/plugin-jsx" "^4.3.3" + "@svgr/plugin-svgo" "^4.3.1" + loader-utils "^1.2.3" + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@szmarczak/http-timer@^4.0.0", "@szmarczak/http-timer@^4.0.5": + version "4.0.5" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" + integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== + dependencies: + defer-to-connect "^2.0.0" + +"@testing-library/cypress@^6.0.0": + version "6.0.1" + resolved "https://registry.npmjs.org/@testing-library/cypress/-/cypress-6.0.1.tgz#c924a69617db6a403c498abcb63759b79318fc76" + integrity sha512-hcPu2OnVuSTX1yDubEe7TBRD6mP2VgyopP1WTBIrJP79INPZdgOAX+TMNH68uZ/r5b4C7100IB4hjPIEQ+/Xog== + dependencies: + "@babel/runtime" "^7.11.2" + "@testing-library/dom" "^7.22.2" + "@types/testing-library__cypress" "^5.0.6" + +"@testing-library/dom@^7.11.0", "@testing-library/dom@^7.22.2", "@testing-library/dom@^7.22.3": + version "7.23.0" + resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-7.23.0.tgz#c54c0fa53705ad867bcefb52fc0c96487fbc10f6" + integrity sha512-H5m090auYH+obdZmsaYLrSWC5OauWD2CvNbz88KBxQJoXgkJzbU0DpAG8BS7Evj5WqCC3nAAKrLS6vw0ljUYLg== + dependencies: + "@babel/runtime" "^7.10.3" + "@types/aria-query" "^4.2.0" + aria-query "^4.2.2" + dom-accessibility-api "^0.5.1" + pretty-format "^26.4.2" + +"@testing-library/jest-dom@^5.10.1": + version "5.11.4" + resolved "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.11.4.tgz#f325c600db352afb92995c2576022b35621ddc99" + integrity sha512-6RRn3epuweBODDIv3dAlWjOEHQLpGJHB2i912VS3JQtsD22+ENInhdDNl4ZZQiViLlIfFinkSET/J736ytV9sw== + dependencies: + "@babel/runtime" "^7.9.2" + "@types/testing-library__jest-dom" "^5.9.1" + aria-query "^4.2.2" + chalk "^3.0.0" + css "^3.0.0" + css.escape "^1.5.1" + lodash "^4.17.15" + redent "^3.0.0" + +"@testing-library/react-hooks@^3.3.0": + version "3.4.1" + resolved "https://registry.npmjs.org/@testing-library/react-hooks/-/react-hooks-3.4.1.tgz#1f8ccd21208086ec228d9743fe40b69d0efcd7e5" + integrity sha512-LbzvE7oKsVzuW1cxA/aOeNgeVvmHWG2p/WSzalIGyWuqZT3jVcNDT5KPEwy36sUYWde0Qsh32xqIUFXukeywXg== + dependencies: + "@babel/runtime" "^7.5.4" + "@types/testing-library__react-hooks" "^3.3.0" + +"@testing-library/react@^10.4.1": + version "10.4.9" + resolved "https://registry.npmjs.org/@testing-library/react/-/react-10.4.9.tgz#9faa29c6a1a217bf8bbb96a28bd29d7a847ca150" + integrity sha512-pHZKkqUy0tmiD81afs8xfiuseXfU/N7rAX3iKjeZYje86t9VaB0LrxYVa+OOsvkrveX5jCK3IjajVn2MbePvqA== + dependencies: + "@babel/runtime" "^7.10.3" + "@testing-library/dom" "^7.22.3" + +"@testing-library/user-event@^12.0.7": + version "12.1.3" + resolved "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.1.3.tgz#0b19022f4e59596563f3f53293d67b3ab2c394f3" + integrity sha512-U6tpKWbBMvqt8tIF77crr9VyP1W+yxK+c48xH5rvYwmT4MER5jvWAFqNzkn542Bt3qeDCn0aqwb0Pv+3mDbLtw== + dependencies: + "@babel/runtime" "^7.10.2" + +"@theme-ui/color-modes@^0.3.1": + version "0.3.1" + resolved "https://registry.npmjs.org/@theme-ui/color-modes/-/color-modes-0.3.1.tgz#8c2b18fb170e6c998287b7381240a8b9cca8b0d1" + integrity sha512-WuZGgFW7M5wOWSse1PVZCEfM0OZip15/D6U3bB3B9KmWax7qiSnAm1yAMLRQKC+QYhndrjq3xU+WAQm11KnhIw== + dependencies: + "@emotion/core" "^10.0.0" + "@theme-ui/core" "^0.3.1" + "@theme-ui/css" "^0.3.1" + deepmerge "^4.2.2" + +"@theme-ui/components@^0.3.1": + version "0.3.1" + resolved "https://registry.npmjs.org/@theme-ui/components/-/components-0.3.1.tgz#fe023e156c1e1c076d5f2258466426e94adc2765" + integrity sha512-uG4dUM61s4tWv6N34uxs5VIh24bJyA/7TrYJ75WDiI+s72zbcNG7aGRpvX/hSZnAhxjdXpuskdEM3eEgOabdEg== + dependencies: + "@emotion/core" "^10.0.0" + "@emotion/styled" "^10.0.0" + "@styled-system/color" "^5.1.2" + "@styled-system/should-forward-prop" "^5.1.2" + "@styled-system/space" "^5.1.2" + "@theme-ui/css" "^0.3.1" + +"@theme-ui/core@^0.3.1": + version "0.3.1" + resolved "https://registry.npmjs.org/@theme-ui/core/-/core-0.3.1.tgz#dbe9800b9d6e923e1a7417e6adebce21524f8c02" + integrity sha512-cK6EVSOx0Kyx1Xpi4qb0JTLIxywx0DRh+53Ln1foXMplF2qKaDsFi3vD6duHIlT331E3CNOa9dftHHNM7y4rbA== + dependencies: + "@emotion/core" "^10.0.0" + "@theme-ui/css" "^0.3.1" + deepmerge "^4.2.2" + +"@theme-ui/css@^0.3.1": + version "0.3.1" + resolved "https://registry.npmjs.org/@theme-ui/css/-/css-0.3.1.tgz#b85c7e8fae948dc0de65aa30b853368993e25cb3" + integrity sha512-QB2/fZBpo4inaLHL3OrB8NOBgNfwnj8GtHzXWHb9iQSRjmtNX8zPXBe32jLT7qQP0+y8JxPT4YChZIkm5ZyIdg== + +"@theme-ui/mdx@^0.3.0": + version "0.3.0" + resolved "https://registry.npmjs.org/@theme-ui/mdx/-/mdx-0.3.0.tgz#8bb1342204acfaa69914d6b6567c5c49d9a8c1e6" + integrity sha512-/GHBNKqmUptWwkmF+zIASVQtjYs81XMEwtqPCHnHuaaCzhZxcXrtCwvcAgmCXF8hpRttCXVVxw1X3Gt0mhzaTQ== + dependencies: + "@emotion/core" "^10.0.0" + "@emotion/styled" "^10.0.0" + "@mdx-js/react" "^1.0.0" + +"@theme-ui/theme-provider@^0.3.1": + version "0.3.1" + resolved "https://registry.npmjs.org/@theme-ui/theme-provider/-/theme-provider-0.3.1.tgz#910bc43454fd61b1047d7bb0dce05e36ffb6b44b" + integrity sha512-Sjj6lD0gPxBi+hcGCkawcGZECeESV/mW2YfmPqjNgmc296x5tulfNc+0/N5CJwLVOmnkn8zR5KNWZ8BjndfeTg== + dependencies: + "@emotion/core" "^10.0.0" + "@theme-ui/color-modes" "^0.3.1" + "@theme-ui/core" "^0.3.1" + "@theme-ui/mdx" "^0.3.0" + +"@types/accepts@*", "@types/accepts@^1.3.5": + version "1.3.5" + resolved "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" + integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== + 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/aria-query@^4.2.0": + version "4.2.0" + resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.0.tgz#14264692a9d6e2fa4db3df5e56e94b5e25647ac0" + integrity sha512-iIgQNzCm0v7QMhhe4Jjn9uRh+I6GoPmt03CbEtwx3ao8/EfoQcmgtqH4vQ5Db/lxiIGaWDv6nwvunuh0RyX0+A== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": + version "7.1.9" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz#77e59d438522a6fb898fa43dc3455c6e72f3963d" + integrity sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.1" + resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" + integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.0.2" + resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" + integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.0.13" + resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.13.tgz#1874914be974a492e1b4cb00585cabb274e8ba18" + integrity sha512-i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ== + dependencies: + "@babel/types" "^7.3.0" + +"@types/body-parser@*", "@types/body-parser@1.19.0", "@types/body-parser@^1.19.0": + version "1.19.0" + resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" + integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/cacheable-request@^6.0.1": + version "6.0.1" + resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" + integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + +"@types/cheerio@^0.22.8": + version "0.22.21" + resolved "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.21.tgz#5e37887de309ba11b2e19a6e14cad7874b31a8a3" + integrity sha512-aGI3DfswwqgKPiEOTaiHV2ZPC9KEhprpgEbJnv0fZl3SGX0cGgEva1126dGrMC6AJM6v/aihlUgJn9M5DbDZ/Q== + dependencies: + "@types/node" "*" + +"@types/classnames@^2.2.9": + version "2.2.10" + resolved "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.10.tgz#cc658ca319b6355399efc1f5b9e818f1a24bf999" + integrity sha512-1UzDldn9GfYYEsWWnn/P4wkTlkZDH7lDb0wBMGbtIQc9zXEQq7FlKBdZUn6OBqD8sKZZ2RQO2mAjGpXiDGoRmQ== + +"@types/clean-css@*": + version "4.2.2" + resolved "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.2.tgz#99fd79f6939c2b325938a1c569712e07dd97d709" + integrity sha512-xiTJn3bmDh1lA8c6iVJs4ZhHw+pcmxXlJQXOB6G1oULaak8rmarIeFKI4aTJ7849dEhaO612wgIualZfbxTJwA== + dependencies: + "@types/node" "*" + +"@types/codemirror@^0.0.97": + version "0.0.97" + resolved "https://registry.npmjs.org/@types/codemirror/-/codemirror-0.0.97.tgz#6f2d8266b7f1b34aacfe8c77221fafe324c3d081" + integrity sha512-n5d7o9nWhC49DjfhsxANP7naWSeTzrjXASkUDQh7626sM4zK9XP2EVcHp1IcCf/IPV6c7ORzDUDF3Bkt231VKg== + dependencies: + "@types/tern" "*" + +"@types/color-convert@*": + version "1.9.0" + resolved "https://registry.npmjs.org/@types/color-convert/-/color-convert-1.9.0.tgz#bfa8203e41e7c65471e9841d7e306a7cd8b5172d" + integrity sha512-OKGEfULrvSL2VRbkl/gnjjgbbF7ycIlpSsX7Nkab4MOWi5XxmgBYvuiQ7lcCFY5cPDz7MUNaKgxte2VRmtr4Fg== + dependencies: + "@types/color-name" "*" + +"@types/color-name@*", "@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/color@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@types/color/-/color-3.0.1.tgz#2900490ed04da8116c5058cd5dba3572d5a25071" + integrity sha512-oeUWVaAwI+xINDUx+3F2vJkl/vVB03VChFF/Gl3iQCdbcakjuoJyMOba+3BXRtnBhxZ7uBYqQBi9EpLnvSoztA== + dependencies: + "@types/color-convert" "*" + +"@types/compression@^1.7.0": + version "1.7.0" + resolved "https://registry.npmjs.org/@types/compression/-/compression-1.7.0.tgz#8dc2a56604873cf0dd4e746d9ae4d31ae77b2390" + integrity sha512-3LzWUM+3k3XdWOUk/RO+uSjv7YWOatYq2QADJntK1pjkk4DfVP0KrIEPDnXRJxAAGKe0VpIPRmlINLDuCedZWw== + dependencies: + "@types/express" "*" + +"@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" + integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A== + dependencies: + "@types/node" "*" + +"@types/content-disposition@*": + version "0.5.3" + resolved "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.3.tgz#0aa116701955c2faa0717fc69cd1596095e49d96" + integrity sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg== + +"@types/cookie-parser@^1.4.2": + version "1.4.2" + resolved "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.2.tgz#e4d5c5ffda82b80672a88a4281aaceefb1bd9df5" + integrity sha512-uwcY8m6SDQqciHsqcKDGbo10GdasYsPCYkH3hVegj9qAah6pX5HivOnOuI3WYmyQMnOATV39zv/Ybs0bC/6iVg== + dependencies: + "@types/express" "*" + +"@types/cookie@^0.4.0": + version "0.4.0" + resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz#14f854c0f93d326e39da6e3b6f34f7d37513d108" + integrity sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg== + +"@types/cookiejar@*": + version "2.1.1" + resolved "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.1.tgz#90b68446364baf9efd8e8349bb36bd3852b75b80" + integrity sha512-aRnpPa7ysx3aNW60hTiCtLHlQaIFsXFCgQlpakNgDNVFzbtusSY8PwjAQgRWfSk0ekNoBjO51eQRB6upA9uuyw== + +"@types/cookies@*": + version "0.7.4" + resolved "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.4.tgz#26dedf791701abc0e36b5b79a5722f40e455f87b" + integrity sha512-oTGtMzZZAVuEjTwCjIh8T8FrC8n/uwy+PG0yTvQcdZ7etoel7C7/3MSd7qrukENTgQtotG7gvBlBojuVs7X5rw== + dependencies: + "@types/connect" "*" + "@types/express" "*" + "@types/keygrip" "*" + "@types/node" "*" + +"@types/cors@^2.8.4", "@types/cors@^2.8.6": + version "2.8.7" + resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.7.tgz#ab2f47f1cba93bce27dfd3639b006cc0e5600889" + integrity sha512-sOdDRU3oRS7LBNTIqwDkPJyq0lpHYcbMTt0TrjzsXbk/e37hcLTH6eZX7CdbDeN0yJJvzw9hFBZkbtCSbk/jAQ== + dependencies: + "@types/express" "*" + +"@types/cssnano@*": + version "4.0.0" + resolved "https://registry.npmjs.org/@types/cssnano/-/cssnano-4.0.0.tgz#f1bb29d6d0813861a3d87e02946b2988d0110d4e" + integrity sha512-BC/2ibKZfPIaBLBNzkitdW1IvvX/LKW6/QXGc4Su/tAJ7mQ3f2CKBuGCCKaqGAnoKwzfuC7G/recpkARwdOwuA== + dependencies: + postcss "5 - 7" + +"@types/d3-force@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@types/d3-force/-/d3-force-1.2.1.tgz#c28803ea36fe29788db69efa0ad6c2dc09544e83" + integrity sha512-jqK+I36uz4kTBjyk39meed5y31Ab+tXYN/x1dn3nZEus9yOHCLc+VrcIYLc/aSQ0Y7tMPRlIhLetulME76EiiA== + +"@types/diff@^4.0.2": + version "4.0.2" + resolved "https://registry.npmjs.org/@types/diff/-/diff-4.0.2.tgz#2e9bb89f9acc3ab0108f0f3dc4dbdcf2fff8a99c" + integrity sha512-mIenTfsIe586/yzsyfql69KRnA75S8SVXQbTLpDejRrjH0QSJcpu3AUOi/Vjnt9IOsXKxPhJfGpQUNMueIU1fQ== + +"@types/dockerode@^2.5.32", "@types/dockerode@^2.5.34": + version "2.5.34" + resolved "https://registry.npmjs.org/@types/dockerode/-/dockerode-2.5.34.tgz#9adb884f7cc6c012a6eb4b2ad794cc5d01439959" + integrity sha512-LcbLGcvcBwBAvjH9UrUI+4qotY+A5WCer5r43DR5XHv2ZIEByNXFdPLo1XxR+v/BjkGjlggW8qUiXuVEhqfkpA== + dependencies: + "@types/node" "*" + +"@types/eslint-visitor-keys@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" + integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== + +"@types/eslint@*": + version "7.2.2" + resolved "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.2.tgz#c88426b896efeb0b2732a92431ce8aa7ec0dee61" + integrity sha512-psWuwNXuKR2e6vMU5d2qH0Kqzrb2Zxwk+uBCF2LsyEph+Nex3lFIPMJXwxfGesdtJM2qtjKoCYsyh76K3x9wLg== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*": + version "0.0.45" + resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" + integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.5": + version "4.17.9" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.9.tgz#2d7b34dcfd25ec663c25c85d76608f8b249667f1" + integrity sha512-DG0BYg6yO+ePW+XoDENYz8zhNGC3jDDEpComMYn7WJc4mY1Us8Rw9ax2YhJXxpyk2SF47PQAoQ0YyVT1a0bEkA== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@*", "@types/express@4.17.7", "@types/express@^4.17.6": + version "4.17.7" + resolved "https://registry.npmjs.org/@types/express/-/express-4.17.7.tgz#42045be6475636d9801369cd4418ef65cdb0dd59" + integrity sha512-dCOT5lcmV/uC2J9k0rPafATeeyz+99xTt54ReX11/LObZgfzJqZNcW27zGhYyX+9iSEGXGt5qLPwRSvBZcLvtQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "*" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/fs-capacitor@*": + version "2.0.0" + resolved "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz#17113e25817f584f58100fb7a08eed288b81956e" + integrity sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ== + dependencies: + "@types/node" "*" + +"@types/fs-extra@^9.0.1": + version "9.0.1" + resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.1.tgz#91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918" + integrity sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg== + dependencies: + "@types/node" "*" + +"@types/git-url-parse@^9.0.0": + version "9.0.0" + resolved "https://registry.npmjs.org/@types/git-url-parse/-/git-url-parse-9.0.0.tgz#aac1315a44fa4ed5a52c3820f6c3c2fb79cbd12d" + integrity sha512-kA2RxBT/r/ZuDDKwMl+vFWn1Z0lfm1/Ik6Qb91wnSzyzCDa/fkM8gIOq6ruB7xfr37n6Mj5dyivileUVKsidlg== + +"@types/github-slugger@^1.3.0": + version "1.3.0" + 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@^7.1.1": + version "7.1.3" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/google-protobuf@^3.7.2": + version "3.7.3" + resolved "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.7.3.tgz#429512e541bbd777f2c867692e6335ee08d1f6d4" + integrity sha512-FRwj40euE2bYkG+0X5w2nEA8yAzgJRcEa7RBd0Gsdkb9/tPM2pctVVAvnOUTbcXo2VmIHPo0Ae94Gl9vRHfKzg== + +"@types/graceful-fs@^4.1.2": + version "4.1.3" + resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" + integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ== + dependencies: + "@types/node" "*" + +"@types/graphql-upload@^8.0.0": + version "8.0.3" + resolved "https://registry.npmjs.org/@types/graphql-upload/-/graphql-upload-8.0.3.tgz#b371edb5f305a2a1f7b7843a890a2a7adc55c3ec" + integrity sha512-hmLg9pCU/GmxBscg8GCr1vmSoEmbItNNxdD5YH2TJkXm//8atjwuprB+xJBK714JG1dkxbbhp5RHX+Pz1KsCMA== + dependencies: + "@types/express" "*" + "@types/fs-capacitor" "*" + "@types/koa" "*" + graphql "^14.5.3" + +"@types/helmet@^0.0.47": + version "0.0.47" + resolved "https://registry.npmjs.org/@types/helmet/-/helmet-0.0.47.tgz#ec5161541b649142205b7c558bca14801c5ce129" + integrity sha512-TcHA/djjdUtrMtq/QAayVLrsgjNNZ1Uhtz0KhfH01mrmjH44E54DA1A0HNbwW0H/NBFqV+tGMo85ACuEhMXcdg== + dependencies: + "@types/express" "*" + +"@types/history@*": + version "4.7.7" + resolved "https://registry.npmjs.org/@types/history/-/history-4.7.7.tgz#613957d900fab9ff84c8dfb24fa3eef0c2a40896" + integrity sha512-2xtoL22/3Mv6a70i4+4RB7VgbDDORoWwjcqeNysojZA0R7NK17RbY5Gof/2QiFfJgX+KkWghbwJ+d/2SB8Ndzg== + +"@types/html-minifier-terser@^5.0.0": + version "5.1.0" + 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 "4.0.0" + resolved "https://registry.npmjs.org/@types/html-minifier/-/html-minifier-4.0.0.tgz#2065cb9944f2d1b241146707c6935aa7b947d279" + integrity sha512-eFnGhrKmjWBlnSGNtunetE3UU2Tc/LUl92htFslSSTmpp9EKHQVcYQadCyYfnzUEFB5G/3wLWo/USQS/mEPKrA== + dependencies: + "@types/clean-css" "*" + "@types/relateurl" "*" + "@types/uglify-js" "*" + +"@types/html-webpack-plugin@*", "@types/html-webpack-plugin@^3.2.2": + version "3.2.3" + resolved "https://registry.npmjs.org/@types/html-webpack-plugin/-/html-webpack-plugin-3.2.3.tgz#865323e30e82560c0ca898dbf9f6f9d1c541cd7f" + integrity sha512-Y7dsVhTn75IaD4lMIY02UP1L8e0ou8KQu8DKPJAegEFKdJR28/8ejayDG8ykfR0DtYCx3dCEHIkdpN8AOB6txQ== + dependencies: + "@types/html-minifier" "*" + "@types/tapable" "*" + "@types/webpack" "*" + +"@types/http-assert@*": + version "1.5.1" + resolved "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b" + integrity sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ== + +"@types/http-cache-semantics@*": + version "4.0.0" + resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" + integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== + +"@types/http-errors@*", "@types/http-errors@^1.6.3": + version "1.8.0" + resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.0.tgz#682477dbbbd07cd032731cb3b0e7eaee3d026b69" + integrity sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA== + +"@types/http-proxy-middleware@*": + version "0.19.3" + resolved "https://registry.npmjs.org/@types/http-proxy-middleware/-/http-proxy-middleware-0.19.3.tgz#b2eb96fbc0f9ac7250b5d9c4c53aade049497d03" + integrity sha512-lnBTx6HCOUeIJMLbI/LaL5EmdKLhczJY5oeXZpX/cXE4rRqb3RmV7VcMpiEfYkmTjipv3h7IAyIINe4plEv7cA== + dependencies: + "@types/connect" "*" + "@types/http-proxy" "*" + "@types/node" "*" + +"@types/http-proxy@*", "@types/http-proxy@^1.17.4": + version "1.17.4" + resolved "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.4.tgz#e7c92e3dbe3e13aa799440ff42e6d3a17a9d045b" + integrity sha512-IrSHl2u6AWXduUaDLqYpt45tLVCtYv7o4Z0s1KghBCDgIIS9oW5K1H8mZG/A2CfeLdEa7rTd1ACOiHBc1EMT2Q== + dependencies: + "@types/node" "*" + +"@types/inquirer@^6.5.0": + version "6.5.0" + resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz#b83b0bf30b88b8be7246d40e51d32fe9d10e09be" + integrity sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw== + dependencies: + "@types/through" "*" + rxjs "^6.4.0" + +"@types/is-function@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@types/is-function/-/is-function-1.0.0.tgz#1b0b819b1636c7baf0d6785d030d12edf70c3e83" + integrity sha512-iTs9HReBu7evG77Q4EC8hZnqRt57irBDkK9nvmHroiOIVwYMQc4IvYvdRgwKfYepunIY7Oh/dBuuld+Gj9uo6w== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.2" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" + integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@*", "@types/jest@26.x", "@types/jest@^26.0.7": + version "26.0.10" + resolved "https://registry.npmjs.org/@types/jest/-/jest-26.0.10.tgz#8faf7e9756c033c39014ae76a7329efea00ea607" + integrity sha512-i2m0oyh8w/Lum7wWK/YOZJakYF8Mx08UaKA1CtbmFeDquVhAEdA7znacsVSf2hJ1OQ/OfVMGN90pw/AtzF8s/Q== + dependencies: + jest-diff "^25.2.1" + pretty-format "^25.2.1" + +"@types/jquery@^3.3.34": + version "3.5.1" + resolved "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.1.tgz#cebb057acf5071c40e439f30e840c57a30d406c3" + integrity sha512-Tyctjh56U7eX2b9udu3wG853ASYP0uagChJcQJXLUXEU6C/JiW5qt5dl8ao01VRj1i5pgXPAf8f1mq4+FDLRQg== + dependencies: + "@types/sizzle" "*" + +"@types/js-cookie@2.2.6": + version "2.2.6" + resolved "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.6.tgz#f1a1cb35aff47bc5cfb05cb0c441ca91e914c26f" + integrity sha512-+oY0FDTO2GYKEV0YPvSshGq9t7YozVkgvXLty7zogQNuCxBhT9/3INX9Q7H1aRZ4SUDRXAKlJuA4EA5nTt7SNw== + +"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5": + version "7.0.5" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" + integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +"@types/jwt-decode@2.2.1": + version "2.2.1" + resolved "https://registry.npmjs.org/@types/jwt-decode/-/jwt-decode-2.2.1.tgz#afdf5c527fcfccbd4009b5fd02d1e18241f2d2f2" + integrity sha512-aWw2YTtAdT7CskFyxEX2K21/zSDStuf/ikI3yBqmwpwJF0pS+/IX5DWv+1UFffZIbruP6cnT9/LAJV1gFwAT1A== + +"@types/keygrip@*": + version "1.0.2" + resolved "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" + integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== + +"@types/keyv@*", "@types/keyv@^3.1.1": + version "3.1.1" + resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" + integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== + dependencies: + "@types/node" "*" + +"@types/koa-compose@*": + version "3.2.5" + resolved "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" + integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== + dependencies: + "@types/koa" "*" + +"@types/koa@*": + version "2.11.4" + resolved "https://registry.npmjs.org/@types/koa/-/koa-2.11.4.tgz#8af02a069a9f8e08fa47b8da28d982e652f69cfb" + integrity sha512-Etqs0kdqbuAsNr5k6mlZQelpZKVwMu9WPRHVVTLnceZlhr0pYmblRNJbCgoCMzKWWePldydU0AYEOX4Q9fnGUQ== + dependencies: + "@types/accepts" "*" + "@types/content-disposition" "*" + "@types/cookies" "*" + "@types/http-assert" "*" + "@types/http-errors" "*" + "@types/keygrip" "*" + "@types/koa-compose" "*" + "@types/node" "*" + +"@types/lodash@^4.14.151": + version "4.14.161" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.161.tgz#a21ca0777dabc6e4f44f3d07f37b765f54188b18" + integrity sha512-EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA== + +"@types/long@^4.0.0": + version "4.0.1" + resolved "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" + integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + +"@types/mime@*": + version "2.0.3" + resolved "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a" + integrity sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q== + +"@types/mini-css-extract-plugin@^0.9.1": + version "0.9.1" + resolved "https://registry.npmjs.org/@types/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.1.tgz#d4bdde5197326fca039d418f4bdda03dc74dc451" + integrity sha512-+mN04Oszdz9tGjUP/c1ReVwJXxSniLd7lF++sv+8dkABxVNthg6uccei+4ssKxRHGoMmPxdn7uBdJWONSJGTGQ== + dependencies: + "@types/webpack" "*" + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/minimist@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" + integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= + +"@types/minipass@*": + version "2.2.0" + resolved "https://registry.npmjs.org/@types/minipass/-/minipass-2.2.0.tgz#51ad404e8eb1fa961f75ec61205796807b6f9651" + integrity sha512-wuzZksN4w4kyfoOv/dlpov4NOunwutLA/q7uc00xU02ZyUY+aoM5PWIXEKBMnm0NHd4a+N71BMjq+x7+2Af1fg== + dependencies: + "@types/node" "*" + +"@types/morgan@^1.9.0": + version "1.9.1" + resolved "https://registry.npmjs.org/@types/morgan/-/morgan-1.9.1.tgz#6457872df95647c1dbc6b3741e8146b71ece74bf" + integrity sha512-2j5IKrgJpEP6xw/uiVb2Xfga0W0sSVD9JP9t7EZLvpBENdB0OKgcnoKS8IsjNeNnZ/86robdZ61Orl0QCFGOXg== + dependencies: + "@types/node" "*" + +"@types/node-fetch@2.5.7", "@types/node-fetch@^2.5.7": + version "2.5.7" + resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz#20a2afffa882ab04d44ca786449a276f9f6bbf3c" + integrity sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + +"@types/node@*", "@types/node@>= 8": + version "14.6.2" + resolved "https://registry.npmjs.org/@types/node/-/node-14.6.2.tgz#264b44c5a28dfa80198fc2f7b6d3c8a054b9491f" + integrity sha512-onlIwbaeqvZyniGPfdw/TEhKIh79pz66L1q06WUQqJLnAb6wbjvOtepLYTGHTqzdXgBYIE3ZdmqHDGsRsbBz7A== + +"@types/node@^10.1.0": + version "10.17.28" + resolved "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz#0e36d718a29355ee51cec83b42d921299200f6d9" + integrity sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ== + +"@types/node@^12.0.0": + version "12.12.54" + resolved "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz#a4b58d8df3a4677b6c08bfbc94b7ad7a7a5f82d1" + integrity sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w== + +"@types/node@^13.7.2": + version "13.13.15" + resolved "https://registry.npmjs.org/@types/node/-/node-13.13.15.tgz#fe1cc3aa465a3ea6858b793fd380b66c39919766" + integrity sha512-kwbcs0jySLxzLsa2nWUAGOd/s21WU1jebrEdtzhsj1D4Yps1EOuyI1Qcu+FD56dL7NRNIJtDDjcqIG22NwkgLw== + +"@types/nodegit@0.26.7": + version "0.26.7" + resolved "https://registry.npmjs.org/@types/nodegit/-/nodegit-0.26.7.tgz#3fc8f5108dcabddd6238509748c0e812ba02b9b7" + integrity sha512-qVwQupq4To/wkRtUnaiwbNhuRiVJShOG9CYIWiGdKQRkvWijtHmEnrC1KJHOVrzK04sMdHRClyecrfmN17VMFQ== + dependencies: + "@types/node" "*" + +"@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" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + +"@types/npmlog@^4.1.2": + version "4.1.2" + resolved "https://registry.npmjs.org/@types/npmlog/-/npmlog-4.1.2.tgz#d070fe6a6b78755d1092a3dc492d34c3d8f871c4" + integrity sha512-4QQmOF5KlwfxJ5IGXFIudkeLCdMABz03RcUXu+LCb24zmln8QW6aDjuGl4d4XPVLf2j+FnjelHTP7dvceAFbhA== + +"@types/oauth@*": + version "0.9.1" + resolved "https://registry.npmjs.org/@types/oauth/-/oauth-0.9.1.tgz#e17221e7f7936b0459ae7d006255dff61adca305" + integrity sha512-a1iY62/a3yhZ7qH7cNUsxoI3U/0Fe9+RnuFrpTKr+0WVOzbKlSLojShCKe20aOD1Sppv+i8Zlq0pLDuTJnwS4A== + dependencies: + "@types/node" "*" + +"@types/ora@^3.2.0": + version "3.2.0" + resolved "https://registry.npmjs.org/@types/ora/-/ora-3.2.0.tgz#b2f65d1283a8f36d8b0f9ee767e0732a2f429362" + integrity sha512-jll99xUKpiFbIFZSQcxm4numfsLaOWBzWNaRk3PvTSE7BPqTzzOCFmS0mQ7m8qkTfmYhuYbehTGsxkvRLPC++w== + dependencies: + ora "*" + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@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" + integrity sha512-dtGtA0Uyzk6ne3SrgQi/I1ClClLE3i7JmSiMaJgkGH8v1nbE9JdBpG7QWJ1XPlLdcf7EvoPdHmkWN2+Kln9y8g== + dependencies: + "@types/express" "*" + "@types/passport" "*" + "@types/passport-oauth2" "*" + +"@types/passport-google-oauth20@^2.0.3": + version "2.0.3" + resolved "https://registry.npmjs.org/@types/passport-google-oauth20/-/passport-google-oauth20-2.0.3.tgz#f554ff6d39f395acff3f1d762e54462194dac8da" + integrity sha512-6EUEGzEg4acwowvgR/yVZIj8S2Kkwc6JmlY2/wnM1wJHNz20o7s1TIGrxnah8ymLgJasYDpy95P3TMMqlmetPw== + dependencies: + "@types/express" "*" + "@types/passport" "*" + "@types/passport-oauth2" "*" + +"@types/passport-microsoft@^0.0.0": + version "0.0.0" + resolved "https://registry.npmjs.org/@types/passport-microsoft/-/passport-microsoft-0.0.0.tgz#ba71bccdd793711239d6b02e8d5953c21abc1c8d" + integrity sha512-jfkltRosn+P/+RoFMTl+mCyBTgPTFhjDEF832j7fmlYpuf+5yuzPLz7Rm5XMKN/Gqpro6myCyGPTuCc4yBQ2jQ== + dependencies: + "@types/passport-oauth2" "*" + +"@types/passport-oauth2@*": + version "1.4.9" + resolved "https://registry.npmjs.org/@types/passport-oauth2/-/passport-oauth2-1.4.9.tgz#134007c4b505a82548c9cb19094c5baeb2205c92" + integrity sha512-QP0q+NVQOaIu2r0e10QWkiUA0Ya5mOBHRJN0UrI+LolMLOP1/VN4EVIpJ3xVwFo+xqNFRoFvFwJhBvKnk7kpUA== + dependencies: + "@types/express" "*" + "@types/oauth" "*" + "@types/passport" "*" + +"@types/passport-saml@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@types/passport-saml/-/passport-saml-1.1.2.tgz#f32ac2321eb25ec7bdbb1f3a5313b596bb0887e6" + integrity sha512-vpSdcb7V/bFxrvZJwSqnBr0qEqIhtOnwRBxw+Dvq4UkVbEgcCOkxF4tERCCFfA+FP3lp63VCCAifZLQrF5JkXA== + dependencies: + "@types/express" "*" + "@types/passport" "*" + +"@types/passport@*", "@types/passport@^1.0.3": + version "1.0.4" + resolved "https://registry.npmjs.org/@types/passport/-/passport-1.0.4.tgz#1b35c4e197560d3974fa5f71711b6e9cce0711f0" + integrity sha512-h5OfAbfBBYSzjeU0GTuuqYEk9McTgWeGQql9g3gUw2/NNCfD7VgExVRYJVVeU13Twn202Mvk9BT0bUrl30sEgA== + dependencies: + "@types/express" "*" + +"@types/prettier@^2.0.0": + version "2.1.0" + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.0.tgz#5f96562c1075ee715a5b138f0b7f591c1f40f6b8" + integrity sha512-hiYA88aHiEIgDmeKlsyVsuQdcFn3Z2VuFd/Xm/HCnGnPD8UFU5BM128uzzRVVGEzKDKYUrRsRH9S2o+NUy/3IA== + +"@types/prop-types@*": + version "15.7.3" + resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" + integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== + +"@types/q@^1.5.1": + version "1.5.4" + resolved "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" + integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== + +"@types/qs@*": + version "6.9.4" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.4.tgz#a59e851c1ba16c0513ea123830dd639a0a15cb6a" + integrity sha512-+wYo+L6ZF6BMoEjtf8zB2esQsqdV6WsjRK/GP9WOgLPrq87PbNWgIxS76dS5uvl/QXtHGakZmwTznIfcPXcKlQ== + +"@types/range-parser@*": + version "1.2.3" + resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" + integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== + +"@types/reach__router@^1.2.3", "@types/reach__router@^1.3.5": + version "1.3.5" + resolved "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.5.tgz#14e1e981cccd3a5e50dc9e969a72de0b9d472f6d" + integrity sha512-h0NbqXN/tJuBY/xggZSej1SKQEstbHO7J/omt1tYoFGmj3YXOodZKbbqD4mNDh7zvEGYd7YFrac1LTtAr3xsYQ== + dependencies: + "@types/history" "*" + "@types/react" "*" + +"@types/react-dev-utils@^9.0.4": + version "9.0.4" + resolved "https://registry.npmjs.org/@types/react-dev-utils/-/react-dev-utils-9.0.4.tgz#3e4bee79b7536777cef219427ab1d38adc24f3f2" + integrity sha512-8cv9rAeSP1EmyRQAbZ/i6uYtai1VoKHGSBwDyCLM82wCkqoh3WPjJgI1pfi2kiLc0C5hNU7DLo7/c4hylfHLWg== + dependencies: + "@types/eslint" "*" + "@types/express" "*" + "@types/html-webpack-plugin" "*" + "@types/webpack" "*" + "@types/webpack-dev-server" "*" + +"@types/react-dom@^16.9.8": + version "16.9.8" + resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.8.tgz#fe4c1e11dfc67155733dfa6aa65108b4971cb423" + integrity sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA== + dependencies: + "@types/react" "*" + +"@types/react-helmet@^6.1.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@types/react-helmet/-/react-helmet-6.1.0.tgz#af586ed685f4905e2adc7462d1d65ace52beee7a" + integrity sha512-PYRoU1XJFOzQ3BHvWL1T8iDNbRjdMDJMT5hFmZKGbsq09kbSqJy61uwEpTrbTNWDopVphUT34zUSVLK9pjsgYQ== + dependencies: + "@types/react" "*" + +"@types/react-lazylog@^4.5.0": + version "4.5.0" + resolved "https://registry.npmjs.org/@types/react-lazylog/-/react-lazylog-4.5.0.tgz#1677ac520f29ada2e95b8cd5f8ec54b897227278" + integrity sha512-yg0IhKtDRGqUUtXJwi9Y/sSmgX/gmVP0vu0cr5uAECmJnRQbAgsGoVUntQGtwH0Z7Y2iiTh+QW5LkOFsmtIisg== + dependencies: + "@types/react" "*" + immutable ">=3.8.2" + +"@types/react-sparklines@^1.7.0": + version "1.7.0" + resolved "https://registry.npmjs.org/@types/react-sparklines/-/react-sparklines-1.7.0.tgz#f956d0f7b0e746ad445ce1cd250fe81f8a384684" + integrity sha512-Vd+cME7+Yy3kFNhnid9EBIKiyCQ/at8nqDczIs0UYfIB8AtaRJPqekigv02biOsIbQCvxyvIAIjiTKOC+hHNbA== + 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-test-renderer@*": + version "16.9.3" + resolved "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.9.3.tgz#96bab1860904366f4e848b739ba0e2f67bcae87e" + integrity sha512-wJ7IlN5NI82XMLOyHSa+cNN4Z0I+8/YaLl04uDgcZ+W+ExWCmCiVTLT/7fRNqzy4OhStZcUwIqLNF7q+AdW43Q== + dependencies: + "@types/react" "*" + +"@types/react-textarea-autosize@^4.3.3": + version "4.3.5" + resolved "https://registry.npmjs.org/@types/react-textarea-autosize/-/react-textarea-autosize-4.3.5.tgz#6c4d2753fa1864c98c0b2b517f67bb1f6e4c46de" + integrity sha512-PiDL83kPMTolyZAWW3lyzO6ktooTb9tFTntVy7CA83/qFLWKLJ5bLeRboy6J6j3b1e8h2Eec6gBTEOOJRjV14A== + dependencies: + "@types/react" "*" + +"@types/react-transition-group@^4.2.0": + version "4.4.0" + resolved "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.0.tgz#882839db465df1320e4753e6e9f70ca7e9b4d46d" + integrity sha512-/QfLHGpu+2fQOqQaXh8MG9q03bFENooTb/it4jr5kKaZlDQfWvjqWZg48AwzPVMBHlRuTRAY7hRHCEOXz5kV6w== + dependencies: + "@types/react" "*" + +"@types/react-wait@^0.3.0": + version "0.3.1" + resolved "https://registry.npmjs.org/@types/react-wait/-/react-wait-0.3.1.tgz#193cbd8fe86baa53b6f65dfa73f03d562f462a27" + integrity sha512-BS9AEjWZItDgpx6LlICcuf53M27zBFCsHx/llCbrmrt/WI7ecG2LGquCss3n8O8bwEDiTX4yYLjy8yLeIfgYTg== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^16.9": + version "16.9.48" + resolved "https://registry.npmjs.org/@types/react/-/react-16.9.48.tgz#d3387329f070d1b1bc0ff4a54a54ceefd5a8485c" + integrity sha512-4ykBVswgYitPGMXFRxJCHkxJDU2rjfU3/zw67f8+dB7sNdVJXsrwqoYxz/stkAucymnEEbRPFmX7Ce5Mc/kJCw== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@types/react@16.4.6": + version "16.4.6" + resolved "https://registry.npmjs.org/@types/react/-/react-16.4.6.tgz#5024957c6bcef4f02823accf5974faba2e54fada" + integrity sha512-9LDZdhsuKSc+DjY65SjBkA958oBWcTWSVWAd2cD9XqKBjhGw1KzAkRhWRw2eIsXvaIE/TOTjjKMFVC+JA1iU4g== + dependencies: + csstype "^2.2.0" + +"@types/recursive-readdir@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@types/recursive-readdir/-/recursive-readdir-2.2.0.tgz#b39cd5474fd58ea727fe434d5c68b7a20ba9121c" + integrity sha512-HGk753KRu2N4mWduovY4BLjYq4jTOL29gV2OfGdGxHcPSWGFkC5RRIdk+VTs5XmYd7MVAD+JwKrcb5+5Y7FOCg== + dependencies: + "@types/node" "*" + +"@types/relateurl@*": + version "0.2.28" + resolved "https://registry.npmjs.org/@types/relateurl/-/relateurl-0.2.28.tgz#6bda7db8653fa62643f5ee69e9f69c11a392e3a6" + integrity sha1-a9p9uGU/piZD9e5p6facEaOS46Y= + +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" + +"@types/responselike@*", "@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + +"@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" + integrity sha512-BiztED+KYJPBI3ihLSOuuZSzy836WAOpC9UrMtDqk3+VeByR8A5pJJ9pCVnq/dfB4wyCeiFL+FlyJnqZuP3pxg== + dependencies: + "@types/node" "*" + rollup "^0.63.4" + +"@types/rollup-plugin-postcss@^2.0.0": + version "2.0.1" + resolved "https://registry.npmjs.org/@types/rollup-plugin-postcss/-/rollup-plugin-postcss-2.0.1.tgz#f2c73a458b035db8af361c4a7d921f74c6d4dffa" + integrity sha512-q+o1V6536wwIIlwJzEjm09emg/1QIceJXo01h6fTA1JJY4p/QQTOc10mizp4NhmwRMB8LVOThCgkwvQgzvJFjQ== + dependencies: + "@types/cssnano" "*" + "@types/node" "*" + rollup "^0.63.4" + +"@types/serve-handler@^6.1.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@types/serve-handler/-/serve-handler-6.1.0.tgz#6952aaf864e542297ce8a2480b3e0d9ea59de7f6" + integrity sha512-F9BpWotLZrQvq1CdE3oCnVmQUb6dWq20HSB/qjF4mG7WkZjPQ6fye8veznMKoBPhFJve4yz9C1NOITdTcoLngQ== + dependencies: + "@types/node" "*" + +"@types/serve-static@*": + version "1.13.5" + resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.5.tgz#3d25d941a18415d3ab092def846e135a08bbcf53" + integrity sha512-6M64P58N+OXjU432WoLLBQxbA0LRGBCRm7aAGQJ+SMC1IMl0dgRVi9EFfoDcS2a7Xogygk/eGN94CfwU9UF7UQ== + dependencies: + "@types/express-serve-static-core" "*" + "@types/mime" "*" + +"@types/sinonjs__fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz#681df970358c82836b42f989188d133e218c458e" + integrity sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA== + +"@types/sizzle@*", "@types/sizzle@^2.3.2": + version "2.3.2" + resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" + integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== + +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/stack-utils@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" + integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== + +"@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" + integrity sha512-BRR23Q9CJduH7AM6mk4JRttd8XyFkb4qIPZu4mdLF+VoP+wcjIxIWIKiBbN78NBbEuynrAyMPtzOHnIp2B/JPQ== + dependencies: + "@types/node" "*" + +"@types/styled-jsx@^2.2.8": + version "2.2.8" + resolved "https://registry.npmjs.org/@types/styled-jsx/-/styled-jsx-2.2.8.tgz#b50d13d8a3c34036282d65194554cf186bab7234" + integrity sha512-Yjye9VwMdYeXfS71ihueWRSxrruuXTwKCbzue4+5b2rjnQ//AtyM7myZ1BEhNhBQ/nL/RE7bdToUoLln2miKvg== + dependencies: + "@types/react" "*" + +"@types/superagent@*": + version "4.1.10" + resolved "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.10.tgz#5e2cc721edf58f64fe9b819f326ee74803adee86" + integrity sha512-xAgkb2CMWUMCyVc/3+7iQfOEBE75NvuZeezvmixbUw3nmENf2tCnQkW5yQLTYqvXUQ+R6EXxdqKKbal2zM5V/g== + dependencies: + "@types/cookiejar" "*" + "@types/node" "*" + +"@types/supertest@^2.0.8": + version "2.0.10" + resolved "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.10.tgz#630d79b4d82c73e043e43ff777a9ca98d457cab7" + integrity sha512-Xt8TbEyZTnD5Xulw95GLMOkmjGICrOQyJ2jqgkSjAUR3mm7pAIzSR0NFBaMcwlzVvlpCjNwbATcWWwjNiZiFrQ== + dependencies: + "@types/superagent" "*" + +"@types/swagger-ui-react@^3.23.3": + version "3.23.3" + resolved "https://registry.npmjs.org/@types/swagger-ui-react/-/swagger-ui-react-3.23.3.tgz#56bcf3872d8655500e6d51d29ba3916397806fa3" + integrity sha512-JKWYWAliabBxMxURagpRR6RHLEZxxp2W2tf1IN7ftqye6dIxC2e4mh4eZzARPG8+2OpzKlodHIOIwueFTYWaag== + dependencies: + "@types/react" "*" + +"@types/tapable@*", "@types/tapable@^1.0.5": + version "1.0.6" + resolved "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" + integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== + +"@types/tar@^4.0.3": + version "4.0.3" + resolved "https://registry.npmjs.org/@types/tar/-/tar-4.0.3.tgz#e2cce0b8ff4f285293243f5971bd7199176ac489" + integrity sha512-Z7AVMMlkI8NTWF0qGhC4QIX0zkV/+y0J8x7b/RsHrN0310+YNjoJd8UrApCiGBCWtKjxS9QhNqLi2UJNToh5hA== + dependencies: + "@types/minipass" "*" + "@types/node" "*" + +"@types/tern@*": + version "0.23.3" + resolved "https://registry.npmjs.org/@types/tern/-/tern-0.23.3.tgz#4b54538f04a88c9ff79de1f6f94f575a7f339460" + integrity sha512-imDtS4TAoTcXk0g7u4kkWqedB3E4qpjXzCpD2LU5M5NAXHzCDsypyvXSaG7mM8DKYkCRa7tFp4tS/lp/Wo7Q3w== + dependencies: + "@types/estree" "*" + +"@types/testing-library__cypress@^5.0.6": + version "5.0.6" + resolved "https://registry.npmjs.org/@types/testing-library__cypress/-/testing-library__cypress-5.0.6.tgz#9015f575c1a98f05996a4fe769071134ee488c26" + integrity sha512-TUp5wfanU7zUZigKqIeQDChnHQ1MEzbYqrI5iCQMFiesWNOASWm/el1lFBh1JPqmd6GkdDdDiHYJnkqd9le2ww== + dependencies: + "@testing-library/dom" "^7.11.0" + cypress "*" + +"@types/testing-library__jest-dom@^5.9.1": + version "5.9.2" + resolved "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.2.tgz#59e4771a1cf87d51e89a5cc8195cd3b647cba322" + integrity sha512-K7nUSpH/5i8i0NagTJ+uFUDRueDlnMNhJtMjMwTGPPSqyImbWC/hgKPDCKt6Phu2iMJg2kWqlax+Ucj2DKMwpA== + dependencies: + "@types/jest" "*" + +"@types/testing-library__react-hooks@^3.3.0": + version "3.4.0" + resolved "https://registry.npmjs.org/@types/testing-library__react-hooks/-/testing-library__react-hooks-3.4.0.tgz#be148b7fa7d19cd3349c4ef9d9534486bc582fcc" + integrity sha512-QYLZipqt1hpwYsBU63Ssa557v5wWbncqL36No59LI7W3nCMYKrLWTnYGn2griZ6v/3n5nKXNYkTeYpqPHY7Ukg== + dependencies: + "@types/react-test-renderer" "*" + +"@types/through@*": + version "0.0.30" + resolved "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz#e0e42ce77e897bd6aead6f6ea62aeb135b8a3895" + integrity sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg== + dependencies: + "@types/node" "*" + +"@types/uglify-js@*": + version "3.9.3" + resolved "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.3.tgz#d94ed608e295bc5424c9600e6b8565407b6b4b6b" + integrity sha512-KswB5C7Kwduwjj04Ykz+AjvPcfgv/37Za24O2EDzYNbwyzOo8+ydtvzUfZ5UMguiVu29Gx44l1A6VsPPcmYu9w== + dependencies: + source-map "^0.6.1" + +"@types/uuid@^8.0.0": + version "8.3.0" + 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.10.0": + version "3.11.0" + resolved "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#bcc3b85e7dc6ac2db25330610513f2228c2fcfb2" + integrity sha512-3+86AgSzl18n5P1iUP9/lz3G3GMztCp+wxdDvVuNhx1sr1jE79GpYfKHL8k+Vht3N74K2n98CuAEw4YPJCYtDA== + dependencies: + "@types/connect-history-api-fallback" "*" + "@types/express" "*" + "@types/http-proxy-middleware" "*" + "@types/serve-static" "*" + "@types/webpack" "*" + +"@types/webpack-env@^1.15.0", "@types/webpack-env@^1.15.2": + version "1.15.2" + resolved "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.15.2.tgz#927997342bb9f4a5185a86e6579a0a18afc33b0a" + integrity sha512-67ZgZpAlhIICIdfQrB5fnDvaKFcDxpKibxznfYRVAT4mQE41Dido/3Ty+E3xGBmTogc5+0Qb8tWhna+5B8z1iQ== + +"@types/webpack-node-externals@^2.5.0": + version "2.5.0" + resolved "https://registry.npmjs.org/@types/webpack-node-externals/-/webpack-node-externals-2.5.0.tgz#bcd161af84a4960416e5850e06931b35321c6654" + integrity sha512-KaWfhUQlpWknM/CMBKhV7i0vxX/N2xEy3WeaE500s4ZNxC4nLnKB+0F3gD3Fg+5octPq0nn8ZlfFR/P3dSkXpw== + dependencies: + "@types/webpack" "*" + +"@types/webpack-sources@*": + version "1.4.2" + resolved "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-1.4.2.tgz#5d3d4dea04008a779a90135ff96fb5c0c9e6292c" + integrity sha512-77T++JyKow4BQB/m9O96n9d/UUHWLQHlcqXb9Vsf4F1+wKNrrlWNFPDLKNT92RJnCSL6CieTc+NDXtCVZswdTw== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.7.3" + +"@types/webpack@*", "@types/webpack@^4.41.7", "@types/webpack@^4.41.8": + version "4.41.21" + resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.21.tgz#cc685b332c33f153bb2f5fc1fa3ac8adeb592dee" + integrity sha512-2j9WVnNrr/8PLAB5csW44xzQSJwS26aOnICsP3pSGCEdsu6KYtfQ6QJsVUKHWRnm1bL7HziJsfh5fHqth87yKA== + dependencies: + "@types/anymatch" "*" + "@types/node" "*" + "@types/tapable" "*" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + source-map "^0.6.0" + +"@types/websocket@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.1.tgz#039272c196c2c0e4868a0d8a1a27bbb86e9e9138" + integrity sha512-f5WLMpezwVxCLm1xQe/kdPpQIOmL0TXYx2O15VYfYzc7hTIdxiOoOvez+McSIw3b7z/1zGovew9YSL7+h4h7/Q== + dependencies: + "@types/node" "*" + +"@types/whatwg-streams@^0.0.7": + version "0.0.7" + resolved "https://registry.npmjs.org/@types/whatwg-streams/-/whatwg-streams-0.0.7.tgz#28bfe73dc850562296367249c4b32a50db81e9d3" + integrity sha512-6sDiSEP6DWcY2ZolsJ2s39ZmsoGQ7KVwBDI3sESQsEm9P2dHTcqnDIHRZFRNtLCzWp7hCFGqYbw5GyfpQnJ01A== + +"@types/ws@^7.0.0": + version "7.2.6" + resolved "https://registry.npmjs.org/@types/ws/-/ws-7.2.6.tgz#516cbfb818310f87b43940460e065eb912a4178d" + integrity sha512-Q07IrQUSNpr+cXU4E4LtkSIBPie5GLZyyMC1QtQYRLWz701+XcoVygGUZgvLqElq1nU4ICldMYPnexlBsg3dqQ== + dependencies: + "@types/node" "*" + +"@types/yaml@^1.9.7": + version "1.9.7" + resolved "https://registry.npmjs.org/@types/yaml/-/yaml-1.9.7.tgz#2331f36e0aac91311a63d33eb026c21687729679" + integrity sha512-8WMXRDD1D+wCohjfslHDgICd2JtMATZU8CkhH8LVJqcJs6dyYj5TGptzP8wApbmEullGBSsCEzzap73DQ1HJaA== + dependencies: + yaml "*" + +"@types/yargs-parser@*": + version "15.0.0" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" + integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== + +"@types/yargs@^15.0.0": + version "15.0.5" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz#947e9a6561483bdee9adffc983e91a6902af8b79" + integrity sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w== + dependencies: + "@types/yargs-parser" "*" + +"@types/yup@^0.28.2": + version "0.28.3" + resolved "https://registry.npmjs.org/@types/yup/-/yup-0.28.3.tgz#387c35f9a6a36b8d3561f6601eb4e72518b92899" + integrity sha512-0Sir2LxOmupF8HBUvpJoZghLmOqKfZsBk1GYlMwSIccLDDUoN04LHvo0KzDp9qxt1IKf9Fudpj35SrJ8VqetkQ== + +"@types/zen-observable@^0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d" + integrity sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg== + +"@typescript-eslint/eslint-plugin@^2.14.0": + version "2.34.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz#6f8ce8a46c7dea4a6f1d171d2bb8fbae6dac2be9" + integrity sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ== + dependencies: + "@typescript-eslint/experimental-utils" "2.34.0" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@2.34.0", "@typescript-eslint/experimental-utils@^2.5.0": + version "2.34.0" + resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz#d3524b644cdb40eebceca67f8cf3e4cc9c8f980f" + integrity sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/typescript-estree" "2.34.0" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^2.14.0": + version "2.34.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz#50252630ca319685420e9a39ca05fe185a256bc8" + integrity sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA== + dependencies: + "@types/eslint-visitor-keys" "^1.0.0" + "@typescript-eslint/experimental-utils" "2.34.0" + "@typescript-eslint/typescript-estree" "2.34.0" + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/typescript-estree@2.34.0": + version "2.34.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz#14aeb6353b39ef0732cc7f1b8285294937cf37d5" + integrity sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg== + dependencies: + debug "^4.1.1" + eslint-visitor-keys "^1.1.0" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@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.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.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@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.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@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.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.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" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.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" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.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" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.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" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@wry/equality@^0.1.2": + version "0.1.11" + resolved "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" + integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== + dependencies: + tslib "^1.9.3" + +"@xobotyi/scrollbar-width@1.9.5": + version "1.9.5" + resolved "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d" + integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +"@zkochan/cmd-shim@^3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e" + integrity sha512-o8l0+x7C7sMZU3v9GuJIAU10qQLtwR1dtRQIOmlNMtyaqhmpXOzx1HWiYoWfmmf9HHZoAkXpc9TM9PQYF9d4Jg== + dependencies: + is-windows "^1.0.0" + mkdirp-promise "^5.0.1" + mz "^2.5.0" + +JSONStream@^1.0.4, JSONStream@^1.3.4: + version "1.3.5" + resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abab@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" + integrity sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4= + +abab@^2.0.0, abab@^2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz#6dfa57b417ca06d21b2478f0e638302f99c2405c" + integrity sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ== + +abbrev@1: + version "1.1.1" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@^1.3.5, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^1.0.4: + version "1.0.9" + resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz#55bb5e98691507b74579d0513413217c380c54cf" + integrity sha1-VbtemGkVB7dFedBRNBMhfDgMVM8= + dependencies: + acorn "^2.1.0" + +acorn-globals@^4.1.0: + version "4.3.4" + resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-jsx@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^2.1.0, acorn@^2.4.0: + version "2.7.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" + integrity sha1-q259nYhqrKiwhbwzEreaGYQz8Oc= + +acorn@^5.5.3: + version "5.7.4" + resolved "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== + +acorn@^6.0.1, acorn@^6.4.1: + version "6.4.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== + +acorn@^7.1.1, acorn@^7.4.0: + version "7.4.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" + integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== + +address@1.1.2, address@^1.0.1: + version "1.1.2" + resolved "https://registry.npmjs.org/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + +agent-base@4, agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== + dependencies: + es6-promisify "^5.0.0" + +agent-base@~4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== + dependencies: + es6-promisify "^5.0.0" + +agentkeepalive@^3.4.1: + version "3.5.2" + resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" + integrity sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ== + dependencies: + humanize-ms "^1.2.1" + +aggregate-error@3.1.0, aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +airbnb-js-shims@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/airbnb-js-shims/-/airbnb-js-shims-2.2.1.tgz#db481102d682b98ed1daa4c5baa697a05ce5c040" + integrity sha512-wJNXPH66U2xjgo1Zwyjf9EydvJ2Si94+vSdk6EERcBfB2VZkeltpqIats0cqIZMLCXP3zcyaUKGYQeIBT6XjsQ== + dependencies: + array-includes "^3.0.3" + array.prototype.flat "^1.2.1" + array.prototype.flatmap "^1.2.1" + es5-shim "^4.5.13" + es6-shim "^0.35.5" + function.prototype.name "^1.1.0" + globalthis "^1.0.0" + object.entries "^1.1.0" + object.fromentries "^2.0.0 || ^1.0.0" + object.getownpropertydescriptors "^2.0.3" + object.values "^1.1.0" + promise.allsettled "^1.0.0" + promise.prototype.finally "^3.1.0" + string.prototype.matchall "^4.0.0 || ^3.0.1" + string.prototype.padend "^3.0.0" + string.prototype.padstart "^3.0.0" + symbol.prototype.description "^1.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: + version "3.5.2" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@6.5.2: + version "6.5.2" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz#678495f9b82f7cca6be248dd92f59bff5e1f4360" + integrity sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.1" + +ajv@^5.0.0: + version "5.5.2" + resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.1, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.7.0: + version "6.12.4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" + integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +ansi-align@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + dependencies: + string-width "^3.0.0" + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: + version "4.3.1" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-red@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" + integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= + dependencies: + ansi-wrap "0.1.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +ansi-to-html@^0.6.11: + version "0.6.14" + resolved "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.14.tgz#65fe6d08bba5dd9db33f44a20aec331e0010dad8" + integrity sha512-7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA== + dependencies: + entities "^1.1.2" + +ansi-wrap@0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= + +any-observable@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" + integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.3, anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +apollo-cache-control@^0.11.1: + version "0.11.1" + resolved "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.1.tgz#3bce0924ae7322a8b9f7ca1e2fb036d1fc9f1df5" + integrity sha512-6iHa8TkcKt4rx5SKRzDNjUIpCQX+7/FlZwD7vRh9JDnM4VH8SWhpj8fUR3CiEY8Kuc4ChXnOY8bCcMju5KPnIQ== + dependencies: + apollo-server-env "^2.4.5" + apollo-server-plugin-base "^0.9.1" + +apollo-datasource@^0.7.2: + version "0.7.2" + resolved "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.2.tgz#1662ee93453a9b89af6f73ce561bde46b41ebf31" + integrity sha512-ibnW+s4BMp4K2AgzLEtvzkjg7dJgCaw9M5b5N0YKNmeRZRnl/I/qBTQae648FsRKgMwTbRQIvBhQ0URUFAqFOw== + dependencies: + apollo-server-caching "^0.5.2" + apollo-server-env "^2.4.5" + +apollo-engine-reporting-protobuf@^0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.5.2.tgz#b01812508a1c583328a8dc603769bc63b8895e7e" + integrity sha512-4wm9FR3B7UvJxcK/69rOiS5CAJPEYKufeRWb257ZLfX7NGFTMqvbc1hu4q8Ch7swB26rTpkzfsftLED9DqH9qg== + dependencies: + "@apollo/protobufjs" "^1.0.3" + +apollo-engine-reporting@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-2.3.0.tgz#3bb59f81aaf6b967ed098896a4a60a053b4eed5a" + integrity sha512-SbcPLFuUZcRqDEZ6mSs8uHM9Ftr8yyt2IEu0JA8c3LNBmYXSLM7MHqFe80SVcosYSTBgtMz8mLJO8orhYoSYZw== + dependencies: + apollo-engine-reporting-protobuf "^0.5.2" + apollo-graphql "^0.5.0" + apollo-server-caching "^0.5.2" + apollo-server-env "^2.4.5" + apollo-server-errors "^2.4.2" + apollo-server-plugin-base "^0.9.1" + apollo-server-types "^0.5.1" + async-retry "^1.2.1" + uuid "^8.0.0" + +apollo-env@^0.6.5: + version "0.6.5" + resolved "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.5.tgz#5a36e699d39e2356381f7203493187260fded9f3" + integrity sha512-jeBUVsGymeTHYWp3me0R2CZRZrFeuSZeICZHCeRflHTfnQtlmbSXdy5E0pOyRM9CU4JfQkKDC98S1YglQj7Bzg== + dependencies: + "@types/node-fetch" "2.5.7" + core-js "^3.0.1" + node-fetch "^2.2.0" + sha.js "^2.4.11" + +apollo-graphql@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.5.0.tgz#7e9152093211b58352aa6504d8d39ec7241d6872" + integrity sha512-YSdF/BKPbsnQpxWpmCE53pBJX44aaoif31Y22I/qKpB6ZSGzYijV5YBoCL5Q15H2oA/v/02Oazh9lbp4ek3eig== + dependencies: + apollo-env "^0.6.5" + lodash.sortby "^4.7.0" + +apollo-link@^1.2.14: + version "1.2.14" + resolved "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9" + integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== + dependencies: + apollo-utilities "^1.3.0" + ts-invariant "^0.4.0" + tslib "^1.9.3" + zen-observable-ts "^0.8.21" + +apollo-server-caching@^0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.2.tgz#bef5d5e0d48473a454927a66b7bb947a0b6eb13e" + integrity sha512-HUcP3TlgRsuGgeTOn8QMbkdx0hLPXyEJehZIPrcof0ATz7j7aTPA4at7gaiFHCo8gk07DaWYGB3PFgjboXRcWQ== + dependencies: + lru-cache "^5.0.0" + +apollo-server-core@^2.17.0: + version "2.17.0" + resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.17.0.tgz#6af697ffe4968e74add01cd1efd2a8fb33299cf3" + integrity sha512-rjAkBbKSrGLDfg/g5bohnPlQahmkAxgEBuMDVsoF3aa+RaEPXPUMYrLbOxntl0LWeLbPiMa/IyFF43dvlGqV7w== + dependencies: + "@apollographql/apollo-tools" "^0.4.3" + "@apollographql/graphql-playground-html" "1.6.26" + "@types/graphql-upload" "^8.0.0" + "@types/ws" "^7.0.0" + apollo-cache-control "^0.11.1" + apollo-datasource "^0.7.2" + apollo-engine-reporting "^2.3.0" + apollo-server-caching "^0.5.2" + apollo-server-env "^2.4.5" + apollo-server-errors "^2.4.2" + apollo-server-plugin-base "^0.9.1" + apollo-server-types "^0.5.1" + apollo-tracing "^0.11.2" + fast-json-stable-stringify "^2.0.0" + graphql-extensions "^0.12.4" + graphql-tag "^2.9.2" + graphql-tools "^4.0.0" + graphql-upload "^8.0.2" + loglevel "^1.6.7" + sha.js "^2.4.11" + subscriptions-transport-ws "^0.9.11" + ws "^6.0.0" + +apollo-server-env@^2.4.5: + version "2.4.5" + resolved "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.5.tgz#73730b4f0439094a2272a9d0caa4079d4b661d5f" + integrity sha512-nfNhmGPzbq3xCEWT8eRpoHXIPNcNy3QcEoBlzVMjeglrBGryLG2LXwBSPnVmTRRrzUYugX0ULBtgE3rBFNoUgA== + dependencies: + node-fetch "^2.1.2" + util.promisify "^1.0.0" + +apollo-server-errors@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.4.2.tgz#1128738a1d14da989f58420896d70524784eabe5" + integrity sha512-FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ== + +apollo-server-express@^2.16.0, apollo-server-express@^2.17.0: + version "2.17.0" + resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.17.0.tgz#2014559b75a0bcf7ff8cf0f2d077da6653abbc18" + integrity sha512-PonpWOuM1DH3Cz0bu56Tusr3GXOnectC6AD/gy2GXK0v84E7tKTuxEY3SgsgxhvfvvhfwJbXTyIogL/wezqnCw== + dependencies: + "@apollographql/graphql-playground-html" "1.6.26" + "@types/accepts" "^1.3.5" + "@types/body-parser" "1.19.0" + "@types/cors" "^2.8.4" + "@types/express" "4.17.7" + accepts "^1.3.5" + apollo-server-core "^2.17.0" + apollo-server-types "^0.5.1" + body-parser "^1.18.3" + cors "^2.8.4" + express "^4.17.1" + graphql-subscriptions "^1.0.0" + graphql-tools "^4.0.0" + parseurl "^1.3.2" + subscriptions-transport-ws "^0.9.16" + type-is "^1.6.16" + +apollo-server-plugin-base@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.9.1.tgz#a62ae9ab4e89790fd4cc5d123bb616da34e8e5fb" + integrity sha512-kvrX4Z3FdpjrZdHkyl5iY2A1Wvp4b6KQp00DeZqss7GyyKNUBKr80/7RQgBLEw7EWM7WB19j459xM/TjvW0FKQ== + dependencies: + apollo-server-types "^0.5.1" + +apollo-server-types@^0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.5.1.tgz#091c09652894d6532db9ba873574443adabf85b9" + integrity sha512-my2cPw+DAb2qVnIuBcsRKGyS28uIc2vjFxa1NpRoJZe9gK0BWUBk7wzXnIzWy3HZ5Er11e/40MPTUesNfMYNVA== + dependencies: + apollo-engine-reporting-protobuf "^0.5.2" + apollo-server-caching "^0.5.2" + apollo-server-env "^2.4.5" + +apollo-server@^2.16.0: + version "2.17.0" + resolved "https://registry.npmjs.org/apollo-server/-/apollo-server-2.17.0.tgz#d015fe6d8d6bdd468bc43ecabcb29ceb41e0b286" + integrity sha512-vVMu+VqjmsB6yk5iNTb/AXM6EJGd2uwzrcTAbwqvGI7GqCYDRZlGBwrQCjOU/jT/EPWdNRWks/qhJYiQMeVXSg== + dependencies: + apollo-server-core "^2.17.0" + apollo-server-express "^2.17.0" + express "^4.0.0" + graphql-subscriptions "^1.0.0" + graphql-tools "^4.0.0" + +apollo-tracing@^0.11.2: + version "0.11.2" + resolved "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.11.2.tgz#14308b176e021f5e6ec3ee670f8f96e9fbfdb50c" + integrity sha512-QjmRd2ozGD+PfmF6U9w/w6jrclYSBNczN6Bzppr8qA5somEGl5pqdprIZYL28H0IapZiutA3x6p6ZVF/cVX8wA== + dependencies: + apollo-server-env "^2.4.5" + apollo-server-plugin-base "^0.9.1" + +apollo-utilities@^1.0.1, apollo-utilities@^1.3.0: + version "1.3.4" + resolved "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf" + integrity sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig== + dependencies: + "@wry/equality" "^0.1.2" + fast-json-stable-stringify "^2.0.0" + ts-invariant "^0.4.0" + tslib "^1.10.0" + +app-root-dir@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz#38187ec2dea7577fff033ffcb12172692ff6e118" + integrity sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg= + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +aproba@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +arch@^2.1.0, arch@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/arch/-/arch-2.1.2.tgz#0c52bbe7344bb4fa260c443d2cbad9c00ff2f0bf" + integrity sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ== + +archive-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70" + integrity sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA= + dependencies: + file-type "^4.2.0" + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.10, argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +aria-query@^4.2.2: + version "4.2.2" + resolved "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" + integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== + dependencies: + "@babel/runtime" "^7.10.2" + "@babel/runtime-corejs3" "^7.10.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-differ@^2.0.3: + version "2.1.0" + resolved "https://registry.npmjs.org/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" + integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w== + +array-each@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + +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" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= + +array-includes@^3.0.3, array-includes@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" + integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0" + is-string "^1.0.5" + +array-slice@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== + +array-union@^1.0.1, array-union@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" + integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +array.prototype.flatmap@^1.2.1, array.prototype.flatmap@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz#1c13f84a178566042dd63de4414440db9222e443" + integrity sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + +array.prototype.map@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz#9a4159f416458a23e9483078de1106b2ef68f8ec" + integrity sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.4" + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asap@^2.0.0, asap@~2.0.3, asap@~2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.0, asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + +ast-types@0.11.3: + version "0.11.3" + resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.11.3.tgz#c20757fe72ee71278ea0ff3d87e5c2ca30d9edf8" + integrity sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA== + +ast-types@^0.13.2: + version "0.13.4" + resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" + integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== + dependencies: + tslib "^2.0.1" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async-retry@^1.2.1: + version "1.3.1" + resolved "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz#139f31f8ddce50c0870b0ba558a6079684aaed55" + integrity sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA== + dependencies: + retry "0.12.0" + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +async@^3.1.0, async@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" + integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atob-lite@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" + integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY= + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autolinker@^3.11.0: + version "3.14.1" + resolved "https://registry.npmjs.org/autolinker/-/autolinker-3.14.1.tgz#6ae4b812b6eaf42d4d68138b9e67757cbf2bc1e4" + integrity sha512-yvsRHIaY51EYDml6MGlbqyJGfl4n7zezGYf+R7gvM8c5LNpRGc4SISkvgAswSS8SWxk/OrGCylKV9mJyVstz7w== + dependencies: + tslib "^1.9.3" + +autolinker@~0.28.0: + version "0.28.1" + resolved "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47" + integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc= + dependencies: + gulp-header "^1.7.1" + +autoprefixer@^9.7.2, autoprefixer@^9.7.5: + version "9.8.6" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" + integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + colorette "^1.2.1" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.10.1" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" + integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== + +axe-core@^3.5.4: + version "3.5.5" + resolved "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz#84315073b53fa3c0c51676c588d59da09a192227" + integrity sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q== + +axios@^0.19.2: + version "0.19.2" + resolved "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" + integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== + dependencies: + follow-redirects "1.5.10" + +axios@^0.20.0: + version "0.20.0" + resolved "https://registry.npmjs.org/axios/-/axios-0.20.0.tgz#057ba30f04884694993a8cd07fa394cff11c50bd" + integrity sha512-ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA== + dependencies: + follow-redirects "^1.10.0" + +axobject-query@^2.1.2: + version "2.2.0" + resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" + integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== + +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-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.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-26.3.0.tgz#10d0ca4b529ca3e7d1417855ef7d7bd6fc0c3463" + integrity sha512-sxPnQGEyHAOPF8NcUsD0g7hDCnvLL2XyblRBcgrzTWBB/mAIpWow3n1bEL+VghnnZfreLhFSBsFluRoK2tRK4g== + dependencies: + "@jest/transform" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.3.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-plugin-add-react-displayname@^0.0.5: + version "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-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" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-emotion@^10.0.20, babel-plugin-emotion@^10.0.27: + version "10.0.33" + resolved "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz#ce1155dcd1783bbb9286051efee53f4e2be63e03" + integrity sha512-bxZbTTGz0AJQDHm8k6Rf3RQJ8tX2scsfsRyKVgAbiUPUNIRtlK+7JxP+TAd1kRLABFxe0CFm2VdK4ePkoA9FxQ== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@emotion/hash" "0.8.0" + "@emotion/memoize" "0.7.4" + "@emotion/serialize" "^0.11.16" + babel-plugin-macros "^2.0.0" + babel-plugin-syntax-jsx "^6.18.0" + convert-source-map "^1.5.0" + escape-string-regexp "^1.0.5" + find-root "^1.1.0" + source-map "^0.5.7" + +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" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^26.2.0: + version "26.2.0" + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.2.0.tgz#bdd0011df0d3d513e5e95f76bd53b51147aca2dd" + integrity sha512-B/hVMRv8Nh1sQ1a3EY8I0n4Y1Wty3NrR5ebOyVT302op+DOAau+xNEImGMsUWOC3++ZlMooCytKz+NgN8aKGbA== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.7.0: + version "2.8.0" + resolved "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" + integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== + dependencies: + "@babel/runtime" "^7.7.2" + 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== + 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-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-react-docgen@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.1.0.tgz#1dfa447dac9ca32d625a123df5733a9e47287c26" + integrity sha512-vzpnBlfGv8XOhJM2zbPyyqw2OLEbelgZZsaaRRTpVwNKuYuc+pUg4+dy7i9gCRms0uOQn4osX571HRcCJMJCmA== + dependencies: + lodash "^4.17.15" + react-docgen "^5.0.0" + recast "^0.14.7" + +babel-plugin-syntax-jsx@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= + +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@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz#b4b547acddbf963cba555ba9f9cbbb70bfd044da" + integrity sha512-uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@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-preset-jest@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.3.0.tgz#ed6344506225c065fd8a0b53e191986f74890776" + integrity sha512-5WPdf7nyYi2/eRxCbVrE1kKCWxgWY4RsPEbdJWFm7QsesFGqjdkyLeu1zRkwM1cxK6EPIlNd6d2AxLk7J+t4pw== + dependencies: + babel-plugin-jest-hoist "^26.2.0" + babel-preset-current-node-syntax "^0.1.3" + +"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" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +backo2@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + +bail@^1.0.0: + version "1.0.5" + resolved "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" + integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-arraybuffer@^0.1.5: + version "0.1.5" + resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= + +base64-js@^1.0.2, base64-js@^1.2.0: + version "1.3.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base64url@3.x.x: + version "3.0.1" + resolved "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" + integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +basic-auth@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== + dependencies: + safe-buffer "5.1.2" + +batch-processor@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz#75c95c32b748e0850d10c2b168f6bdbe9891ace8" + integrity sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg= + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +bcrypt-pbkdf@^1.0.0, bcrypt-pbkdf@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +before-after-hook@^2.0.0, before-after-hook@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" + integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== + +bfj@^7.0.2: + version "7.0.2" + resolved "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz#1988ce76f3add9ac2913fd8ba47aad9e651bfbb2" + integrity sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw== + dependencies: + bluebird "^3.5.5" + check-types "^11.1.1" + hoopy "^0.1.4" + tryer "^1.0.1" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bin-build@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz#c5780a25a8a9f966d8244217e6c1f5082a143861" + integrity sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA== + dependencies: + decompress "^4.0.0" + download "^6.2.2" + execa "^0.7.0" + p-map-series "^1.0.0" + tempfile "^2.0.0" + +bin-check@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz#fc495970bdc88bb1d5a35fc17e65c4a149fc4a49" + integrity sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA== + dependencies: + execa "^0.7.0" + executable "^4.1.0" + +bin-version-check@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz#7d819c62496991f80d893e6e02a3032361608f71" + integrity sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ== + dependencies: + bin-version "^3.0.0" + semver "^5.6.0" + semver-truncate "^1.1.2" + +bin-version@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz#5b09eb280752b1bd28f0c9db3f96f2f43b6c0839" + integrity sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ== + dependencies: + execa "^1.0.0" + find-versions "^3.0.0" + +bin-wrapper@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz#99348f2cf85031e3ef7efce7e5300aeaae960605" + integrity sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q== + dependencies: + bin-check "^4.1.0" + bin-version-check "^4.0.0" + download "^7.1.0" + import-lazy "^3.1.0" + os-filter-obj "^2.0.0" + pify "^4.0.1" + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bintrees@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz#0e655c9b9c2435eaab68bf4027226d2b55a34524" + integrity sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ= + +bl@^1.0.0: + version "1.2.2" + resolved "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" + integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +bl@^4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" + integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +blob-util@2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" + integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== + +bluebird@3.7.2, bluebird@^3.3.5, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5, bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: + version "4.11.9" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== + +bn.js@^5.1.1: + version "5.1.3" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" + integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== + +body-parser@1.19.0, body-parser@^1.18.3, body-parser@^1.19.0: + version "1.19.0" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +body@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" + integrity sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk= + dependencies: + continuable-cache "^0.3.1" + error "^7.0.0" + raw-body "~1.1.0" + safe-json-parse "~1.0.1" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +bowser@^1.7.3: + version "1.9.4" + resolved "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz#890c58a2813a9d3243704334fa81b96a5c150c9a" + integrity sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ== + +boxen@^4.1.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== + dependencies: + ansi-align "^3.0.0" + camelcase "^5.3.1" + chalk "^3.0.0" + cli-boxes "^2.2.0" + string-width "^4.1.0" + term-size "^2.1.0" + type-fest "^0.8.1" + widest-line "^3.1.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + 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.7.0: + version "4.7.0" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" + integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== + dependencies: + caniuse-lite "^1.0.30000989" + electron-to-chromium "^1.3.247" + node-releases "^1.1.29" + +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.8.5: + version "4.14.0" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.14.0.tgz#2908951abfe4ec98737b72f34c3bcedc8d43b000" + integrity sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ== + dependencies: + caniuse-lite "^1.0.30001111" + electron-to-chromium "^1.3.523" + escalade "^3.0.2" + node-releases "^1.1.60" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +btoa-lite@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" + integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= + +btoa@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" + integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + +buffer-from@1.x, buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-writer@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.1.tgz#22a936901e3029afcd7547eb4487ceb697a3bf08" + integrity sha1-Iqk2kB4wKa/NdUfrRIfOtpejvwg= + +buffer-writer@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" + integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: + version "5.6.0" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +builtin-modules@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" + integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= + +busboy@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b" + integrity sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw== + dependencies: + dicer "0.3.0" + +byline@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE= + +byte-size@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" + integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== + +bytes@1: + version "1.0.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" + integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: + version "12.0.4" + resolved "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cacache@^13.0.1: + version "13.0.1" + resolved "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" + integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== + dependencies: + chownr "^1.1.2" + figgy-pudding "^3.5.1" + fs-minipass "^2.0.0" + glob "^7.1.4" + graceful-fs "^4.2.2" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + minipass "^3.0.0" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + p-map "^3.0.0" + promise-inflight "^1.0.1" + rimraf "^2.7.1" + ssri "^7.0.0" + unique-filename "^1.1.1" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cacheable-lookup@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz#87be64a18b925234875e10a9bb1ebca4adce6b38" + integrity sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg== + dependencies: + "@types/keyv" "^3.1.1" + keyv "^4.0.0" + +cacheable-lookup@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz#049fdc59dffdd4fc285e8f4f82936591bd59fec3" + integrity sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w== + +cacheable-request@^2.1.1: + version "2.1.4" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" + integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= + dependencies: + clone-response "1.0.2" + get-stream "3.0.0" + http-cache-semantics "3.8.1" + keyv "3.0.0" + lowercase-keys "1.0.0" + normalize-url "2.0.1" + responselike "1.0.2" + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +cacheable-request@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" + integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^2.0.0" + +cachedir@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" + integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@4.1.1, camel-case@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz#1fc41c854f00e2f7d0139dfeba1542d6896fe547" + integrity sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q== + dependencies: + pascal-case "^3.1.1" + tslib "^1.10.0" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= + dependencies: + camelcase "^4.1.0" + map-obj "^2.0.0" + quick-lru "^1.0.0" + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e" + integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== + +can-use-dom@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz#22cc4a34a0abc43950f42c6411024a3f6366b45a" + integrity sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo= + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001111: + version "1.0.30001120" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001120.tgz#cd21d35e537214e19f7b9f4f161f7b0f2710d46c" + integrity sha512-JBP68okZs1X8D7MQTY602jxMYBmXEKOFkzTBaNSkubooMPFOAv2TXWaKle7qgHpjLDhUzA/TMT0qsNleVyXGUQ== + +canvas@^2.6.1: + version "2.6.1" + resolved "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz#0d087dd4d60f5a5a9efa202757270abea8bef89e" + integrity sha512-S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA== + dependencies: + nan "^2.14.0" + node-pre-gyp "^0.11.0" + simple-get "^3.0.3" + +canvg@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/canvg/-/canvg-1.5.3.tgz#aad17915f33368bf8eb80b25d129e3ae922ddc5f" + integrity sha512-7Gn2IuQzvUQWPIuZuFHrzsTM0gkPz2RRT9OcbdmA03jeKk8kltrD8gqUzNX15ghY/4PV5bbe5lmD6yDLDY6Ybg== + dependencies: + jsdom "^8.1.0" + rgbcolor "^1.0.1" + stackblur-canvas "^1.4.1" + xmldom "^0.1.22" + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + 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== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +caw@^2.0.0, caw@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95" + integrity sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA== + dependencies: + get-proxy "^2.0.0" + isurl "^1.0.0-alpha5" + tunnel-agent "^0.6.0" + url-to-options "^1.0.1" + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +character-entities-legacy@^1.0.0: + version "1.1.4" + resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" + integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== + +character-entities@^1.0.0: + version "1.2.4" + resolved "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" + integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== + +character-reference-invalid@^1.0.0: + version "1.1.4" + resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" + integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +check-more-types@2.24.0, check-more-types@^2.24.0: + version "2.24.0" + resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" + integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= + +check-types@^11.1.1: + version "11.1.2" + resolved "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f" + integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== + +cheerio@0.22.0: + version "0.22.0" + resolved "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" + integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash.assignin "^4.0.9" + lodash.bind "^4.1.4" + lodash.defaults "^4.0.1" + lodash.filter "^4.4.0" + lodash.flatten "^4.2.0" + lodash.foreach "^4.3.0" + lodash.map "^4.4.0" + lodash.merge "^4.4.0" + lodash.pick "^4.2.1" + lodash.reduce "^4.4.0" + lodash.reject "^4.4.0" + lodash.some "^4.4.0" + +chokidar@^2.0.4, chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chokidar@^3.2.2, chokidar@^3.3.0, chokidar@^3.3.1, chokidar@^3.4.1: + version "3.4.2" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" + integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.4.0" + optionalDependencies: + fsevents "~2.1.2" + +chownr@^1.0.1, chownr@^1.1.1, chownr@^1.1.2: + version "1.1.4" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circleci-api@^4.0.0: + version "4.1.3" + resolved "https://registry.npmjs.org/circleci-api/-/circleci-api-4.1.3.tgz#cafd80bc1905c6064724636741b4b5b231ed34d0" + integrity sha512-Km6H8LB3nNbFUjErhI+sNQrcHcU7dCBnQEi4ckBtQMkCXh+2gDvaYchfkeuIaA1hkakQT5sLmdPbYzhKbvsOMg== + dependencies: + axios "^0.20.0" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +classnames@^2.2.5, classnames@^2.2.6: + version "2.2.6" + resolved "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" + integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== + +clean-css@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" + integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== + +cli-cursor@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= + dependencies: + restore-cursor "^1.0.1" + +cli-cursor@^2.0.0, cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.2.0, cli-spinners@^2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f" + integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA== + +cli-table3@0.5.1, cli-table3@~0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" + integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== + dependencies: + object-assign "^4.1.0" + string-width "^2.1.1" + optionalDependencies: + colors "^1.1.2" + +cli-table3@~0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" + integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== + dependencies: + object-assign "^4.1.0" + string-width "^4.2.0" + optionalDependencies: + colors "^1.1.2" + +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ= + dependencies: + slice-ansi "0.0.4" + string-width "^1.0.1" + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +clipboard@^2.0.0: + version "2.0.6" + resolved "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" + integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + dependencies: + string-width "^1.0.1" + 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" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +clone-deep@^0.2.4: + version "0.2.4" + resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" + integrity sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY= + dependencies: + for-own "^0.1.3" + is-plain-object "^2.0.1" + kind-of "^3.0.2" + lazy-cache "^1.0.3" + shallow-clone "^0.1.2" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone-response@1.0.2, clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +clsx@^1.0.2, clsx@^1.0.4, clsx@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" + integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +code-error-fragment@0.0.230: + version "0.0.230" + resolved "https://registry.npmjs.org/code-error-fragment/-/code-error-fragment-0.0.230.tgz#d736d75c832445342eca1d1fedbf17d9618b14d7" + integrity sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw== + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +codemirror-graphql@^0.12.0: + version "0.12.1" + resolved "https://registry.npmjs.org/codemirror-graphql/-/codemirror-graphql-0.12.1.tgz#02ce19ffe15397c049ca87c195ac13080d2abe8f" + integrity sha512-PlOCTpfBBUwDZXQo60ZfzD/nGZsaJoE1tA07Uf9xJN7R0kBDGJeD4AVfdUTprZr27p0JIntJzmL6mt/G4Zkzeg== + dependencies: + graphql-language-service-interface "^2.4.1" + graphql-language-service-parser "^1.6.1" + +codemirror@^5.52.2: + version "5.57.0" + resolved "https://registry.npmjs.org/codemirror/-/codemirror-5.57.0.tgz#d26365b72f909f5d2dbb6b1209349ca1daeb2d50" + integrity sha512-WGc6UL7Hqt+8a6ZAsj/f1ApQl3NPvHY/UQSzG6fB6l4BjExgVdhFaxd7mRTw1UCiYe/6q86zHP+kfvBQcZGvUg== + +coffee-script@^1.12.4: + version "1.12.7" + resolved "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz#c05dae0cb79591d05b3070a8433a98c9a89ccc53" + integrity sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw== + +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.1" + resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@3.0.x: + version "3.0.0" + resolved "https://registry.npmjs.org/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a" + integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +color@^3.0.0, color@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" + integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +colorette@1.2.1, colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + +colors@^1.1.2, colors@^1.2.1: + version "1.4.0" + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +colorspace@1.1.x: + version "1.1.2" + resolved "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz#e0128950d082b86a2168580796a0aa5d6c68d8c5" + integrity sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ== + dependencies: + color "3.0.x" + text-hex "1.0.x" + +columnify@^1.5.4: + version "1.5.4" + resolved "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" + integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs= + dependencies: + strip-ansi "^3.0.0" + wcwidth "^1.0.0" + +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +comma-separated-tokens@^1.0.0: + version "1.0.8" + resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" + integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== + +command-exists-promise@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/command-exists-promise/-/command-exists-promise-2.0.2.tgz#7beecc4b218299f3c61fa69a4047aa0b36a64a99" + integrity sha512-T6PB6vdFrwnHXg/I0kivM3DqaCGZLjjYSOe0a5WgFKcz1sOnmOeIjnhQPXVXX3QjVbLyTJ85lJkX6lUpukTzaA== + +commander@^2.19.0, commander@^2.20.0, commander@^2.20.3, commander@^2.8.1: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.0, commander@^4.0.1, commander@^4.1.1: + version "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: + 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.0.0: + version "6.1.0" + resolved "https://registry.npmjs.org/commander/-/commander-6.1.0.tgz#f8d722b78103141006b66f4c7ba1e97315ba75bc" + integrity sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA== + +common-tags@^1.8.0: + version "1.8.0" + resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" + integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +compare-func@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" + integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== + dependencies: + array-ify "^1.0.0" + dot-prop "^5.1.0" + +compare-versions@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" + integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== + +component-emitter@^1.2.0, component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +compute-gcd@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.0.tgz#fc1ede5b65001e950226502f46543863e4fea10e" + integrity sha1-/B7eW2UAHpUCJlAvRlQ4Y+T+oQ4= + dependencies: + validate.io-array "^1.0.3" + validate.io-function "^1.0.2" + validate.io-integer-array "^1.0.0" + +compute-lcm@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.0.tgz#abd96d040b41b0a166f89944b5c8b7c511e21ad5" + integrity sha1-q9ltBAtBsKFm+JlEtci3xRHiGtU= + dependencies: + compute-gcd "^1.2.0" + validate.io-array "^1.0.3" + validate.io-function "^1.0.2" + validate.io-integer-array "^1.0.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.2: + version "1.6.2" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + +concat-with-sourcemaps@*, concat-with-sourcemaps@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" + integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== + dependencies: + source-map "^0.6.1" + +concurrently@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/concurrently/-/concurrently-5.3.0.tgz#7500de6410d043c912b2da27de3202cb489b1e7b" + integrity sha512-8MhqOB6PWlBfA2vJ8a0bSFKATOdWlHiQlk11IfmQBPaHVP8oP2gsh2MObE6UR3hqDHqvaIvLTyceNW6obVuFHQ== + dependencies: + chalk "^2.4.2" + date-fns "^2.0.1" + lodash "^4.17.15" + read-pkg "^4.0.1" + rxjs "^6.5.2" + spawn-command "^0.0.2-1" + supports-color "^6.1.0" + tree-kill "^1.2.2" + yargs "^13.3.0" + +config-chain@^1.1.11: + version "1.1.12" + resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +console-stream@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44" + integrity sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ= + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +constate@^1.2.0: + version "1.3.2" + resolved "https://registry.npmjs.org/constate/-/constate-1.3.2.tgz#fa5f0fc292207f1ec21b46a5eb81f59c8b0a8b84" + integrity sha512-aaILV4vXwGTUZaQZHS5F1xBV8wRCR0Ow1505fdkS5/BPg6hbQrhNqdHL4wgxWgaDeEj43mu/Fb+LhqOKTMcrgQ== + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= + +content-disposition@0.5.3, content-disposition@^0.5.2: + version "0.5.3" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +continuable-cache@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" + integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8= + +conventional-changelog-angular@^5.0.3: + version "5.0.11" + resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.11.tgz#99a3ca16e4a5305e0c2c2fae3ef74fd7631fc3fb" + integrity sha512-nSLypht/1yEflhuTogC03i7DX7sOrXGsRn14g131Potqi6cbGbGEE9PSDEHKldabB6N76HiSyw9Ph+kLmC04Qw== + dependencies: + compare-func "^2.0.0" + q "^1.5.1" + +conventional-changelog-core@^3.1.6: + version "3.2.3" + resolved "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz#b31410856f431c847086a7dcb4d2ca184a7d88fb" + integrity sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ== + dependencies: + conventional-changelog-writer "^4.0.6" + conventional-commits-parser "^3.0.3" + dateformat "^3.0.0" + get-pkg-repo "^1.0.0" + git-raw-commits "2.0.0" + git-remote-origin-url "^2.0.0" + git-semver-tags "^2.0.3" + lodash "^4.2.1" + normalize-package-data "^2.3.5" + q "^1.5.1" + read-pkg "^3.0.0" + read-pkg-up "^3.0.0" + through2 "^3.0.0" + +conventional-changelog-preset-loader@^2.1.1: + version "2.3.4" + resolved "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c" + integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== + +conventional-changelog-writer@^4.0.6: + version "4.0.17" + resolved "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.17.tgz#4753aaa138bf5aa59c0b274cb5937efcd2722e21" + integrity sha512-IKQuK3bib/n032KWaSb8YlBFds+aLmzENtnKtxJy3+HqDq5kohu3g/UdNbIHeJWygfnEbZjnCKFxAW0y7ArZAw== + dependencies: + compare-func "^2.0.0" + conventional-commits-filter "^2.0.6" + dateformat "^3.0.0" + handlebars "^4.7.6" + json-stringify-safe "^5.0.1" + lodash "^4.17.15" + meow "^7.0.0" + semver "^6.0.0" + split "^1.0.0" + through2 "^3.0.0" + +conventional-commits-filter@^2.0.2, conventional-commits-filter@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.6.tgz#0935e1240c5ca7698329affee1b6a46d33324c4c" + integrity sha512-4g+sw8+KA50/Qwzfr0hL5k5NWxqtrOVw4DDk3/h6L85a9Gz0/Eqp3oP+CWCNfesBvZZZEFHF7OTEbRe+yYSyKw== + dependencies: + lodash.ismatch "^4.4.0" + modify-values "^1.0.0" + +conventional-commits-parser@^3.0.3: + version "3.1.0" + resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.1.0.tgz#10140673d5e7ef5572633791456c5d03b69e8be4" + integrity sha512-RSo5S0WIwXZiRxUGTPuYFbqvrR4vpJ1BDdTlthFgvHt5kEdnd1+pdvwWphWn57/oIl4V72NMmOocFqqJ8mFFhA== + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.1" + lodash "^4.17.15" + meow "^7.0.0" + split2 "^2.0.0" + through2 "^3.0.0" + trim-off-newlines "^1.0.0" + +conventional-recommended-bump@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-5.0.1.tgz#5af63903947b6e089e77767601cb592cabb106ba" + integrity sha512-RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ== + dependencies: + concat-stream "^2.0.0" + conventional-changelog-preset-loader "^2.1.1" + conventional-commits-filter "^2.0.2" + conventional-commits-parser "^3.0.3" + git-raw-commits "2.0.0" + git-semver-tags "^2.0.3" + meow "^4.0.0" + q "^1.5.1" + +convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +cookie-parser@^1.4.5: + version "1.4.5" + resolved "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz#3e572d4b7c0c80f9c61daf604e4336831b5d1d49" + integrity sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw== + dependencies: + cookie "0.4.0" + cookie-signature "1.0.6" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +cookie@^0.4.1, cookie@~0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + +cookiejar@^2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" + integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + 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: + 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.6.2: + version "3.6.5" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" + integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== + dependencies: + browserslist "^4.8.5" + semver "7.0.0" + +core-js-pure@^3.0.0, core-js-pure@^3.0.1: + version "3.6.5" + resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813" + integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA== + +core-js@^1.0.0: + version "1.2.7" + resolved "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= + +core-js@^2.4.0, core-js@^2.5.7, core-js@^2.6.11, core-js@^2.6.5: + version "2.6.11" + resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== + +core-js@^3.0.1, core-js@^3.0.4, core-js@^3.5.0, core-js@^3.6.5: + version "3.6.5" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" + integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +corejs-upgrade-webpack-plugin@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/corejs-upgrade-webpack-plugin/-/corejs-upgrade-webpack-plugin-2.2.0.tgz#503293bf1fdcb104918eb40d0294e4776ad6923a" + integrity sha512-J0QMp9GNoiw91Kj/dkIQFZeiCXgXoja/Wlht1SPybxerBWh4NCmb0pOgCv61lrlQZETwvVVfAFAA3IqoEO9aqQ== + dependencies: + resolve-from "^5.0.0" + webpack "^4.38.0" + +cors@^2.8.4, cors@^2.8.5: + version "2.8.5" + resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@6.0.0, cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@^5.0.0, cosmiconfig@^5.1.0, cosmiconfig@^5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +create-react-class@^15.5.1: + version "15.6.3" + resolved "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" + integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg== + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + object-assign "^4.1.1" + +create-react-context@0.3.0, create-react-context@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c" + integrity sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw== + dependencies: + gud "^1.0.0" + warning "^4.0.3" + +cross-env@^7.0.0: + version "7.0.2" + resolved "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz#bd5ed31339a93a3418ac4f3ca9ca3403082ae5f9" + integrity sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw== + dependencies: + cross-spawn "^7.0.1" + +cross-fetch@3.0.5, cross-fetch@^3.0.4, cross-fetch@^3.0.5: + version "3.0.5" + resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.5.tgz#2739d2981892e7ab488a7ad03b92df2816e03f4c" + integrity sha512-FFLcLtraisj5eteosnX1gf01qYDCOc4fDy0+euOt8Kn9YBY2NtXL/pCoYPavw24NIQkQqm5ZOLsGD5Zzj0gyew== + dependencies: + node-fetch "2.6.0" + +cross-spawn@6.0.5, cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@7.0.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@^5.0.1: + version "5.1.0" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crowdin-cli@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/crowdin-cli/-/crowdin-cli-0.3.0.tgz#eac9989a6fe7feaaf33090397afc187c67b46191" + integrity sha1-6smYmm/n/qrzMJA5evwYfGe0YZE= + dependencies: + request "^2.53.0" + yamljs "^0.2.1" + yargs "^2.3.0" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +css-box-model@^1.2.0: + version "1.2.1" + resolved "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz#59951d3b81fd6b2074a62d49444415b0d2b4d7c1" + integrity sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw== + dependencies: + tiny-invariant "^1.0.6" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-in-js-utils@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz#3b472b398787291b47cfe3e44fecfdd9e914ba99" + integrity sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA== + dependencies: + hyphenate-style-name "^1.0.2" + isobject "^3.0.1" + +css-line-break@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/css-line-break/-/css-line-break-1.0.1.tgz#19f2063a33e95fb2831b86446c0b80c188af450a" + integrity sha1-GfIGOjPpX7KDG4ZEbAuAwYivRQo= + dependencies: + base64-arraybuffer "^0.1.5" + +css-loader@^3.0.0, css-loader@^3.5.3: + version "3.6.0" + resolved "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" + integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== + dependencies: + camelcase "^5.3.1" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.32" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.2" + postcss-modules-scope "^2.2.0" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.0" + semver "^6.3.0" + +css-modules-loader-core@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz#5908668294a1becd261ae0a4ce21b0b551f21d16" + integrity sha1-WQhmgpShvs0mGuCkziGwtVHyHRY= + dependencies: + icss-replace-symbols "1.1.0" + postcss "6.0.1" + postcss-modules-extract-imports "1.1.0" + postcss-modules-local-by-default "1.2.0" + postcss-modules-scope "1.1.0" + postcss-modules-values "1.3.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^1.1.0, css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-selector-tokenizer@^0.7.0: + version "0.7.3" + resolved "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" + integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== + dependencies: + cssesc "^3.0.0" + fastparse "^1.1.2" + +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" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@1.0.0-alpha.39, css-tree@^1.0.0-alpha.28: + version "1.0.0-alpha.39" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" + integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== + dependencies: + mdn-data "2.0.6" + source-map "^0.6.1" + +css-vendor@^2.0.8: + version "2.0.8" + resolved "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz#e47f91d3bd3117d49180a3c935e62e3d9f7f449d" + integrity sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ== + dependencies: + "@babel/runtime" "^7.8.3" + is-in-browser "^1.0.2" + +css-what@2.1: + version "2.1.3" + resolved "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +css-what@^3.2.1: + version "3.3.0" + resolved "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz#10fec696a9ece2e591ac772d759aacabac38cd39" + integrity sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg== + +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" + integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= + +css@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" + integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== + dependencies: + inherits "^2.0.4" + source-map "^0.6.1" + source-map-resolve "^0.6.0" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssfilter@0.0.10: + version "0.0.10" + resolved "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" + integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= + +cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.1.10: + version "4.1.10" + resolved "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.0.3" + resolved "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" + integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ== + dependencies: + css-tree "1.0.0-alpha.39" + +cssom@0.3.x, "cssom@>= 0.3.0 < 0.4.0", "cssom@>= 0.3.2 < 0.4.0", cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +"cssstyle@>= 0.2.34 < 0.3.0": + version "0.2.37" + resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" + integrity sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ= + dependencies: + cssom "0.3.x" + +cssstyle@^1.0.0: + version "1.4.0" + resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" + integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== + dependencies: + cssom "0.3.x" + +cssstyle@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstype@^2.2.0, csstype@^2.5.2, csstype@^2.5.5, csstype@^2.5.7: + version "2.6.13" + resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f" + integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A== + +csstype@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz#2b410bbeba38ba9633353aff34b05d9755d065f8" + integrity sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag== + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +cypress@*: + version "5.0.0" + resolved "https://registry.npmjs.org/cypress/-/cypress-5.0.0.tgz#6957e299b790af8b1cd7bea68261b8935646f72e" + integrity sha512-jhPd0PMO1dPSBNpx6pHVLkmnnaTfMy3wCoacHAKJ9LJG06y16zqUNSFri64N4BjuGe8y6mNMt8TdgKnmy9muCg== + dependencies: + "@cypress/listr-verbose-renderer" "^0.4.1" + "@cypress/request" "^2.88.5" + "@cypress/xvfb" "^1.2.4" + "@types/sinonjs__fake-timers" "^6.0.1" + "@types/sizzle" "^2.3.2" + arch "^2.1.2" + blob-util "2.0.2" + bluebird "^3.7.2" + cachedir "^2.3.0" + chalk "^4.1.0" + check-more-types "^2.24.0" + cli-table3 "~0.6.0" + commander "^4.1.1" + common-tags "^1.8.0" + debug "^4.1.1" + eventemitter2 "^6.4.2" + execa "^4.0.2" + executable "^4.1.1" + extract-zip "^1.7.0" + fs-extra "^9.0.1" + getos "^3.2.1" + is-ci "^2.0.0" + is-installed-globally "^0.3.2" + lazy-ass "^1.6.0" + listr "^0.14.3" + lodash "^4.17.19" + log-symbols "^4.0.0" + minimist "^1.2.5" + moment "^2.27.0" + ospath "^1.2.2" + pretty-bytes "^5.3.0" + ramda "~0.26.1" + request-progress "^3.0.0" + supports-color "^7.1.0" + tmp "~0.2.1" + untildify "^4.0.0" + url "^0.11.0" + yauzl "^2.10.0" + +cypress@^4.2.0: + version "4.12.1" + resolved "https://registry.npmjs.org/cypress/-/cypress-4.12.1.tgz#0ead1b9f4c0917d69d8b57f996b6e01fe693b6ec" + integrity sha512-9SGIPEmqU8vuRA6xst2CMTYd9sCFCxKSzrHt0wr+w2iAQMCIIsXsQ5Gplns1sT6LDbZcmLv6uehabAOl3fhc9Q== + dependencies: + "@cypress/listr-verbose-renderer" "^0.4.1" + "@cypress/request" "^2.88.5" + "@cypress/xvfb" "^1.2.4" + "@types/sinonjs__fake-timers" "^6.0.1" + "@types/sizzle" "^2.3.2" + arch "^2.1.2" + bluebird "^3.7.2" + cachedir "^2.3.0" + chalk "^2.4.2" + check-more-types "^2.24.0" + cli-table3 "~0.5.1" + commander "^4.1.1" + common-tags "^1.8.0" + debug "^4.1.1" + eventemitter2 "^6.4.2" + execa "^1.0.0" + executable "^4.1.1" + extract-zip "^1.7.0" + fs-extra "^8.1.0" + getos "^3.2.1" + is-ci "^2.0.0" + is-installed-globally "^0.3.2" + lazy-ass "^1.6.0" + listr "^0.14.3" + lodash "^4.17.19" + log-symbols "^3.0.0" + minimist "^1.2.5" + moment "^2.27.0" + ospath "^1.2.2" + pretty-bytes "^5.3.0" + ramda "~0.26.1" + request-progress "^3.0.0" + supports-color "^7.1.0" + tmp "~0.1.0" + untildify "^4.0.0" + url "^0.11.0" + yauzl "^2.10.0" + +"d3-dispatch@1 - 2": + version "2.0.0" + resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz#8a18e16f76dd3fcaef42163c97b926aa9b55e7cf" + integrity sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA== + +d3-force@^2.0.1: + version "2.1.1" + resolved "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz#f20ccbf1e6c9e80add1926f09b51f686a8bc0937" + integrity sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew== + dependencies: + d3-dispatch "1 - 2" + d3-quadtree "1 - 2" + d3-timer "1 - 2" + +"d3-quadtree@1 - 2": + version "2.0.0" + resolved "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz#edbad045cef88701f6fee3aee8e93fb332d30f9d" + integrity sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw== + +"d3-timer@1 - 2": + version "2.0.0" + resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz#055edb1d170cfe31ab2da8968deee940b56623e6" + integrity sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA== + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +damerau-levenshtein@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" + integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== + +dargs@^4.0.1: + version "4.1.0" + resolved "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" + integrity sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc= + dependencies: + number-is-nan "^1.0.0" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +dashify@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/dashify/-/dashify-2.0.0.tgz#fff270ca2868ca427fee571de35691d6e437a648" + integrity sha512-hpA5C/YrPjucXypHPPc0oJ1l9Hf6wWbiOL7Ik42cxnsUOhWiCB/fylKbKqqJalW9FgkNQCw16YO8uW9Hs0Iy1A== + +data-urls@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +date-fns@^1.27.2: + version "1.30.1" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== + +date-fns@^2.0.0-alpha.27, date-fns@^2.0.1, date-fns@^2.15.0: + version "2.16.0" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.16.0.tgz#d34f0f5f2fd498c984513042e8f7247ea86c4cb7" + integrity sha512-DWTRyfOA85sZ4IiXPHhiRIOs3fW5U6Msrp+gElXARa6EpoQTXPyHQmh7hr+ssw2nx9FtOQWnAMJKgL5vaJqILw== + +dateformat@^3.0.0: + version "3.0.3" + resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== + +debounce@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131" + integrity sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg== + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.1.0, debug@=3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" + integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== + dependencies: + ms "^2.1.1" + +debug@4.1.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= + +decamelize-keys@^1.0.0, decamelize-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decimal.js@^10.2.0: + version "10.2.0" + resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz#39466113a9e036111d02f82489b5fd6b0b5ed231" + integrity sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw== + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^3.2.0, decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + +decompress-response@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz#7849396e80e3d1eba8cb2f75ef4930f76461cb0f" + integrity sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw== + dependencies: + mimic-response "^2.0.0" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" + integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== + dependencies: + file-type "^5.2.0" + is-stream "^1.1.0" + tar-stream "^1.5.2" + +decompress-tarbz2@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" + integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== + dependencies: + decompress-tar "^4.1.0" + file-type "^6.1.0" + is-stream "^1.1.0" + seek-bzip "^1.0.5" + unbzip2-stream "^1.0.9" + +decompress-targz@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" + integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== + dependencies: + decompress-tar "^4.1.1" + file-type "^5.2.0" + is-stream "^1.1.0" + +decompress-unzip@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" + integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k= + dependencies: + file-type "^3.8.0" + get-stream "^2.2.0" + pify "^2.3.0" + yauzl "^2.4.2" + +decompress@^4.0.0, decompress@^4.2.0: + version "4.2.1" + resolved "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" + integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== + dependencies: + decompress-tar "^4.0.0" + decompress-tarbz2 "^4.0.0" + decompress-targz "^4.0.0" + decompress-unzip "^4.0.1" + graceful-fs "^4.1.10" + make-dir "^1.0.0" + pify "^2.3.0" + strip-dirs "^2.0.0" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-equal@^1.0.1, deep-equal@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-extend@0.6.0, deep-extend@^0.6.0, deep-extend@~0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-freeze@^0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" + integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ= + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deep-object-diff@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.0.tgz#d6fabf476c2ed1751fc94d5ca693d2ed8c18bc5a" + integrity sha512-b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw== + +deepmerge@^4.2.2: + version "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== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +defer-to-connect@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" + integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== + +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" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + 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@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7" + integrity sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA== + dependencies: + globby "^10.0.1" + graceful-fs "^4.2.2" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.1" + p-map "^3.0.0" + rimraf "^3.0.0" + slash "^3.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +depd@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +deprecated-decorator@^0.1.6: + version "0.1.6" + resolved "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" + integrity sha1-AJZjF7ehL+kvPMgx91g68ym4bDc= + +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + +detect-indent@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detect-node-es@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.0.0.tgz#c0318b9e539a5256ca780dd9575c9345af05b8ed" + integrity sha512-S4AHriUkTX9FoFvL4G8hXDcx6t3gp2HpfCza3Q0v6S78gul2hKWifLQbeW+ZF89+hSm2ZIc/uF3J97ZgytgTRg== + +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + +detect-port-alt@1.1.6: + version "1.1.6" + resolved "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +detect-port@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" + integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +dezalgo@^1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" + integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= + dependencies: + asap "^2.0.0" + wrappy "1" + +diacritics-map@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz#6dfc0ff9d01000a2edf2865371cac316e94977af" + integrity sha1-bfwP+dAQAKLt8oZTccrDFulJd68= + +dicer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872" + integrity sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA== + dependencies: + streamsearch "0.1.2" + +diff-sequences@^25.2.6: + version "25.2.6" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" + integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== + +diff-sequences@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.3.0.tgz#62a59b1b29ab7fd27cef2a33ae52abe73042d0a2" + integrity sha512-5j5vdRcw3CNctePNYN0Wy2e/JbWT6cAYnXv5OuqPhDpyCGc0uLu2TK0zOCJWNB9kOIfYMSpIulRaDgIi4HJ6Ig== + +diff@^4.0.1, diff@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.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" + integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== + dependencies: + path-type "^3.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +docker-modem@^2.1.0: + version "2.1.4" + resolved "https://registry.npmjs.org/docker-modem/-/docker-modem-2.1.4.tgz#54ec1079287624a8d30cc3c55ab0e1201e7c46c9" + integrity sha512-vDTzZjjO1sXMY7m0xKjGdFMMZL7vIUerkC3G4l6rnrpOET2M6AOufM8ajmQoOB+6RfSn6I/dlikCUq/Y91Q1sQ== + dependencies: + debug "^4.1.1" + readable-stream "^3.5.0" + split-ca "^1.0.1" + ssh2 "^0.8.7" + +dockerode@^3.2.0, dockerode@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/dockerode/-/dockerode-3.2.1.tgz#4a2222e3e1df536bf595e78e76d3cfbf6d4d93b9" + integrity sha512-XsSVB5Wu5HWMg1aelV5hFSqFJaKS5x1aiV/+sT7YOzOq1IRl49I/UwV8Pe4x6t0iF9kiGkWu5jwfvbkcFVupBw== + dependencies: + docker-modem "^2.1.0" + tar-fs "~2.0.1" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +docusaurus@^2.0.0-alpha.61: + version "2.0.0-alpha.62" + resolved "https://registry.npmjs.org/docusaurus/-/docusaurus-2.0.0-alpha.62.tgz#48404b735a727cc896047389988095020506f060" + integrity sha512-KTAo5/IBr81p4L+hNqR+uwa367HzoOhbvaunExNFaDOuVeex/B452cS322x4BTIDxU3JslaQA4qBGWfWp1XbVQ== + dependencies: + "@babel/core" "^7.9.0" + "@babel/plugin-proposal-class-properties" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.9.0" + "@babel/polyfill" "^7.8.7" + "@babel/preset-env" "^7.9.0" + "@babel/preset-react" "^7.9.4" + "@babel/register" "^7.9.0" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" + autoprefixer "^9.7.5" + babylon "^6.18.0" + chalk "^3.0.0" + classnames "^2.2.6" + commander "^4.0.1" + crowdin-cli "^0.3.0" + cssnano "^4.1.10" + escape-string-regexp "^2.0.0" + express "^4.17.1" + feed "^4.0.0" + fs-extra "^8.1.0" + gaze "^1.1.3" + github-slugger "^1.2.1" + glob "^7.1.6" + highlight.js "^9.16.2" + imagemin "^6.0.0" + imagemin-gifsicle "^6.0.1" + imagemin-jpegtran "^6.0.0" + imagemin-optipng "^6.0.0" + imagemin-svgo "^7.0.0" + lodash "^4.17.15" + markdown-toc "^1.2.0" + mkdirp "^0.5.1" + portfinder "^1.0.25" + postcss "^7.0.23" + prismjs "^1.17.1" + react "^16.8.4" + react-dev-utils "^9.1.0" + react-dom "^16.8.4" + remarkable "^2.0.0" + request "^2.88.0" + shelljs "^0.8.4" + sitemap "^3.2.2" + tcp-port-used "^1.0.1" + tiny-lr "^1.1.1" + tree-node-cli "^1.2.5" + truncate-html "^1.0.3" + +dom-accessibility-api@^0.5.1: + version "0.5.2" + resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.2.tgz#ef3cdb5d3f0d599d8f9c8b18df2fb63c9793739d" + integrity sha512-k7hRNKAiPJXD2aBqfahSo4/01cTsKWXf+LqJgglnkN2Nz8TsxXKQBXHhKe0Ye9fEfHEZY49uSA5Sr3AqP/sWKA== + +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== + dependencies: + utila "~0.4" + +dom-helpers@^5.0.1, dom-helpers@^5.1.3: + version "5.2.0" + resolved "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz#57fd054c5f8f34c52a3eeffdb7e7e93cd357d95b" + integrity sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.0.1.tgz#79695eb49af3cd8abc8d93a73da382deb1ca0795" + integrity sha512-1Aj1Qy3YLbdslkI75QEOfdp9TkQ3o8LRISAzxOibjBs/xWwr1WxZFOQphFkZuepHFGo+kB8e5FVJSS0faAJ4Rw== + dependencies: + domelementtype "^2.0.1" + domhandler "^3.0.0" + entities "^2.0.0" + +dom-serializer@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domhandler@^3.0, domhandler@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-3.0.0.tgz#51cd13efca31da95bbb0c5bee3a48300e333b3e9" + integrity sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw== + dependencies: + domelementtype "^2.0.1" + +dompurify@^1.0.11: + version "1.0.11" + resolved "https://registry.npmjs.org/dompurify/-/dompurify-1.0.11.tgz#fe0f4a40d147f7cebbe31a50a1357539cfc1eb4d" + integrity sha512-XywCTXZtc/qCX3iprD1pIklRVk/uhl8BKpkTxr+ZyMVUzSUg7wkQXRBp/euJ5J5moa1QvfpvaPQVP71z1O59dQ== + +dompurify@^2.0.7: + version "2.0.14" + resolved "https://registry.npmjs.org/dompurify/-/dompurify-2.0.14.tgz#792f72e95bc643999e7ae81baf6e9c6d9de02429" + integrity sha512-oqcjyCLHLjWugZ6VwK0YfmRND/DFy/CuZhdasmymMfnxbzaaQxBSA1ATZIXWESGDj/nvq1vKLmRa7rTdbGgrmQ== + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/domutils/-/domutils-2.2.0.tgz#f3ce1610af5c30280bde1b71f84b018b958f32cf" + integrity sha512-0haAxVr1PR0SqYwCH7mxMpHZUwjih9oPPedqpR/KufsnxPyZ9dyVw1R5093qnJF3WXSbjBkdzRWLw/knJV/fAg== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.0.1" + domhandler "^3.0.0" + +dot-case@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz#21d3b52efaaba2ea5fda875bb1aa8124521cf4aa" + integrity sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA== + dependencies: + no-case "^3.0.3" + tslib "^1.10.0" + +dot-prop@^4.2.0: + version "4.2.1" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" + integrity sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ== + dependencies: + is-obj "^1.0.0" + +dot-prop@^5.1.0, dot-prop@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" + integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== + dependencies: + is-obj "^2.0.0" + +dotenv-defaults@^1.0.2: + version "1.1.1" + resolved "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-1.1.1.tgz#032c024f4b5906d9990eb06d722dc74cc60ec1bd" + integrity sha512-6fPRo9o/3MxKvmRZBD3oNFdxODdhJtIy1zcJeUSCs6HCy4tarUpd+G67UTU9tF6OWXeSPqsm4fPAB+2eY9Rt9Q== + dependencies: + dotenv "^6.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.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@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" + integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w== + +dotenv@^8.0.0: + version "8.2.0" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + +download@^6.2.2: + version "6.2.5" + resolved "https://registry.npmjs.org/download/-/download-6.2.5.tgz#acd6a542e4cd0bb42ca70cfc98c9e43b07039714" + integrity sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA== + dependencies: + caw "^2.0.0" + content-disposition "^0.5.2" + decompress "^4.0.0" + ext-name "^5.0.0" + file-type "5.2.0" + filenamify "^2.0.0" + get-stream "^3.0.0" + got "^7.0.0" + make-dir "^1.0.0" + p-event "^1.0.0" + pify "^3.0.0" + +download@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/download/-/download-7.1.0.tgz#9059aa9d70b503ee76a132897be6dec8e5587233" + integrity sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ== + dependencies: + archive-type "^4.0.0" + caw "^2.0.1" + content-disposition "^0.5.2" + decompress "^4.2.0" + ext-name "^5.0.0" + file-type "^8.1.0" + filenamify "^2.0.0" + get-stream "^3.0.0" + got "^8.3.1" + make-dir "^1.2.0" + p-event "^2.1.0" + pify "^3.0.0" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +duplexer@^0.1.1, duplexer@~0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +ejs@^2.7.4: + version "2.7.4" + resolved "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + +electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.523: + version "1.3.555" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.555.tgz#a096716ff77cf8da9a608eb628fd6927869503d2" + integrity sha512-/55x3nF2feXFZ5tdGUOr00TxnUjUgdxhrn+eCJ1FAcoAt+cKQTjQkUC5XF4frMWE1R5sjHk+JueuBalimfe5Pg== + +elegant-spinner@^1.0.1: + version "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" + +elliptic@^6.5.3: + version "6.5.3" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" + integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emitter-component@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/emitter-component/-/emitter-component-1.1.1.tgz#065e2dbed6959bf470679edabeaf7981d1003ab6" + integrity sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY= + +emittery@^0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.7.1.tgz#c02375a927a40948c0345cc903072597f5270451" + integrity sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ== + +"emoji-regex@>=6.0.0 <=6.1.1": + version "6.1.1" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" + integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.0.0.tgz#48a2309cc8a1d2e9d23bc6a67c39b63032e76ea4" + integrity sha512-6p1NII1Vm62wni/VR/cUMauVQoxmLVb9csqQlvLz+hO2gk8U2UYDfXHQSUYIBKmZwAKz867IDqG7B+u0mj+M6w== + +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: + 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== + dependencies: + "@babel/runtime" "^7.5.5" + "@emotion/weak-memoize" "0.2.5" + hoist-non-react-statics "^3.3.0" + +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +encoding@^0.1.11: + version "0.1.13" + resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.0.0, enhanced-resolve@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" + integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enquirer@^2.3.5, enquirer@^2.3.6: + version "2.3.6" + resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +entities@^1.1.1, entities@^1.1.2, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0, entities@~2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" + integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== + +env-paths@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" + integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== + +envinfo@^7.3.1: + version "7.7.3" + resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.7.3.tgz#4b2d8622e3e7366afb8091b23ed95569ea0208cc" + integrity sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA== + +err-code@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= + +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" + integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== + dependencies: + stackframe "^1.1.1" + +error@^7.0.0: + version "7.2.1" + resolved "https://registry.npmjs.org/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" + integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== + dependencies: + string-template "~0.2.1" + +es-abstract@^1.17.0, es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.4, es-abstract@^1.17.5: + version "1.17.6" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" + integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.0" + is-regex "^1.1.0" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-abstract@^1.18.0-next.0: + version "1.18.0-next.0" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.0.tgz#b302834927e624d8e5837ed48224291f2c66e6fc" + integrity sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.0" + is-negative-zero "^2.0.0" + is-regex "^1.1.1" + object-inspect "^1.8.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-get-iterator@^1.0.2: + version "1.1.0" + resolved "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz#bb98ad9d6d63b31aacdc8f89d5d0ee57bcb5b4c8" + integrity sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ== + dependencies: + es-abstract "^1.17.4" + has-symbols "^1.0.1" + is-arguments "^1.0.4" + is-map "^2.0.1" + is-set "^2.0.1" + is-string "^1.0.5" + isarray "^2.0.5" + +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" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.53" + resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es5-shim@^4.5.13: + version "4.5.14" + resolved "https://registry.npmjs.org/es5-shim/-/es5-shim-4.5.14.tgz#90009e1019d0ea327447cb523deaff8fe45697ef" + integrity sha512-7SwlpL+2JpymWTt8sNLuC2zdhhc+wrfe5cMPI2j0o6WsPdfAiPwmFy2f0AocPB4RQVBOZ9kNTgi5YF7TdhkvEg== + +es6-iterator@^2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= + dependencies: + es6-promise "^4.0.3" + +es6-shim@^0.35.5: + version "0.35.5" + resolved "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.5.tgz#46f59dc0a84a1c5029e8ff1166ca0a902077a9ab" + integrity sha512-E9kK/bjtCQRpN1K28Xh4BlmP8egvZBGJJ+9GtnzOwt7mdqtrjHFuVGr7QJfdjBIKqrlU5duPf3pCBoDrkjVYFg== + +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +esbuild@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.6.3.tgz#a957e22f2503c745793514388110f9b55b3a6f83" + integrity sha512-4lHgz/EvGLRQnDYzzrvW+eilaPHim5pCLz4mP0k0QIalD/n8Ji2NwQwoIa1uX+yKkbn9R/FAZvaEbodjx55rDg== + +escalade@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4" + integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== + +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escodegen@^1.14.1, escodegen@^1.6.1, escodegen@^1.9.1: + version "1.14.3" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-prettier@^6.0.0: + version "6.11.0" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz#f6d2238c1290d01c859a8b5c1f7d352a0b0da8b1" + integrity sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA== + dependencies: + get-stdin "^6.0.0" + +eslint-formatter-friendly@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/eslint-formatter-friendly/-/eslint-formatter-friendly-7.0.0.tgz#32a4998ababa0a39994aed629b831fda7dabc864" + integrity sha512-WXg2D5kMHcRxIZA3ulxdevi8/BGTXu72pfOO5vXHqcAfClfIWDSlOljROjCSOCcKvilgmHz1jDWbvFCZHjMQ5w== + dependencies: + "@babel/code-frame" "7.0.0" + chalk "2.4.2" + extend "3.0.2" + strip-ansi "5.2.0" + text-table "0.2.0" + +eslint-import-resolver-node@^0.3.3: + version "0.3.4" + resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-module-utils@^2.1.1, eslint-module-utils@^2.6.0: + version "2.6.0" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== + dependencies: + debug "^2.6.9" + pkg-dir "^2.0.0" + +eslint-plugin-cypress@^2.10.3: + version "2.11.1" + resolved "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.11.1.tgz#a945e2774b88211e2c706a059d431e262b5c2862" + integrity sha512-MxMYoReSO5+IZMGgpBZHHSx64zYPSPTpXDwsgW7ChlJTF/sA+obqRbHplxD6sBStE+g4Mi0LCLkG4t9liu//mQ== + dependencies: + globals "^11.12.0" + +eslint-plugin-graphql@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/eslint-plugin-graphql/-/eslint-plugin-graphql-4.0.0.tgz#d238ff2baee4d632cfcbe787a7a70a1f50428358" + integrity sha512-d5tQm24YkVvCEk29ZR5ScsgXqAGCjKlMS8lx3mS7FS/EKsWbkvXQImpvic03EpMIvNTBW5e+2xnHzXB/VHNZJw== + dependencies: + "@babel/runtime" "^7.10.0" + graphql-config "^3.0.2" + lodash.flatten "^4.4.0" + lodash.without "^4.4.0" + +eslint-plugin-import@^2.20.2, eslint-plugin-import@^2.22.0: + version "2.22.0" + resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz#92f7736fe1fde3e2de77623c838dd992ff5ffb7e" + integrity sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg== + dependencies: + array-includes "^3.1.1" + array.prototype.flat "^1.2.3" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.3" + eslint-module-utils "^2.6.0" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.1" + read-pkg-up "^2.0.0" + resolve "^1.17.0" + tsconfig-paths "^3.9.0" + +eslint-plugin-jest@^23.6.0: + version "23.20.0" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.20.0.tgz#e1d69c75f639e99d836642453c4e75ed22da4099" + integrity sha512-+6BGQt85OREevBDWCvhqj1yYA4+BFK4XnRZSGJionuEYmcglMZYLNNBBemwzbqUAckURaHdJSBcjHPyrtypZOw== + dependencies: + "@typescript-eslint/experimental-utils" "^2.5.0" + +eslint-plugin-jsx-a11y@^6.2.1: + version "6.3.1" + resolved "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.3.1.tgz#99ef7e97f567cc6a5b8dd5ab95a94a67058a2660" + integrity sha512-i1S+P+c3HOlBJzMFORRbC58tHa65Kbo8b52/TwCwSKLohwvpfT5rm2GjGWzOHTEuq4xxf2aRlHHTtmExDQOP+g== + dependencies: + "@babel/runtime" "^7.10.2" + aria-query "^4.2.2" + array-includes "^3.1.1" + ast-types-flow "^0.0.7" + axe-core "^3.5.4" + axobject-query "^2.1.2" + damerau-levenshtein "^1.0.6" + emoji-regex "^9.0.0" + has "^1.0.3" + jsx-ast-utils "^2.4.1" + language-tags "^1.0.5" + +eslint-plugin-monorepo@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/eslint-plugin-monorepo/-/eslint-plugin-monorepo-0.2.1.tgz#96cfc4af241077675f40d7017377897fb8ea537b" + integrity sha512-82JaAjuajVAsDT+pMvdt275H6F55H3MEofaMZbJurGqfXpPDT4eayTgYyyjfd1XR8VD1S+ORbuHCULnSqNyD9g== + dependencies: + eslint-module-utils "^2.1.1" + get-monorepo-packages "^1.1.0" + globby "^7.1.1" + load-json-file "^4.0.0" + minimatch "^3.0.4" + parse-package-name "^0.1.0" + path-is-inside "^1.0.2" + +eslint-plugin-notice@^0.9.10: + version "0.9.10" + resolved "https://registry.npmjs.org/eslint-plugin-notice/-/eslint-plugin-notice-0.9.10.tgz#89cf6377bf1c004a219c4e541321ea9125b408c8" + integrity sha512-rF79EuqdJKu9hhTmwUkNeSvLmmq03m/NXq/NHwUENHbdJ0wtoyOjxZBhW4QCug8v5xYE6cGe3AWkGqSIe9KUbQ== + dependencies: + find-root "^1.1.0" + lodash "^4.17.15" + metric-lcs "^0.1.2" + +eslint-plugin-react-hooks@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.1.0.tgz#6323fbd5e650e84b2987ba76370523a60f4e7925" + integrity sha512-36zilUcDwDReiORXmcmTc6rRumu9JIM3WjSvV0nclHoUQ0CNrX866EwONvLR/UqaeqFutbAnVu8PEmctdo2SRQ== + +eslint-plugin-react@^7.12.4: + version "7.20.6" + resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.20.6.tgz#4d7845311a93c463493ccfa0a19c9c5d0fd69f60" + integrity sha512-kidMTE5HAEBSLu23CUDvj8dc3LdBU0ri1scwHBZjI41oDv4tjsWZKU7MQccFzH1QYPYhsnTF2ovh7JlcIcmxgg== + dependencies: + array-includes "^3.1.1" + array.prototype.flatmap "^1.2.3" + doctrine "^2.1.0" + has "^1.0.3" + jsx-ast-utils "^2.4.1" + object.entries "^1.1.2" + object.fromentries "^2.0.2" + object.values "^1.1.1" + prop-types "^15.7.2" + resolve "^1.17.0" + string.prototype.matchall "^4.0.2" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^5.0.0, eslint-scope@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" + integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^2.0.0, eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint@^7.1.0: + version "7.7.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-7.7.0.tgz#18beba51411927c4b64da0a8ceadefe4030d6073" + integrity sha512-1KUxLzos0ZVsyL81PnRN335nDtQ8/vZUD6uMtWbF+5zDtjKcsklIi78XoE0MVL93QvWTu+E5y44VyyCsOMBrIg== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.0" + eslint-utils "^2.1.0" + eslint-visitor-keys "^1.3.0" + espree "^7.2.0" + esquery "^1.2.0" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.19" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +esm@^3.2.25: + version "3.2.25" + resolved "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" + integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== + +espree@^7.2.0: + version "7.3.0" + resolved "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz#dc30437cf67947cf576121ebd780f15eeac72348" + integrity sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0: + version "5.2.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +estree-walker@^0.6.0, estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + dependencies: + d "1" + es5-ext "~0.10.14" + +event-stream@=3.3.4: + version "3.3.4" + resolved "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + +eventemitter2@^6.4.2: + version "6.4.3" + resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.3.tgz#35c563619b13f3681e7eb05cbdaf50f56ba58820" + integrity sha512-t0A2msp6BzOf+QAcI6z9XMktLj52OjGQg+8SJH6v5+3uxNpWYRR3wQmfA+6xtMU9kOC59qk9licus5dYcrYkMQ== + +eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + +eventemitter3@^4.0.0, eventemitter3@^4.0.4: + version "4.0.7" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== + +eventsource@^1.0.5, eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-buffer@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz#b1686dbd904c7cf982e652c1f5a79b1e5573082b" + integrity sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA== + dependencies: + execa "^0.7.0" + p-finally "^1.0.0" + pify "^3.0.0" + rimraf "^2.5.4" + tempfile "^2.0.0" + +exec-sh@^0.3.2: + version "0.3.4" + resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" + integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== + +execa@3.4.0: + version "3.4.0" + resolved "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^4.0.0, execa@^4.0.2, execa@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2" + integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +executable@^4.1.0, executable@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" + integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== + dependencies: + pify "^2.2.0" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= + dependencies: + fill-range "^2.1.0" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + +expect@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/expect/-/expect-26.4.2.tgz#36db120928a5a2d7d9736643032de32f24e1b2a1" + integrity sha512-IlJ3X52Z0lDHm7gjEp+m76uX46ldH5VpqmU0006vqDju/285twh7zaWMRhs67VpQhBwjjMchk+p5aA0VkERCAA== + dependencies: + "@jest/types" "^26.3.0" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.4.2" + jest-message-util "^26.3.0" + jest-regex-util "^26.0.0" + +express-prom-bundle@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/express-prom-bundle/-/express-prom-bundle-6.1.0.tgz#8fd72e5bedbbd686b8e7c49e0aecbc1b14b28743" + integrity sha512-krlvp5r6sgJ1IwL6M6/coMrNbAlwtpk+uyivfeyRMCupTK4HzIEQHH0gwrNhLiKyPmSbtZcSmtO6s+PRumRp5g== + dependencies: + on-finished "^2.3.0" + url-value-parser "^2.0.0" + +express-promise-router@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/express-promise-router/-/express-promise-router-3.0.3.tgz#5e6d22a5a3f013d71833172fe8d7ab780c3f6b70" + integrity sha1-Xm0ipaPwE9cYMxcv6NereAw/a3A= + dependencies: + is-promise "^2.1.0" + lodash.flattendeep "^4.0.0" + methods "^1.0.0" + +express@^4.0.0, express@^4.17.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== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext-list@^2.0.0: + version "2.2.2" + resolved "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" + integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== + dependencies: + mime-db "^1.28.0" + +ext-name@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" + integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== + dependencies: + ext-list "^2.0.0" + sort-keys-length "^1.0.0" + +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.0.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@3.0.2, extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-zip@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== + dependencies: + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@2.0.1, fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +fast-deep-equal@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= + +fast-deep-equal@^3.0.0, fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "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: + version "2.2.7" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-glob@^3.0.3, fast-glob@^3.1.1: + version "3.2.4" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" + integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +fast-json-patch@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-2.2.1.tgz#18150d36c9ab65c7209e7d4eb113f4f8eaabe6d9" + integrity sha512-4j5uBaTnsYAV5ebkidvxiLUYOwjQ+JSFljeqfTxCrH9bDmlCQaOJFS84oDJ2rAXZq2yskmk3ORfoP9DCwqFNig== + dependencies: + fast-deep-equal "^2.0.1" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fast-safe-stringify@^2.0.4: + version "2.0.7" + resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" + integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== + +fast-shallow-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz#d4dcaf6472440dcefa6f88b98e3251e27f25628b" + integrity sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw== + +fast-url-parser@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" + integrity sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0= + dependencies: + punycode "^1.3.2" + +fastest-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/fastest-stable-stringify/-/fastest-stable-stringify-1.0.1.tgz#9122d406d4c9d98bea644a6b6853d5874b87b028" + integrity sha1-kSLUBtTJ2YvqZEpraFPVh0uHsCg= + +fastparse@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + +fastq@^1.6.0: + version "1.8.0" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" + integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== + dependencies: + reusify "^1.0.4" + +fault@^1.0.0, fault@^1.0.2: + version "1.0.4" + resolved "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13" + integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA== + dependencies: + format "^0.2.0" + +faye-websocket@^0.10.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: + 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== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +fbjs@^0.8.9: + version "0.8.17" + resolved "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" + integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.18" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +fecha@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz#3ffb6395453e3f3efff850404f0a59b6747f5f41" + integrity sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg== + +feed@^4.0.0: + version "4.2.1" + resolved "https://registry.npmjs.org/feed/-/feed-4.2.1.tgz#b246ef891051c7dbf088ca203341d9fb0444baee" + integrity sha512-l28KKcK1J/u3iq5dRDmmoB2p7dtBfACC2NqJh4dI2kFptxH0asfjmOfcxqh5Sv8suAlVa73gZJ4REY5RrafVvg== + dependencies: + xml-js "^1.6.11" + +fetch-readablestream@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/fetch-readablestream/-/fetch-readablestream-0.2.0.tgz#eaa6d1a76b12de2d4731a343393c6ccdcfe2c795" + integrity sha512-qu4mXWf4wus4idBIN/kVH+XSer8IZ9CwHP+Pd7DL7TuKNC1hP7ykon4kkBjwJF3EMX2WsFp4hH7gU7CyL7ucXw== + +figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +figures@^1.3.5, figures@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +figures@^3.0.0, figures@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +file-loader@^4.2.0: + version "4.3.0" + resolved "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" + integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA== + dependencies: + loader-utils "^1.2.3" + schema-utils "^2.5.0" + +"file-saver@github:eligrey/FileSaver.js#1.3.8": + version "1.3.8" + resolved "https://codeload.github.com/eligrey/FileSaver.js/tar.gz/e865e37af9f9947ddcced76b549e27dc45c1cb2e" + +file-system-cache@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/file-system-cache/-/file-system-cache-1.0.5.tgz#84259b36a2bbb8d3d6eb1021d3132ffe64cfff4f" + integrity sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08= + dependencies: + bluebird "^3.3.5" + fs-extra "^0.30.0" + ramda "^0.21.0" + +file-type@5.2.0, file-type@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" + integrity sha1-LdvqfHP/42No365J3DOMBYwritY= + +file-type@^10.4.0, file-type@^10.7.0: + version "10.11.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz#2961d09e4675b9fb9a3ee6b69e9cd23f43fd1890" + integrity sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw== + +file-type@^3.8.0: + version "3.9.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= + +file-type@^4.2.0: + version "4.4.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" + integrity sha1-G2AOX8ofvcboDApwxxyNul95BsU= + +file-type@^6.1.0: + version "6.2.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" + integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== + +file-type@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz#244f3b7ef641bbe0cca196c7276e4b332399f68c" + integrity sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ== + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filefy@0.1.10: + version "0.1.10" + resolved "https://registry.npmjs.org/filefy/-/filefy-0.1.10.tgz#174677c8e2fa5bc39a3af0ed6fb492f16b8fbf42" + integrity sha512-VgoRVOOY1WkTpWH+KBy8zcU1G7uQTVsXqhWEgzryB9A5hg2aqCyZ6aQ/5PSzlqM5+6cnVrX6oYV0XqD3HZSnmQ== + +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" + integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= + +filenamify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz#88faf495fb1b47abfd612300002a16228c677ee9" + integrity sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA== + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.0" + trim-repeated "^1.0.0" + +filesize@3.6.1: + version "3.6.1" + resolved "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== + +filesize@6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz#f850b509909c7c86f7e450ea19006c31c2ed3d2f" + integrity sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg== + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.0.0, find-cache-dir@^3.2.0, find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@3.0.0, find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-versions@^3.0.0, find-versions@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" + integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== + dependencies: + semver-regex "^2.0.0" + +findup-sync@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" + integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +fined@^1.0.1: + version "1.2.0" + resolved "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" + integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== + dependencies: + expand-tilde "^2.0.2" + is-plain-object "^2.0.3" + object.defaults "^1.1.0" + object.pick "^1.2.0" + parse-filepath "^1.0.1" + +flagged-respawn@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" + integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +fn-name@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/fn-name/-/fn-name-3.0.0.tgz#0596707f635929634d791f452309ab41558e3c5c" + integrity sha512-eNMNr5exLoavuAMhIUVsOKF79SWd/zG104ef6sxBTSw+cZc6BXdQXDvYcGvp0VbxVVSp1XDUNoz7mg1xMtSznA== + +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + +focus-lock@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/focus-lock/-/focus-lock-0.7.0.tgz#b2bfb0ca7beacc8710a1ff74275fe0dc60a1d88a" + integrity sha512-LI7v2mH02R55SekHYdv9pRHR9RajVNyIJ2N5IEkWbg7FT5ZmJ9Hw4mWxHeEUcd+dJo0QmzztHvDvWcc7prVFsw== + +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + +follow-redirects@^1.0.0, follow-redirects@^1.10.0: + version "1.13.0" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" + integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== + +for-in@^0.1.3: + version "0.1.8" + resolved "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" + integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE= + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^0.1.3: + version "0.1.5" + resolved "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= + dependencies: + for-in "^1.0.1" + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= + dependencies: + for-in "^1.0.1" + +foreach@^2.0.4: + version "2.0.5" + resolved "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= + +forever-agent@~0.6.1: + version "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@1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz#ce1d77190b44d81a761b10b6284a373795e41f0c" + integrity sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA== + dependencies: + babel-code-frame "^6.22.0" + chalk "^2.4.1" + chokidar "^2.0.4" + 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@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.0.5: + 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== + dependencies: + "@babel/code-frame" "^7.5.5" + chalk "^2.4.1" + micromatch "^3.1.10" + minimatch "^3.0.4" + semver "^5.6.0" + tapable "^1.0.0" + worker-rpc "^0.1.0" + +form-data@^2.3.1, form-data@^2.3.2: + version "2.5.1" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +form-data@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" + integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +format@^0.2.0: + version "0.2.2" + resolved "https://registry.npmjs.org/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= + +formidable@^1.2.0: + version "1.2.2" + resolved "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9" + integrity sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q== + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0, from2@^2.1.1: + version "2.3.0" + resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +from@~0: + version "0.1.7" + resolved "https://registry.npmjs.org/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= + +fs-capacitor@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz#5a22e72d40ae5078b4fe64fe4d08c0d3fc88ad3c" + integrity sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@8.1.0, fs-extra@^8.0.1, fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@9.0.1, fs-extra@^9.0.0, fs-extra@^9.0.1: + version "9.0.1" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" + integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^1.0.0" + +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + integrity sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^7.0.0: + version "7.0.1" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.7" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@^2.1.2, fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45" + integrity sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + functions-have-names "^1.2.0" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +functions-have-names@^1.2.0: + version "1.2.1" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91" + integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA== + +fuse.js@^3.4.6: + version "3.6.1" + resolved "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz#7de85fdd6e1b3377c23ce010892656385fd9b10c" + integrity sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw== + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gaze@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== + dependencies: + globule "^1.0.0" + +generic-names@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" + integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== + dependencies: + loader-utils "^1.1.0" + +generic-pool@2.4.3: + version "2.4.3" + resolved "https://registry.npmjs.org/generic-pool/-/generic-pool-2.4.3.tgz#780c36f69dfad05a5a045dd37be7adca11a4f6ff" + integrity sha1-eAw29p360FpaBF3Te+etyhGk9v8= + +genfun@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" + integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-monorepo-packages@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/get-monorepo-packages/-/get-monorepo-packages-1.2.0.tgz#3eee88d30b11a5f65955dec6ae331958b2a168e4" + integrity sha512-aDP6tH+eM3EuVSp3YyCutOcFS4Y9AhRRH9FAd+cjtR/g63Hx+DCXdKoP1ViRPUJz5wm+BOEXB4FhoffGHxJ7jQ== + dependencies: + globby "^7.1.1" + load-json-file "^4.0.0" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-pkg-repo@^1.0.0: + version "1.4.0" + resolved "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" + integrity sha1-xztInAbYDMVTbCyFP54FIyBWly0= + dependencies: + hosted-git-info "^2.1.4" + meow "^3.3.0" + normalize-package-data "^2.3.0" + parse-github-repo-url "^1.3.0" + through2 "^2.0.0" + +get-port@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119" + integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== + +get-port@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" + integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== + +get-proxy@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93" + integrity sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw== + dependencies: + npm-conf "^1.1.0" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== + +get-stream@3.0.0, get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^2.2.0: + version "2.3.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" + integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0, get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getopts@2.2.5: + version "2.2.5" + resolved "https://registry.npmjs.org/getopts/-/getopts-2.2.5.tgz#67a0fe471cacb9c687d817cab6450b96dde8313b" + integrity sha512-9jb7AW5p3in+IiJWhQiZmmwkpLaR/ccTWdWQCtZM66HJcHHLegowh4q4tSD7gouUyeNvFWRavfK9GXosQHDpFA== + +getos@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" + integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== + dependencies: + async "^3.2.0" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +gifsicle@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/gifsicle/-/gifsicle-4.0.1.tgz#30e1e61e3ee4884ef702641b2e98a15c2127b2e2" + integrity sha512-A/kiCLfDdV+ERV/UB+2O41mifd+RxH8jlRG8DMxZO84Bma/Fw0htqZ+hY2iaalLRNyUu7tYZQslqUBJxBggxbg== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.0" + execa "^1.0.0" + logalot "^2.0.0" + +git-raw-commits@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz#d92addf74440c14bcc5c83ecce3fb7f8a79118b5" + integrity sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg== + dependencies: + dargs "^4.0.1" + lodash.template "^4.0.2" + meow "^4.0.0" + split2 "^2.0.0" + through2 "^2.0.0" + +git-remote-origin-url@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + integrity sha1-UoJlna4hBxRaERJhEq0yFuxfpl8= + dependencies: + gitconfiglocal "^1.0.0" + pify "^2.3.0" + +git-semver-tags@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.3.tgz#48988a718acf593800f99622a952a77c405bfa34" + integrity sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA== + dependencies: + meow "^4.0.0" + semver "^6.0.0" + +git-up@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/git-up/-/git-up-4.0.2.tgz#10c3d731051b366dc19d3df454bfca3f77913a7c" + integrity sha512-kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ== + dependencies: + is-ssh "^1.3.0" + parse-url "^5.0.0" + +git-url-parse@^11.1.2, git-url-parse@^11.1.3: + version "11.1.3" + resolved "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.1.3.tgz#03625b6fc09905e9ad1da7bb2b84be1bf9123143" + integrity sha512-GPsfwticcu52WQ+eHp0IYkAyaOASgYdtsQDIt4rUp6GbiNt1P9ddrh3O0kQB0eD4UJZszVqNT3+9Zwcg40fywA== + dependencies: + git-up "^4.0.0" + +gitconfiglocal@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= + dependencies: + ini "^1.3.2" + +github-slugger@^1.2.1, github-slugger@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" + integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== + 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" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= + +glob@7.1.6, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1: + version "7.1.6" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" + integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== + dependencies: + ini "^1.3.5" + +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +global@^4.3.0, global@^4.3.2, 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== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + +globals@^11.1.0, globals@^11.12.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globalthis@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9" + integrity sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw== + dependencies: + define-properties "^1.1.3" + +globby@11.0.1, globby@^11.0.0: + version "11.0.1" + resolved "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + 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@8.0.2, globby@^8.0.1: + 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@^10.0.1: + version "10.0.2" + resolved "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" + integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.0.3" + glob "^7.1.3" + ignore "^5.1.1" + merge2 "^1.2.3" + 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" + integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + +globby@^9.2.0: + version "9.2.0" + resolved "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" + integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^1.0.2" + dir-glob "^2.2.2" + fast-glob "^2.2.6" + glob "^7.1.3" + ignore "^4.0.3" + pify "^4.0.1" + slash "^2.0.0" + +globule@^1.0.0: + version "1.3.2" + resolved "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4" + integrity sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA== + dependencies: + glob "~7.1.1" + lodash "~4.17.10" + minimatch "~3.0.2" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= + dependencies: + delegate "^3.1.2" + +got@^10.7.0: + version "10.7.0" + resolved "https://registry.npmjs.org/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" + integrity sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg== + dependencies: + "@sindresorhus/is" "^2.0.0" + "@szmarczak/http-timer" "^4.0.0" + "@types/cacheable-request" "^6.0.1" + cacheable-lookup "^2.0.0" + cacheable-request "^7.0.1" + decompress-response "^5.0.0" + duplexer3 "^0.1.4" + get-stream "^5.0.0" + lowercase-keys "^2.0.0" + mimic-response "^2.1.0" + p-cancelable "^2.0.0" + p-event "^4.0.0" + responselike "^2.0.0" + to-readable-stream "^2.0.0" + type-fest "^0.10.0" + +got@^11.5.2: + version "11.5.2" + resolved "https://registry.npmjs.org/got/-/got-11.5.2.tgz#772e3f3a06d9c7589c7c94dc3c83cdb31ddbf742" + integrity sha512-yUhpEDLeuGiGJjRSzEq3kvt4zJtAcjKmhIiwNp/eUs75tRlXfWcHo5tcBaMQtnjHWC7nQYT5HkY/l0QOQTkVww== + dependencies: + "@sindresorhus/is" "^3.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.1" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.0" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +got@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" + integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== + dependencies: + decompress-response "^3.2.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-plain-obj "^1.1.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^1.1.1" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + url-parse-lax "^1.0.0" + url-to-options "^1.0.1" + +got@^8.3.1: + version "8.3.2" + resolved "https://registry.npmjs.org/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" + integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== + dependencies: + "@sindresorhus/is" "^0.7.0" + cacheable-request "^2.1.1" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + into-stream "^3.1.0" + is-retry-allowed "^1.1.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + mimic-response "^1.0.0" + p-cancelable "^0.4.0" + p-timeout "^2.0.1" + pify "^3.0.0" + safe-buffer "^5.1.1" + timed-out "^4.0.1" + url-parse-lax "^3.0.0" + url-to-options "^1.0.1" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, 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== + +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +graphiql@^1.0.0-alpha.10: + version "1.0.3" + resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.0.3.tgz#f6b5d5c417d8f1a28786d3228a69883426ba74ad" + integrity sha512-6YW76m2exdpGiVS75I0QsbM4NanvenKFR9FtW/IFbui0mWv89iVa1FbdjhUt+kxa+LX/WlqTshiqiZRz7E5Bgg== + dependencies: + "@emotion/core" "^10.0.28" + "@mdx-js/react" "^1.5.2" + codemirror "^5.52.2" + codemirror-graphql "^0.12.0" + copy-to-clipboard "^3.2.0" + entities "^2.0.0" + markdown-it "^10.0.0" + monaco-graphql "^0.2.0" + regenerator-runtime "^0.13.5" + theme-ui "^0.3.1" + +graphql-config@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/graphql-config/-/graphql-config-3.0.3.tgz#58907c65ed7d6e04132321450b60e57863ea9a5f" + integrity sha512-MBY0wEjvcgJtZUyoqpPvOE1e5qPI0hJaa1gKTqjonSFiCsNHX2lykNjpOPcodmAgH1V06ELxhGnm9kcVzqvi/g== + dependencies: + "@graphql-tools/graphql-file-loader" "^6.0.0" + "@graphql-tools/json-file-loader" "^6.0.0" + "@graphql-tools/load" "^6.0.0" + "@graphql-tools/merge" "^6.0.0" + "@graphql-tools/url-loader" "^6.0.0" + "@graphql-tools/utils" "^6.0.0" + cosmiconfig "6.0.0" + minimatch "3.0.4" + string-env-interpolation "1.0.1" + tslib "^2.0.0" + +graphql-extensions@^0.12.4: + version "0.12.4" + resolved "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.4.tgz#c0aa49a20f983a2da641526d1e505996bd2b4188" + integrity sha512-GnR4LiWk3s2bGOqIh6V1JgnSXw2RCH4NOgbCFEWvB6JqWHXTlXnLZ8bRSkCiD4pltv7RHUPWqN/sGh8R6Ae/ag== + dependencies: + "@apollographql/apollo-tools" "^0.4.3" + apollo-server-env "^2.4.5" + apollo-server-types "^0.5.1" + +graphql-language-service-interface@^2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/graphql-language-service-interface/-/graphql-language-service-interface-2.4.1.tgz#62aca7880469d0f9079aec22a9b297cf78994f52" + integrity sha512-cKT0ia7xNVpkLlI0vuwxVpPVIXwy02ah4I+N6s4mxFKVgo+lPlX9r933EWX6t1P1vzGJmNf+dip2dK3gHg2bBw== + dependencies: + graphql-language-service-parser "^1.6.1" + graphql-language-service-types "^1.6.1" + graphql-language-service-utils "^2.4.1" + vscode-languageserver-types "^3.15.1" + +graphql-language-service-parser@^1.6.1: + version "1.6.2" + resolved "https://registry.npmjs.org/graphql-language-service-parser/-/graphql-language-service-parser-1.6.2.tgz#e139c37318e358c99786dc84f94bd1745135812a" + integrity sha512-7CwFkvuOjyrzwk+Ox4hPH839NOGnFHbzlWD08nsRxRTqth71LkHWS1ADVFxvBv49C1kXFmLSsCMhi4PH1meozQ== + +graphql-language-service-types@^1.6.1: + version "1.6.1" + resolved "https://registry.npmjs.org/graphql-language-service-types/-/graphql-language-service-types-1.6.1.tgz#2f3933426e47d1979a977f88738ea2cb1414c765" + integrity sha512-ag3m5b7aje7ZBSuLVQE/gt2iDL9WEfzotZfLyskUDOonhHKniQ8BfmSQ/pF9F6zrdVjtZ8VRr5nes1sEYvvwKQ== + +graphql-language-service-utils@^2.4.0, graphql-language-service-utils@^2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/graphql-language-service-utils/-/graphql-language-service-utils-2.4.1.tgz#37d3ffdb603fc8b54f11e7d57b4ca04660247c2b" + integrity sha512-fqYSrjJ3YXHwY9eYUz5nesLwLfo8csbR/hS4Xz8wDZCeqkD20UzjVfnbF1Q0SjtKFlDtEfnG9hJvHZEJXZCF3A== + dependencies: + graphql-language-service-types "^1.6.1" + +graphql-language-service@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-3.0.1.tgz#1253a5cb3affe7c272bbcfadd89c1f0eb78ece2f" + integrity sha512-79EGvEECgn1HIX0VBh3pXqetqgdtRHfkNTws0mcirCtFowwqt+QZAKKBNKVLY2vMya9wNVLDWUvzl0FF5wbBTA== + dependencies: + graphql-language-service-interface "^2.4.1" + graphql-language-service-types "^1.6.1" + +graphql-subscriptions@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.1.0.tgz#5f2fa4233eda44cf7570526adfcf3c16937aef11" + integrity sha512-6WzlBFC0lWmXJbIVE8OgFgXIP4RJi3OQgTPa0DVMsDXdpRDjTsM1K9wfl5HSYX7R87QAGlvcv2Y4BIZa/ItonA== + dependencies: + iterall "^1.2.1" + +graphql-tag@^2.9.2: + version "2.11.0" + resolved "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.11.0.tgz#1deb53a01c46a7eb401d6cb59dec86fa1cccbffd" + integrity sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA== + +graphql-tools@^4.0.0: + version "4.0.8" + resolved "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz#e7fb9f0d43408fb0878ba66b522ce871bafe9d30" + integrity sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg== + dependencies: + apollo-link "^1.2.14" + apollo-utilities "^1.0.1" + deprecated-decorator "^0.1.6" + iterall "^1.1.3" + uuid "^3.1.0" + +graphql-upload@^8.0.2: + version "8.1.0" + resolved "https://registry.npmjs.org/graphql-upload/-/graphql-upload-8.1.0.tgz#6d0ab662db5677a68bfb1f2c870ab2544c14939a" + integrity sha512-U2OiDI5VxYmzRKw0Z2dmfk0zkqMRaecH9Smh1U277gVgVe9Qn+18xqf4skwr4YJszGIh7iQDZ57+5ygOK9sM/Q== + dependencies: + busboy "^0.3.1" + fs-capacitor "^2.0.4" + http-errors "^1.7.3" + object-path "^0.11.4" + +graphql@15.1.0: + version "15.1.0" + resolved "https://registry.npmjs.org/graphql/-/graphql-15.1.0.tgz#b93e28de805294ec08e1630d901db550cb8960a1" + integrity sha512-0TVyfOlCGhv/DBczQkJmwXOK6fjWkjzY3Pt7wY8i0gcYXq8aogG3weCsg48m72lywKSeOqedEHvVPOvZvSD51Q== + +graphql@^14.5.3: + version "14.7.0" + resolved "https://registry.npmjs.org/graphql/-/graphql-14.7.0.tgz#7fa79a80a69be4a31c27dda824dc04dac2035a72" + integrity sha512-l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA== + dependencies: + iterall "^1.2.2" + +graphql@^15.3.0: + version "15.3.0" + resolved "https://registry.npmjs.org/graphql/-/graphql-15.3.0.tgz#3ad2b0caab0d110e3be4a5a9b2aa281e362b5278" + integrity sha512-GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w== + +gray-matter@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-2.1.1.tgz#3042d9adec2a1ded6a7707a9ed2380f8a17a430e" + integrity sha1-MELZrewqHe1qdwep7SOA+KF6Qw4= + dependencies: + ansi-red "^0.1.1" + coffee-script "^1.12.4" + extend-shallow "^2.0.1" + js-yaml "^3.8.1" + toml "^2.3.2" + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +gud@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" + integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== + +gulp-header@^1.7.1: + version "1.8.12" + resolved "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84" + integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ== + dependencies: + concat-with-sourcemaps "*" + lodash.template "^4.4.0" + through2 "^2.0.0" + +gzip-size@5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +handlebars@^4.7.3, handlebars@^4.7.6: + version "4.7.6" + resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" + integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +harmony-reflect@^1.4.6: + version "1.6.1" + resolved "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" + integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + dependencies: + has-symbol-support-x "^1.4.1" + +has-unicode@^2.0.0, has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +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== + +hastscript@^5.0.0: + version "5.1.2" + resolved "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz#bde2c2e56d04c62dd24e8c5df288d050a355fb8a" + integrity sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ== + dependencies: + comma-separated-tokens "^1.0.0" + hast-util-parse-selector "^2.0.0" + property-information "^5.0.0" + space-separated-tokens "^1.0.0" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +headers-utils@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/headers-utils/-/headers-utils-1.2.0.tgz#5e10d1bc9d2bccf789547afca5b991a3167241e8" + integrity sha512-4/BMXcWrJErw7JpM87gF8MNEXcIMLzepYZjNRv/P9ctgupl2Ywa3u1PgHtNhSRq84bHH9Ndlkdy7bSi+bZ9I9A== + +helmet@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/helmet/-/helmet-4.1.0.tgz#6f3a34e8f18502d6e52518428b23aa4ddaf84b38" + integrity sha512-KWy75fYN8hOG2Rhl8e5B3WhOzb0by1boQum85TiddIE9iu6gV+TXbUjVC17wfej0o/ZUpqB9kxM0NFCZRMzf+Q== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +highlight.js@^10.1.1, highlight.js@~10.1.0: + version "10.1.2" + resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.1.2.tgz#c20db951ba1c22c055010648dfffd7b2a968e00c" + integrity sha512-Q39v/Mn5mfBlMff9r+zzA+gWxRsCRKwEMvYTiisLr/XUiFI/4puWt0Ojdko3R3JCNWGdOWaA5g/Yxqa23kC5AA== + +highlight.js@^9.16.2: + version "9.18.3" + resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.3.tgz#a1a0a2028d5e3149e2380f8a865ee8516703d634" + integrity sha512-zBZAmhSupHIl5sITeMqIJnYCDfAEc3Gdkqj65wC1lpI468MMQeeQkhcIAvk+RylAkxrCcI9xy9piHiXeQ1BdzQ== + +highlight.js@~9.13.0: + version "9.13.1" + resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz#054586d53a6863311168488a0f58d6c505ce641e" + integrity sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A== + +history@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/history/-/history-5.0.0.tgz#0cabbb6c4bbf835addb874f8259f6d25101efd08" + integrity sha512-3NyRMKIiFSJmIPdq7FxkNMJkQ7ZEtVblOQ38VtKaA0zZMW1Eo6Q6W8oDKEflr1kNNTItSnk4JMCO1deeSgbLLg== + dependencies: + "@babel/runtime" "^7.7.6" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: + version "2.8.8" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0, html-comment-regex@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-entities@^1.2.0, html-entities@^1.3.1: + 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-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^5.0.1: + version "5.1.1" + resolved "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" + integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== + dependencies: + camel-case "^4.1.1" + clean-css "^4.2.3" + commander "^4.1.1" + he "^1.2.0" + param-case "^3.0.3" + relateurl "^0.2.7" + terser "^4.6.3" + +html-to-react@^1.3.4: + version "1.4.3" + resolved "https://registry.npmjs.org/html-to-react/-/html-to-react-1.4.3.tgz#1430a1cb581ef29533892ec70a2fdc4554b17ffd" + integrity sha512-txe09A3vxW8yEZGJXJ1is5gGDfBEVACmZDSgwDyH5EsfRdOubBwBCg63ZThZP0xBn0UE4FyvMXZXmohusCxDcg== + dependencies: + domhandler "^3.0" + htmlparser2 "^4.1.0" + lodash.camelcase "^4.3.0" + ramda "^0.27" + +html-webpack-plugin@^4.0.0-beta.2, html-webpack-plugin@^4.3.0: + version "4.4.1" + resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.4.1.tgz#61ab85aa1a84ba181443345ebaead51abbb84149" + integrity sha512-nEtdEIsIGXdXGG7MjTTZlmhqhpHU9pJFc1OYxcP36c5/ZKP6b0BJMww2QTvJGQYA9aMxUnjDujpZdYcVOXiBCQ== + dependencies: + "@types/html-minifier-terser" "^5.0.0" + "@types/tapable" "^1.0.5" + "@types/webpack" "^4.41.8" + html-minifier-terser "^5.0.1" + loader-utils "^1.2.3" + lodash "^4.17.15" + pretty-error "^2.1.1" + tapable "^1.1.3" + util.promisify "1.0.0" + +html2canvas@1.0.0-alpha.12: + version "1.0.0-alpha.12" + resolved "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz#3b1992e3c9b3f56063c35fd620494f37eba88513" + integrity sha1-OxmS48mz9WBjw1/WIElPN+uohRM= + dependencies: + css-line-break "1.0.1" + +htmlparser2@^3.3.0, htmlparser2@^3.9.1: + version "3.10.1" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +htmlparser2@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz#9a4ef161f2e4625ebf7dfbe6c0a2f52d18a59e78" + integrity sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q== + dependencies: + domelementtype "^2.0.1" + domhandler "^3.0.0" + domutils "^2.0.0" + entities "^2.0.0" + +http-cache-semantics@3.8.1, http-cache-semantics@^3.8.1: + version "3.8.1" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@^1.7.3: + version "1.8.0" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" + integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-parser-js@>=0.5.1: + version "0.5.2" + resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz#da2e31d237b393aae72ace43882dd7e270a8ff77" + integrity sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ== + +http-proxy-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== + dependencies: + agent-base "4" + debug "3.1.0" + +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@^0.19.1: + version "0.19.2" + resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.2.tgz#ee73dcc8348165afefe8de2ff717751d181608ee" + integrity sha512-aYk1rTKqLTus23X3L96LGNCGNgWpG4cG0XoZIT1GUPhhulEHX/QalnO6Vbo+WmKWi4AL2IidjuC0wZtbpg0yhQ== + dependencies: + http-proxy "^1.18.1" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.17.0, 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== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http2-wrapper@^1.0.0-beta.5.0: + version "1.0.0-beta.5.2" + resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" + integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +https-proxy-agent@^2.2.3: + version "2.2.4" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" + integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== + dependencies: + agent-base "^4.3.0" + debug "^3.1.0" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= + dependencies: + ms "^2.0.0" + +husky@^4.2.3: + version "4.2.5" + resolved "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz#2b4f7622673a71579f901d9885ed448394b5fa36" + integrity sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ== + dependencies: + chalk "^4.0.0" + ci-info "^2.0.0" + compare-versions "^3.6.0" + cosmiconfig "^6.0.0" + find-versions "^3.2.0" + opencollective-postinstall "^2.0.2" + pkg-dir "^4.2.0" + please-upgrade-node "^3.2.0" + slash "^3.0.0" + which-pm-runs "^1.0.0" + +hyphenate-style-name@^1.0.2, hyphenate-style-name@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" + integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== + +iconv-lite@0.4.24, iconv-lite@^0.4.13, iconv-lite@^0.4.21, iconv-lite@^0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= + +icss-utils@^4.0.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +identity-obj-proxy@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" + integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ= + dependencies: + harmony-reflect "^1.4.6" + +ieee754@^1.1.13, ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= + +ignore-walk@^3.0.1: + version "3.0.3" + resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + dependencies: + minimatch "^3.0.4" + +ignore@^3.3.5: + version "3.3.10" + resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +ignore@^4.0.3, ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.1, ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +imagemin-gifsicle@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-6.0.1.tgz#6abad4e95566d52e5a104aba1c24b4f3b48581b3" + integrity sha512-kuu47c6iKDQ6R9J10xCwL0lgs0+sMz3LRHqRcJ2CRBWdcNmo3T5hUaM8hSZfksptZXJLGKk8heSAvwtSdB1Fng== + dependencies: + exec-buffer "^3.0.0" + gifsicle "^4.0.0" + is-gif "^3.0.0" + +imagemin-jpegtran@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-6.0.0.tgz#c8d3bcfb6ec9c561c20a987142854be70d90b04f" + integrity sha512-Ih+NgThzqYfEWv9t58EItncaaXIHR0u9RuhKa8CtVBlMBvY0dCIxgQJQCfwImA4AV1PMfmUKlkyIHJjb7V4z1g== + dependencies: + exec-buffer "^3.0.0" + is-jpg "^2.0.0" + jpegtran-bin "^4.0.0" + +imagemin-optipng@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-6.0.0.tgz#a6bfc7b542fc08fc687e83dfb131249179a51a68" + integrity sha512-FoD2sMXvmoNm/zKPOWdhKpWdFdF9qiJmKC17MxZJPH42VMAp17/QENI/lIuP7LCUnLVAloO3AUoTSNzfhpyd8A== + dependencies: + exec-buffer "^3.0.0" + is-png "^1.0.0" + optipng-bin "^5.0.0" + +imagemin-svgo@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-7.1.0.tgz#528a42fd3d55eff5d4af8fd1113f25fb61ad6d9a" + integrity sha512-0JlIZNWP0Luasn1HT82uB9nU9aa+vUj6kpT+MjPW11LbprXC+iC4HDwn1r4Q2/91qj4iy9tRZNsFySMlEpLdpg== + dependencies: + is-svg "^4.2.1" + svgo "^1.3.2" + +imagemin@^6.0.0: + version "6.1.0" + resolved "https://registry.npmjs.org/imagemin/-/imagemin-6.1.0.tgz#62508b465728fea36c03cdc07d915fe2d8cf9e13" + integrity sha512-8ryJBL1CN5uSHpiBMX0rJw79C9F9aJqMnjGnrd/1CafegpNuA81RBAAru/jQQEOWlOJJlpRnlcVFF6wq+Ist0A== + dependencies: + file-type "^10.7.0" + globby "^8.0.1" + make-dir "^1.0.0" + p-pipe "^1.1.0" + pify "^4.0.1" + replace-ext "^1.0.0" + +immer@1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" + integrity sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg== + +immutable@>=3.8.2, immutable@^3.8.1, immutable@^3.8.2, immutable@^3.x.x: + version "3.8.2" + resolved "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" + integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= + +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" + integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== + dependencies: + import-from "^3.0.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@3.0.0, import-from@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" + integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== + dependencies: + resolve-from "^5.0.0" + +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" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + +import-lazy@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz#891279202c8a2280fdbd6674dbd8da1a1dfc67cc" + integrity sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ== + +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" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + dependencies: + repeating "^2.0.0" + +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +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.1, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +init-package-json@^1.10.3: + version "1.10.3" + resolved "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz#45ffe2f610a8ca134f2bd1db5637b235070f6cbe" + integrity sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw== + dependencies: + glob "^7.1.1" + npm-package-arg "^4.0.0 || ^5.0.0 || ^6.0.0" + promzard "^0.3.0" + read "~1.0.1" + read-package-json "1 || 2" + semver "2.x || 3.x || 4 || 5" + validate-npm-package-license "^3.0.1" + validate-npm-package-name "^3.0.0" + +inline-style-prefixer@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-4.0.2.tgz#d390957d26f281255fe101da863158ac6eb60911" + integrity sha512-N8nVhwfYga9MiV9jWlwfdj1UDIaZlBFu4cJSJkIr7tZX7sHpHhGR5su1qdpW+7KPL8ISTvCIkcaFi/JdBknvPg== + dependencies: + bowser "^1.7.3" + css-in-js-utils "^2.0.0" + +inquirer@6.5.0: + version "6.5.0" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42" + integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +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@^6.2.0: + version "6.5.2" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +inquirer@^7.0.0, inquirer@^7.0.4: + version "7.3.3" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.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== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +internal-slot@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3" + integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g== + dependencies: + es-abstract "^1.17.0-next.1" + has "^1.0.3" + side-channel "^1.0.2" + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +interpret@^2.0.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== + +into-stream@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" + integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= + dependencies: + from2 "^2.1.1" + p-is-promise "^1.1.0" + +invariant@^2.0.0, invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@1.1.5, 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: + 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== + +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" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +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== + +is-alphanumerical@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" + integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@^1.0.2, is-buffer@^1.1.4, is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" + integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-decimal@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "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: + version "2.1.1" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" + integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== + +is-dom@^1.0.9: + version "1.1.0" + resolved "https://registry.npmjs.org/is-dom/-/is-dom-1.1.0.tgz#af1fced292742443bb59ca3f76ab5e80907b4e8a" + integrity sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ== + dependencies: + is-object "^1.0.1" + is-window "^1.0.2" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + 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" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-function@^1.0.1, is-function@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-gif@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-gif/-/is-gif-3.0.0.tgz#c4be60b26a301d695bb833b20d9b5d66c6cf83b1" + integrity sha512-IqJ/jlbw5WJSNfwQ/lHEDXF8rxhRgF6ythk2oiEvhpG29F704eX9NO6TvPfMiq9DrbwgcEDnETYNcZDPewQoVw== + dependencies: + file-type "^10.4.0" + +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" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + 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.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-hexadecimal@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" + integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== + +is-in-browser@^1.0.2, is-in-browser@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" + integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU= + +is-installed-globally@^0.3.1, is-installed-globally@^0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" + integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== + dependencies: + global-dirs "^2.0.1" + is-path-inside "^3.0.1" + +is-interactive@^1.0.0: + version "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-jpg@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz#2e1997fa6e9166eaac0242daae443403e4ef1d97" + integrity sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc= + +is-map@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz#520dafc4307bb8ebc33b813de5ce7c9400d644a1" + integrity sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw== + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + +is-natural-number@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" + integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg= + +is-negative-zero@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" + integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= + +is-npm@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" + integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.0, is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-object@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" + integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= + +is-observable@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== + dependencies: + symbol-observable "^1.1.0" + +is-path-cwd@^2.0.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@^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: + 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-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b" + integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g== + +is-plain-object@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-4.1.1.tgz#1a14d6452cbd50790edc7fdaa0aed5a40a35ebb5" + integrity sha512-5Aw8LLVsDlZsETVMhoMXzqsXwQqr/0vlnBYzIXJbYo2F4yYlhLHs+Ez7Bod7IIQKWkJbJfxrWD7pA1Dw1TKrwA== + +is-png@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz#d574b12bf275c0350455570b0e5b57ab062077ce" + integrity sha1-1XSxK/J1wDUEVVcLDltXqwYgd84= + +is-potential-custom-element-name@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" + integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= + +is-promise@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" + integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== + +is-promise@^2.1, is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-reference@^1.1.2: + version "1.2.1" + resolved "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== + dependencies: + "@types/estree" "*" + +is-regex@^1.0.4, is-regex@^1.1.0, is-regex@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== + dependencies: + has-symbols "^1.0.1" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-root@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + +is-set@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz#d1604afdab1724986d30091575f54945da7e5f43" + integrity sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA== + +is-ssh@^1.3.0: + version "1.3.2" + resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.2.tgz#a4b82ab63d73976fd8263cceee27f99a88bdae2b" + integrity sha512-elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ== + dependencies: + protocols "^1.1.0" + +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-string@^1.0.4, is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + dependencies: + html-comment-regex "^1.1.0" + +is-svg@^4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/is-svg/-/is-svg-4.2.1.tgz#095b496e345fec9211c2a7d5d021003e040d6f81" + integrity sha512-PHx3ANecKsKNl5y5+Jvt53Y4J7MfMpbNZkv384QNiswMKAWIbvcqbPz+sYbFKJI8Xv3be01GSFniPmoaP+Ai5A== + dependencies: + html-comment-regex "^1.1.2" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-text-path@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= + dependencies: + text-extensions "^1.0.0" + +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" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + +is-url@^1.2.2: + version "1.2.4" + resolved "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + +is-utf8@^0.2.0: + version "0.2.1" + 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" + integrity sha1-LIlspT25feRdPDMTOmXYyfVjSA0= + +is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: + version "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" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is-wsl@^2.1.1, is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +is2@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/is2/-/is2-2.0.1.tgz#8ac355644840921ce435d94f05d3a94634d3481a" + integrity sha512-+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA== + dependencies: + deep-is "^0.1.3" + ip-regex "^2.1.0" + is-url "^1.2.2" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isobject@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" + integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== + +isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isomorphic-form-data@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isomorphic-form-data/-/isomorphic-form-data-2.0.0.tgz#9f6adf1c4c61ae3aefd8f110ab60fb9b143d6cec" + integrity sha512-TYgVnXWeESVmQSg4GLVbalmQ+B4NPi/H4eWxqALKj63KsUrcu301YDjBqaOw3h+cbak7Na4Xyps3BiptHtxTfg== + dependencies: + form-data "^2.3.2" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + +iterall@^1.1.3, iterall@^1.2.1, iterall@^1.2.2: + version "1.3.0" + resolved "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" + integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== + +iterate-iterator@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz#1693a768c1ddd79c969051459453f082fe82e9f6" + integrity sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw== + +iterate-value@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz#935115bd37d006a52046535ebc8d07e9c9337f57" + integrity sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ== + dependencies: + es-get-iterator "^1.0.2" + iterate-iterator "^1.0.1" + +jenkins@^0.28.0: + version "0.28.1" + resolved "https://registry.npmjs.org/jenkins/-/jenkins-0.28.1.tgz#f7951798ee5d2bb501a831979b6b5ecc1a922a64" + integrity sha512-gcC4QUrP4VzdqOMHoVzh36XlJprxJkI2HGLQSY7w84KoCTVNDcR/8O00tYyXp9vrZOx4wl5zCXLVKMgH2IoyJQ== + dependencies: + papi "^0.29.0" + +jest-changed-files@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.3.0.tgz#68fb2a7eb125f50839dab1f5a17db3607fe195b1" + integrity sha512-1C4R4nijgPltX6fugKxM4oQ18zimS7LqQ+zTTY8lMCMFPrxqBFb7KJH0Z2fRQJvw2Slbaipsqq7s1mgX5Iot+g== + dependencies: + "@jest/types" "^26.3.0" + execa "^4.0.0" + throat "^5.0.0" + +jest-cli@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-26.4.2.tgz#24afc6e4dfc25cde4c7ec4226fb7db5f157c21da" + integrity sha512-zb+lGd/SfrPvoRSC/0LWdaWCnscXc1mGYW//NP4/tmBvRPT3VntZ2jtKUONsRi59zc5JqmsSajA9ewJKFYp8Cw== + dependencies: + "@jest/core" "^26.4.2" + "@jest/test-result" "^26.3.0" + "@jest/types" "^26.3.0" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^26.4.2" + jest-util "^26.3.0" + jest-validate "^26.4.2" + prompts "^2.0.1" + yargs "^15.3.1" + +jest-config@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-26.4.2.tgz#da0cbb7dc2c131ffe831f0f7f2a36256e6086558" + integrity sha512-QBf7YGLuToiM8PmTnJEdRxyYy3mHWLh24LJZKVdXZ2PNdizSe1B/E8bVm+HYcjbEzGuVXDv/di+EzdO/6Gq80A== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^26.4.2" + "@jest/types" "^26.3.0" + babel-jest "^26.3.0" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.3.0" + jest-environment-node "^26.3.0" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.4.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.4.0" + jest-util "^26.3.0" + jest-validate "^26.4.2" + micromatch "^4.0.2" + pretty-format "^26.4.2" + +jest-css-modules@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/jest-css-modules/-/jest-css-modules-2.1.0.tgz#9c25ebe9d0214d8f55861a442268fdd4b01b4781" + integrity sha512-my3Scnt6l2tOll/eGwNZeh1KLAFkNzdl4MyZRdpl46GO6/93JcKKdTjNqK6Nokg8A8rT84MFLOpY1pzqKBEqMw== + dependencies: + identity-obj-proxy "3.0.0" + +jest-diff@^25.2.1: + version "25.5.0" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" + integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== + dependencies: + chalk "^3.0.0" + diff-sequences "^25.2.6" + jest-get-type "^25.2.6" + pretty-format "^25.5.0" + +jest-diff@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-26.4.2.tgz#a1b7b303bcc534aabdb3bd4a7caf594ac059f5aa" + integrity sha512-6T1XQY8U28WH0Z5rGpQ+VqZSZz8EN8rZcBtfvXaOkbwxIEeRre6qnuZQlbY1AJ4MKDxQF8EkrCvK+hL/VkyYLQ== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.3.0" + jest-get-type "^26.3.0" + pretty-format "^26.4.2" + +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== + dependencies: + detect-newline "^3.0.0" + +jest-each@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-each/-/jest-each-26.4.2.tgz#bb14f7f4304f2bb2e2b81f783f989449b8b6ffae" + integrity sha512-p15rt8r8cUcRY0Mvo1fpkOGYm7iI8S6ySxgIdfh3oOIv+gHwrHTy5VWCGOecWUhDsit4Nz8avJWdT07WLpbwDA== + dependencies: + "@jest/types" "^26.3.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.3.0" + pretty-format "^26.4.2" + +jest-environment-jsdom@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.3.0.tgz#3b749ba0f3a78e92ba2c9ce519e16e5dd515220c" + integrity sha512-zra8He2btIMJkAzvLaiZ9QwEPGEetbxqmjEBQwhH3CA+Hhhu0jSiEJxnJMbX28TGUvPLxBt/zyaTLrOPF4yMJA== + dependencies: + "@jest/environment" "^26.3.0" + "@jest/fake-timers" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + jest-mock "^26.3.0" + jest-util "^26.3.0" + jsdom "^16.2.2" + +jest-environment-node@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.3.0.tgz#56c6cfb506d1597f94ee8d717072bda7228df849" + integrity sha512-c9BvYoo+FGcMj5FunbBgtBnbR5qk3uky8PKyRVpSfe2/8+LrNQMiXX53z6q2kY+j15SkjQCOSL/6LHnCPLVHNw== + dependencies: + "@jest/environment" "^26.3.0" + "@jest/fake-timers" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + jest-mock "^26.3.0" + jest-util "^26.3.0" + +jest-esm-transformer@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/jest-esm-transformer/-/jest-esm-transformer-1.0.0.tgz#b6c58f496aa48194f96361a52f5c578fd2209726" + integrity sha512-FoPgeMMwy1/CEsc8tBI41i83CEO3x85RJuZi5iAMmWoARXhfgk6Jd7y+4d+z+HCkTKNVDvSWKGRhwjzU9PUbrw== + dependencies: + "@babel/core" "^7.4.4" + "@babel/plugin-transform-modules-commonjs" "^7.4.4" + +jest-fetch-mock@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/jest-fetch-mock/-/jest-fetch-mock-3.0.3.tgz#31749c456ae27b8919d69824f1c2bd85fe0a1f3b" + integrity sha512-Ux1nWprtLrdrH4XwE7O7InRY6psIi3GOsqNESJgMJ+M5cv4A8Lh7SN9d2V2kKRZ8ebAfcd1LNyZguAOb6JiDqw== + dependencies: + cross-fetch "^3.0.4" + promise-polyfill "^8.1.3" + +jest-get-type@^25.2.6: + version "25.2.6" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" + integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-haste-map@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.3.0.tgz#c51a3b40100d53ab777bfdad382d2e7a00e5c726" + integrity sha512-DHWBpTJgJhLLGwE5Z1ZaqLTYqeODQIZpby0zMBsCU9iRFHYyhklYqP4EiG73j5dkbaAdSZhgB938mL51Q5LeZA== + dependencies: + "@jest/types" "^26.3.0" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.3.0" + jest-util "^26.3.0" + jest-worker "^26.3.0" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.4.2.tgz#18a9d5bec30904267ac5e9797570932aec1e2257" + integrity sha512-z7H4EpCldHN1J8fNgsja58QftxBSL+JcwZmaXIvV9WKIM+x49F4GLHu/+BQh2kzRKHAgaN/E82od+8rTOBPyPA== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.3.0" + "@jest/source-map" "^26.3.0" + "@jest/test-result" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^26.4.2" + is-generator-fn "^2.0.0" + jest-each "^26.4.2" + jest-matcher-utils "^26.4.2" + jest-message-util "^26.3.0" + jest-runtime "^26.4.2" + jest-snapshot "^26.4.2" + jest-util "^26.3.0" + pretty-format "^26.4.2" + throat "^5.0.0" + +jest-leak-detector@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.4.2.tgz#c73e2fa8757bf905f6f66fb9e0070b70fa0f573f" + integrity sha512-akzGcxwxtE+9ZJZRW+M2o+nTNnmQZxrHJxX/HjgDaU5+PLmY1qnQPnMjgADPGCRPhB+Yawe1iij0REe+k/aHoA== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.4.2" + +jest-matcher-utils@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.4.2.tgz#fa81f3693f7cb67e5fc1537317525ef3b85f4b06" + integrity sha512-KcbNqWfWUG24R7tu9WcAOKKdiXiXCbMvQYT6iodZ9k1f7065k0keUOW6XpJMMvah+hTfqkhJhRXmA3r3zMAg0Q== + dependencies: + chalk "^4.0.0" + jest-diff "^26.4.2" + jest-get-type "^26.3.0" + pretty-format "^26.4.2" + +jest-message-util@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.3.0.tgz#3bdb538af27bb417f2d4d16557606fd082d5841a" + integrity sha512-xIavRYqr4/otGOiLxLZGj3ieMmjcNE73Ui+LdSW/Y790j5acqCsAdDiLIbzHCZMpN07JOENRWX5DcU+OQ+TjTA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.3.0" + "@types/stack-utils" "^1.0.1" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + slash "^3.0.0" + stack-utils "^2.0.2" + +jest-mock@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-26.3.0.tgz#ee62207c3c5ebe5f35b760e1267fee19a1cfdeba" + integrity sha512-PeaRrg8Dc6mnS35gOo/CbZovoDPKAeB1FICZiuagAgGvbWdNNyjQjkOaGUa/3N3JtpQ/Mh9P4A2D4Fv51NnP8Q== + dependencies: + "@jest/types" "^26.3.0" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + +jest-resolve-dependencies@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.4.2.tgz#739bdb027c14befb2fe5aabbd03f7bab355f1dc5" + integrity sha512-ADHaOwqEcVc71uTfySzSowA/RdxUpCxhxa2FNLiin9vWLB1uLPad3we+JSSROq5+SrL9iYPdZZF8bdKM7XABTQ== + dependencies: + "@jest/types" "^26.3.0" + jest-regex-util "^26.0.0" + jest-snapshot "^26.4.2" + +jest-resolve@^26.4.0: + version "26.4.0" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.4.0.tgz#6dc0af7fb93e65b73fec0368ca2b76f3eb59a6d7" + integrity sha512-bn/JoZTEXRSlEx3+SfgZcJAVuTMOksYq9xe9O6s4Ekg84aKBObEaVXKOEilULRqviSLAYJldnoWV9c07kwtiCg== + dependencies: + "@jest/types" "^26.3.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.3.0" + read-pkg-up "^7.0.1" + resolve "^1.17.0" + slash "^3.0.0" + +jest-runner@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-26.4.2.tgz#c3ec5482c8edd31973bd3935df5a449a45b5b853" + integrity sha512-FgjDHeVknDjw1gRAYaoUoShe1K3XUuFMkIaXbdhEys+1O4bEJS8Avmn4lBwoMfL8O5oFTdWYKcf3tEJyyYyk8g== + dependencies: + "@jest/console" "^26.3.0" + "@jest/environment" "^26.3.0" + "@jest/test-result" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^26.4.2" + jest-docblock "^26.0.0" + jest-haste-map "^26.3.0" + jest-leak-detector "^26.4.2" + jest-message-util "^26.3.0" + jest-resolve "^26.4.0" + jest-runtime "^26.4.2" + jest-util "^26.3.0" + jest-worker "^26.3.0" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.4.2.tgz#94ce17890353c92e4206580c73a8f0c024c33c42" + integrity sha512-4Pe7Uk5a80FnbHwSOk7ojNCJvz3Ks2CNQWT5Z7MJo4tX0jb3V/LThKvD9tKPNVNyeMH98J/nzGlcwc00R2dSHQ== + dependencies: + "@jest/console" "^26.3.0" + "@jest/environment" "^26.3.0" + "@jest/fake-timers" "^26.3.0" + "@jest/globals" "^26.4.2" + "@jest/source-map" "^26.3.0" + "@jest/test-result" "^26.3.0" + "@jest/transform" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^26.4.2" + jest-haste-map "^26.3.0" + jest-message-util "^26.3.0" + jest-mock "^26.3.0" + jest-regex-util "^26.0.0" + jest-resolve "^26.4.0" + jest-snapshot "^26.4.2" + jest-util "^26.3.0" + jest-validate "^26.4.2" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.3.1" + +jest-serializer@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.3.0.tgz#1c9d5e1b74d6e5f7e7f9627080fa205d976c33ef" + integrity sha512-IDRBQBLPlKa4flg77fqg0n/pH87tcRKwe8zxOVTWISxGpPHYkRZ1dXKyh04JOja7gppc60+soKVZ791mruVdow== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-snapshot@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.4.2.tgz#87d3ac2f2bd87ea8003602fbebd8fcb9e94104f6" + integrity sha512-N6Uub8FccKlf5SBFnL2Ri/xofbaA68Cc3MGjP/NuwgnsvWh+9hLIR/DhrxbSiKXMY9vUW5dI6EW1eHaDHqe9sg== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.3.0" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.4.2" + graceful-fs "^4.2.4" + jest-diff "^26.4.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.3.0" + jest-matcher-utils "^26.4.2" + jest-message-util "^26.3.0" + jest-resolve "^26.4.0" + natural-compare "^1.4.0" + pretty-format "^26.4.2" + semver "^7.3.2" + +jest-util@26.x, jest-util@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-26.3.0.tgz#a8974b191df30e2bf523ebbfdbaeb8efca535b3e" + integrity sha512-4zpn6bwV0+AMFN0IYhH/wnzIQzRaYVrz1A8sYnRnj4UXDXbOVtWmlaZkO9mipFqZ13okIfN87aDoJWB7VH6hcw== + dependencies: + "@jest/types" "^26.3.0" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-validate@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-26.4.2.tgz#e871b0dfe97747133014dcf6445ee8018398f39c" + integrity sha512-blft+xDX7XXghfhY0mrsBCYhX365n8K5wNDC4XAcNKqqjEzsRUSXP44m6PL0QJEW2crxQFLLztVnJ4j7oPlQrQ== + dependencies: + "@jest/types" "^26.3.0" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + leven "^3.1.0" + pretty-format "^26.4.2" + +jest-watcher@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.3.0.tgz#f8ef3068ddb8af160ef868400318dc4a898eed08" + integrity sha512-XnLdKmyCGJ3VoF6G/p5ohbJ04q/vv5aH9ENI+i6BL0uu9WWB6Z7Z2lhQQk0d2AVZcRGp1yW+/TsoToMhBFPRdQ== + dependencies: + "@jest/test-result" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.3.0" + string-length "^4.0.1" + +jest-worker@^25.4.0: + version "25.5.0" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" + integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw== + dependencies: + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest-worker@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz#7c8a97e4f4364b4f05ed8bca8ca0c24de091871f" + integrity sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@^26.0.1: + version "26.4.2" + resolved "https://registry.npmjs.org/jest/-/jest-26.4.2.tgz#7e8bfb348ec33f5459adeaffc1a25d5752d9d312" + integrity sha512-LLCjPrUh98Ik8CzW8LLVnSCfLaiY+wbK53U7VxnFSX7Q+kWC4noVeDvGWIFw0Amfq1lq2VfGm7YHWSLBV62MJw== + dependencies: + "@jest/core" "^26.4.2" + import-local "^3.0.2" + jest-cli "^26.4.2" + +joi@^17.1.1: + version "17.2.1" + resolved "https://registry.npmjs.org/joi/-/joi-17.2.1.tgz#e5140fdf07e8fecf9bc977c2832d1bdb1e3f2a0a" + integrity sha512-YT3/4Ln+5YRpacdmfEfrrKh50/kkgX3LgBltjqnlMPIYiZ4hxXZuVJcxmsvxsdeHg9soZfE3qXxHC2tMpCCBOA== + dependencies: + "@hapi/address" "^4.1.0" + "@hapi/formula" "^2.0.0" + "@hapi/hoek" "^9.0.0" + "@hapi/pinpoint" "^2.0.0" + "@hapi/topo" "^5.0.0" + +jose@^1.27.1: + version "1.28.0" + resolved "https://registry.npmjs.org/jose/-/jose-1.28.0.tgz#0803f8c71f43cd293a9d931c555c30531f5ca5dc" + integrity sha512-JmfDRzt/HSj8ipd9TsDtEHoLUnLYavG+7e8F6s1mx2jfVSfXOTaFQsJUydbjJpTnTDHP1+yKL9Ke7ktS/a0Eiw== + dependencies: + "@panva/asn1.js" "^1.0.0" + +joycon@^2.2.5: + version "2.2.5" + resolved "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz#8d4cf4cbb2544d7b7583c216fcdfec19f6be1615" + integrity sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ== + +jpegtran-bin@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-4.0.0.tgz#d00aed809fba7aa6f30817e59eee4ddf198f8f10" + integrity sha512-2cRl1ism+wJUoYAYFt6O/rLBfpXNWG2dUWbgcEkTt5WGMnqI46eEro8T4C5zGROxKRqyKpCBSdHPvt5UYCtxaQ== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.0" + logalot "^2.0.0" + +js-cookie@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" + integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== + +js-file-download@^0.4.1: + version "0.4.12" + resolved "https://registry.npmjs.org/js-file-download/-/js-file-download-0.4.12.tgz#10c70ef362559a5b23cdbdc3bd6f399c3d91d821" + integrity sha512-rML+NkoD08p5Dllpjo0ffy4jRHeY6Zsapvr/W86N7E0yuzAO6qa5X9+xog6zQNlH102J7IXljNY2FtS6Lj3ucg== + +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= + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + 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.1, js-yaml@^3.14.0, js-yaml@^3.8.1, js-yaml@^3.8.3: + version "3.14.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@11.12.0: + version "11.12.0" + resolved "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== + dependencies: + abab "^2.0.0" + acorn "^5.5.3" + acorn-globals "^4.1.0" + array-equal "^1.0.0" + cssom ">= 0.3.2 < 0.4.0" + cssstyle "^1.0.0" + data-urls "^1.0.0" + domexception "^1.0.1" + escodegen "^1.9.1" + html-encoding-sniffer "^1.0.2" + left-pad "^1.3.0" + nwsapi "^2.0.7" + parse5 "4.0.0" + pn "^1.1.0" + request "^2.87.0" + request-promise-native "^1.0.5" + sax "^1.2.4" + symbol-tree "^3.2.2" + tough-cookie "^2.3.4" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.3" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^5.2.0" + xml-name-validator "^3.0.0" + +jsdom@^16.2.2: + version "16.4.0" + resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb" + integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w== + dependencies: + abab "^2.0.3" + acorn "^7.1.1" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.2.0" + data-urls "^2.0.0" + decimal.js "^10.2.0" + domexception "^2.0.1" + escodegen "^1.14.1" + html-encoding-sniffer "^2.0.1" + is-potential-custom-element-name "^1.0.0" + nwsapi "^2.2.0" + parse5 "5.1.1" + request "^2.88.2" + request-promise-native "^1.0.8" + saxes "^5.0.0" + symbol-tree "^3.2.4" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + ws "^7.2.3" + xml-name-validator "^3.0.0" + +jsdom@^8.1.0: + version "8.5.0" + resolved "https://registry.npmjs.org/jsdom/-/jsdom-8.5.0.tgz#d4d8f5dbf2768635b62a62823b947cf7071ebc98" + integrity sha1-1Nj12/J2hjW2KmKCO5R89wcevJg= + dependencies: + abab "^1.0.0" + acorn "^2.4.0" + acorn-globals "^1.0.4" + array-equal "^1.0.0" + cssom ">= 0.3.0 < 0.4.0" + cssstyle ">= 0.2.34 < 0.3.0" + escodegen "^1.6.1" + iconv-lite "^0.4.13" + nwmatcher ">= 1.3.7 < 2.0.0" + parse5 "^1.5.1" + request "^2.55.0" + sax "^1.1.4" + symbol-tree ">= 3.1.0 < 4.0.0" + tough-cookie "^2.2.0" + webidl-conversions "^3.0.1" + whatwg-url "^2.0.1" + xml-name-validator ">= 2.0.1 < 3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz#371873c5ffa44304a6ba12419bcfa95f404ae081" + integrity sha512-o3aP+RsWDJZayj1SbHNQAI8x0v3T3SKiGoZlNYfbUP1S3omJQ6i9CnqADqkSPaOAxwua4/1YWx5CM7oiChJt2Q== + +json-pointer@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.0.tgz#8e500550a6aac5464a473377da57aa6cc22828d7" + integrity sha1-jlAFUKaqxUZKRzN32leqbMIoKNc= + dependencies: + foreach "^2.0.4" + +json-schema-compare@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz#dd601508335a90c7f4cfadb6b2e397225c908e56" + integrity sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ== + dependencies: + lodash "^4.17.4" + +json-schema-merge-allof@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.6.0.tgz#64d48820fec26b228db837475ce3338936bf59a5" + integrity sha512-LEw4VMQVRceOPLuGRWcxW5orTTiR9ZAtqTAe4rQUjNADTeR81bezBVFa0MqIwp0YmHIM1KkhSjZM7o+IQhaPbQ== + dependencies: + compute-lcm "^1.1.0" + json-schema-compare "^0.2.2" + lodash "^4.17.4" + +json-schema-migrate@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/json-schema-migrate/-/json-schema-migrate-0.2.0.tgz#ba47a5b0072fc72396460e1bd60b44d52178bbc6" + integrity sha1-ukelsAcvxyOWRg4b1gtE1SF4u8Y= + dependencies: + ajv "^5.0.0" + +json-schema-ref-parser@^9.0.6: + version "9.0.6" + resolved "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz#fc89a5e6b853f2abe8c0af30d3874196526adb60" + integrity sha512-z0JGv7rRD3CnJbZY/qCpscyArdtLJhr/wRBmFUdoZ8xMjsFyNdILSprG2degqRLjBjyhZHAEBpGOxniO9rKTxA== + dependencies: + "@apidevtools/json-schema-ref-parser" "9.0.6" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-schema@^0.2.5: + version "0.2.5" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.5.tgz#97997f50972dd0500214e208c407efa4b5d7063b" + integrity sha512-gWJOWYFrhQ8j7pVm0EM8Slr+EPVq1Phf6lvzvD/WCeqkrx/f2xBI0xOsRRS9xCn3I4vKtP519dvs3TP09r24wQ== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json-to-ast@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/json-to-ast/-/json-to-ast-2.1.0.tgz#041a9fcd03c0845036acb670d29f425cea4faaf9" + integrity sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ== + dependencies: + code-error-fragment "0.0.230" + grapheme-splitter "^1.0.4" + +json3@^3.3.2: + version "3.3.3" + resolved "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + +json5@2.x, json5@^2.1.0, json5@^2.1.1, json5@^2.1.2: + version "2.1.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" + integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== + dependencies: + universalify "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + +jsonpointer@^4.0.1: + version "4.1.0" + resolved "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.1.0.tgz#501fb89986a2389765ba09e6053299ceb4f2c2cc" + integrity sha512-CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg== + +jspdf-autotable@3.5.3: + version "3.5.3" + resolved "https://registry.npmjs.org/jspdf-autotable/-/jspdf-autotable-3.5.3.tgz#2f73adb07f340e7dbf22950e3e6c8bf853991479" + integrity sha512-K+cNWW3x6w0R/1B5m6PYOm6v8CTTDXy/g32lZouc7SuC6zhvzMN2dauhk6dDYxPD0pky0oyPIJFwSJ/tV8PAeg== + +jspdf@1.5.3: + version "1.5.3" + resolved "https://registry.npmjs.org/jspdf/-/jspdf-1.5.3.tgz#5a12c011479defabef5735de55c913060ed219f2" + integrity sha512-J9X76xnncMw+wIqb15HeWfPMqPwYxSpPY8yWPJ7rAZN/ZDzFkjCSZObryCyUe8zbrVRNiuCnIeQteCzMn7GnWw== + dependencies: + canvg "1.5.3" + file-saver eligrey/FileSaver.js#1.3.8 + html2canvas "1.0.0-alpha.12" + omggif "1.0.7" + promise-polyfill "8.1.0" + stackblur-canvas "2.2.0" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jss-plugin-camel-case@^10.0.3: + version "10.4.0" + resolved "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.4.0.tgz#46c75ff7fd61c304984c21af5817823f0f501ceb" + integrity sha512-9oDjsQ/AgdBbMyRjc06Kl3P8lDCSEts2vYZiPZfGAxbGCegqE4RnMob3mDaBby5H9vL9gWmyyImhLRWqIkRUCw== + dependencies: + "@babel/runtime" "^7.3.1" + hyphenate-style-name "^1.0.3" + jss "10.4.0" + +jss-plugin-default-unit@^10.0.3: + version "10.4.0" + resolved "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.4.0.tgz#2b10f01269eaea7f36f0f5fd1cfbfcc76ed42854" + integrity sha512-BYJ+Y3RUYiMEgmlcYMLqwbA49DcSWsGgHpVmEEllTC8MK5iJ7++pT9TnKkKBnNZZxTV75ycyFCR5xeLSOzVm4A== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.4.0" + +jss-plugin-global@^10.0.3: + version "10.4.0" + resolved "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.4.0.tgz#19449425a94e4e74e113139b629fd44d3577f97d" + integrity sha512-b8IHMJUmv29cidt3nI4bUI1+Mo5RZE37kqthaFpmxf5K7r2aAegGliAw4hXvA70ca6ckAoXMUl4SN/zxiRcRag== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.4.0" + +jss-plugin-nested@^10.0.3: + version "10.4.0" + resolved "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.4.0.tgz#017d0c02c0b6b454fd9d7d3fc33470a15eea9fd1" + integrity sha512-cKgpeHIxAP0ygeWh+drpLbrxFiak6zzJ2toVRi/NmHbpkNaLjTLgePmOz5+67ln3qzJiPdXXJB1tbOyYKAP4Pw== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.4.0" + tiny-warning "^1.0.2" + +jss-plugin-props-sort@^10.0.3: + version "10.4.0" + resolved "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.4.0.tgz#7110bf0b6049cc2080b220b506532bf0b70c0e07" + integrity sha512-j/t0R40/2fp+Nzt6GgHeUFnHVY2kPGF5drUVlgkcwYoHCgtBDOhTTsOfdaQFW6sHWfoQYgnGV4CXdjlPiRrzwA== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.4.0" + +jss-plugin-rule-value-function@^10.0.3: + version "10.4.0" + resolved "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.4.0.tgz#7cff4a91e84973536fa49b6ebbdbf7f339b01c82" + integrity sha512-w8504Cdfu66+0SJoLkr6GUQlEb8keHg8ymtJXdVHWh0YvFxDG2l/nS93SI5Gfx0fV29dO6yUugXnKzDFJxrdFQ== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.4.0" + tiny-warning "^1.0.2" + +jss-plugin-vendor-prefixer@^10.0.3: + version "10.4.0" + resolved "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.4.0.tgz#2a78f3c5d57d1e024fe7ad7c41de34d04e72ecc0" + integrity sha512-DpF+/a+GU8hMh/948sBGnKSNfKkoHg2p9aRFUmyoyxgKjOeH9n74Ht3Yt8lOgdZsuWNJbPrvaa3U4PXKwxVpTQ== + dependencies: + "@babel/runtime" "^7.3.1" + css-vendor "^2.0.8" + jss "10.4.0" + +jss@10.4.0, jss@^10.0.3: + version "10.4.0" + resolved "https://registry.npmjs.org/jss/-/jss-10.4.0.tgz#473a6fbe42e85441020a07e9519dac1e8a2e79ca" + integrity sha512-l7EwdwhsDishXzqTc3lbsbyZ83tlUl5L/Hb16pHCvZliA9lRDdNBZmHzeJHP0sxqD0t1mrMmMR8XroR12JBYzw== + dependencies: + "@babel/runtime" "^7.3.1" + csstype "^3.0.2" + is-in-browser "^1.1.3" + tiny-warning "^1.0.2" + +jsx-ast-utils@^2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz#1114a4c1209481db06c690c2b4f488cc665f657e" + integrity sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w== + dependencies: + array-includes "^3.1.1" + object.assign "^4.1.0" + +jwt-decode@2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/jwt-decode/-/jwt-decode-2.2.0.tgz#7d86bd56679f58ce6a84704a657dd392bba81a79" + integrity sha1-fYa9VmefWM5qhHBKZX3TkruoGnk= + +keyv@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" + integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== + dependencies: + json-buffer "3.0.0" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +keyv@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.0.1.tgz#9fe703cb4a94d6d11729d320af033307efd02ee6" + integrity sha512-xz6Jv6oNkbhrFCvCP7HQa8AaII8y8LRpoSm661NOKLr4uHuBwhX4epXrPQgF3+xdJnN4Esm5X0xwY4bOlALOtw== + dependencies: + json-buffer "3.0.1" + +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" + integrity sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU= + dependencies: + is-buffer "^1.0.2" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= + optionalDependencies: + graceful-fs "^4.1.9" + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +knex@^0.21.1: + version "0.21.5" + resolved "https://registry.npmjs.org/knex/-/knex-0.21.5.tgz#c4be1958488f348aed3510aa4b7115639ee1bd01" + integrity sha512-cQj7F2D/fu03eTr6ZzYCYKdB9w7fPYlvTiU/f2OeXay52Pq5PwD+NAkcf40WDnppt/4/4KukROwlMOaE7WArcA== + dependencies: + colorette "1.2.1" + commander "^5.1.0" + debug "4.1.1" + esm "^3.2.25" + getopts "2.2.5" + inherits "~2.0.4" + interpret "^2.2.0" + liftoff "3.1.0" + lodash "^4.17.20" + mkdirp "^1.0.4" + pg-connection-string "2.3.0" + tarn "^3.0.0" + tildify "2.0.0" + uuid "^7.0.3" + v8flags "^3.2.0" + +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + +language-subtag-registry@~0.3.2: + version "0.3.20" + resolved "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.20.tgz#a00a37121894f224f763268e431c55556b0c0755" + integrity sha512-KPMwROklF4tEx283Xw0pNKtfTj1gZ4UByp4EsIFWLgBavJltF4TiYPc39k06zSTsLzxTVXXDSpbwaQXaFB4Qeg== + +language-tags@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= + dependencies: + language-subtag-registry "~0.3.2" + +latest-version@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +lazy-ass@1.6.0, lazy-ass@^1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" + integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= + +lazy-cache@^0.2.3: + version "0.2.7" + resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" + integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U= + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= + +lazy-cache@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264" + integrity sha1-uRkKT5EzVGlIQIWfio9whNiCImQ= + dependencies: + set-getter "^0.1.0" + +lazy-universal-dotenv@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz#a6c8938414bca426ab8c9463940da451a911db38" + integrity sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ== + dependencies: + "@babel/runtime" "^7.5.0" + app-root-dir "^1.0.2" + core-js "^3.0.4" + dotenv "^8.0.0" + dotenv-expand "^5.1.0" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + dependencies: + invert-kv "^1.0.0" + +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== + +lerna@^3.20.2: + version "3.22.1" + resolved "https://registry.npmjs.org/lerna/-/lerna-3.22.1.tgz#82027ac3da9c627fd8bf02ccfeff806a98e65b62" + integrity sha512-vk1lfVRFm+UuEFA7wkLKeSF7Iz13W+N/vFd48aW2yuS7Kv0RbNm2/qcDPV863056LMfkRlsEe+QYOw3palj5Lg== + dependencies: + "@lerna/add" "3.21.0" + "@lerna/bootstrap" "3.21.0" + "@lerna/changed" "3.21.0" + "@lerna/clean" "3.21.0" + "@lerna/cli" "3.18.5" + "@lerna/create" "3.22.0" + "@lerna/diff" "3.21.0" + "@lerna/exec" "3.21.0" + "@lerna/import" "3.22.0" + "@lerna/info" "3.21.0" + "@lerna/init" "3.21.0" + "@lerna/link" "3.21.0" + "@lerna/list" "3.21.0" + "@lerna/publish" "3.22.1" + "@lerna/run" "3.21.0" + "@lerna/version" "3.22.1" + import-local "^2.0.0" + npmlog "^4.1.2" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levenary@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" + integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== + dependencies: + leven "^3.1.0" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +liftoff@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3" + integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog== + dependencies: + extend "^3.0.0" + findup-sync "^3.0.0" + fined "^1.0.1" + flagged-respawn "^1.0.0" + is-plain-object "^2.0.4" + object.map "^1.0.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +linkify-it@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" + integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== + dependencies: + uc.micro "^1.0.1" + +lint-staged@^10.1.0: + version "10.2.13" + resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-10.2.13.tgz#b9c504683470edfc464b7d3fe3845a5a1efcd814" + integrity sha512-conwlukNV6aL9SiMWjFtDp5exeDnTMekdNPDZsKGnpfQuHcO0E3L3Bbf58lcR+M7vk6LpCilxDAVks/DDVBYlA== + dependencies: + chalk "^4.1.0" + cli-truncate "^2.1.0" + commander "^6.0.0" + cosmiconfig "^7.0.0" + debug "^4.1.1" + dedent "^0.7.0" + enquirer "^2.3.6" + execa "^4.0.3" + listr2 "^2.6.0" + log-symbols "^4.0.0" + micromatch "^4.0.2" + normalize-path "^3.0.0" + please-upgrade-node "^3.2.0" + string-argv "0.3.1" + stringify-object "^3.3.0" + +list-item@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/list-item/-/list-item-1.1.1.tgz#0c65d00e287cb663ccb3cb3849a77e89ec268a56" + integrity sha1-DGXQDih8tmPMs8s4Sad+iewmilY= + dependencies: + expand-range "^1.8.1" + extend-shallow "^2.0.1" + is-number "^2.1.0" + repeat-string "^1.5.2" + +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= + +listr-update-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" + integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^2.3.0" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" + integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== + dependencies: + chalk "^2.4.1" + cli-cursor "^2.1.0" + date-fns "^1.27.2" + figures "^2.0.0" + +listr2@^2.6.0: + version "2.6.2" + resolved "https://registry.npmjs.org/listr2/-/listr2-2.6.2.tgz#4912eb01e1e2dd72ec37f3895a56bf2622d6f36a" + integrity sha512-6x6pKEMs8DSIpA/tixiYY2m/GcbgMplMVmhQAaLFxEtNSKLeWTGjtmU57xvv6QCm2XcqzyNXL/cTSVf4IChCRA== + dependencies: + chalk "^4.1.0" + cli-truncate "^2.1.0" + figures "^3.2.0" + indent-string "^4.0.0" + log-update "^4.0.0" + p-map "^4.0.0" + rxjs "^6.6.2" + through "^2.3.8" + +listr@^0.14.3: + version "0.14.3" + resolved "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" + integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== + dependencies: + "@samverschueren/stream-to-observable" "^0.3.0" + is-observable "^1.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.5.0" + listr-verbose-renderer "^0.5.0" + p-map "^2.0.0" + rxjs "^6.3.3" + +livereload-js@^2.3.0: + version "2.4.0" + resolved "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" + integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw== + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +load-json-file@^5.3.0: + version "5.3.0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" + integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== + dependencies: + graceful-fs "^4.1.15" + parse-json "^4.0.0" + pify "^4.0.1" + strip-bom "^3.0.0" + type-fest "^0.3.0" + +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +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@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: + version "1.4.0" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash-es@^4.17.11, lodash-es@^4.2.1: + version "4.17.15" + resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" + integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ== + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + +lodash.assign@^4.1.0, lodash.assign@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= + +lodash.assignin@^4.0.9: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= + +lodash.bind@^4.1.4: + version "4.2.1" + resolved "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" + integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + +lodash.chunk@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc" + integrity sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw= + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.debounce@^4, lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash.defaults@^4.0.1: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + +lodash.filter@^4.4.0: + version "4.6.0" + resolved "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= + +lodash.flatten@^4.2.0, lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + +lodash.flattendeep@^4.0.0: + version "4.4.0" + resolved "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= + +lodash.foreach@^4.3.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.ismatch@^4.4.0: + version "4.4.0" + resolved "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= + +lodash.map@^4.4.0: + version "4.6.0" + resolved "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + +lodash.memoize@4.x, lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.merge@^4.4.0: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.once@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + +lodash.padstart@^4.6.1: + version "4.6.1" + resolved "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" + integrity sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs= + +lodash.pick@^4.2.1: + version "4.4.0" + resolved "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + +lodash.reduce@^4.4.0: + version "4.6.0" + resolved "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" + integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= + +lodash.reject@^4.4.0: + version "4.6.0" + resolved "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" + integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= + +lodash.set@^4.3.2: + version "4.3.2" + resolved "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" + integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM= + +lodash.some@^4.4.0: + version "4.6.0" + resolved "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.template@^4.0.2, lodash.template@^4.4.0, lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash.throttle@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= + +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= + +lodash.without@^4.4.0: + version "4.4.0" + resolved "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" + integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= + +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.2.1, lodash@~4.17.10: + version "4.17.20" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= + dependencies: + chalk "^1.0.0" + +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + +log-symbols@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + +log-update@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" + integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= + dependencies: + ansi-escapes "^3.0.0" + cli-cursor "^2.0.0" + wrap-ansi "^3.0.1" + +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +logalot@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552" + integrity sha1-X46MkNME7fElMJUaVVSruMXj9VI= + dependencies: + figures "^1.3.5" + squeak "^1.0.0" + +logform@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz#40f036d19161fc76b68ab50fdc7fe495544492f2" + integrity sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg== + dependencies: + colors "^1.2.1" + fast-safe-stringify "^2.0.4" + fecha "^4.2.0" + ms "^2.1.1" + triple-beam "^1.3.0" + +loglevel@^1.6.7, loglevel@^1.6.8: + version "1.7.0" + resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0" + integrity sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ== + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +longest@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lower-case@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz#39eeb36e396115cc05e29422eaea9e692c9408c7" + integrity sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ== + dependencies: + tslib "^1.10.0" + +lowercase-keys@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lowlight@^1.14.0: + version "1.14.0" + resolved "https://registry.npmjs.org/lowlight/-/lowlight-1.14.0.tgz#83ebc143fec0f9e6c0d3deffe01be129ce56b108" + integrity sha512-N2E7zTM7r1CwbzwspPxJvmjAbxljCPThTFawEX2Z7+P3NGrrvY54u8kyU16IY4qWfoVIxY8SYCS8jTkuG7TqYA== + dependencies: + fault "^1.0.0" + highlight.js "~10.1.0" + +lowlight@~1.11.0: + version "1.11.0" + resolved "https://registry.npmjs.org/lowlight/-/lowlight-1.11.0.tgz#1304d83005126d4e8b1dc0f07981e9b689ec2efc" + integrity sha512-xrGGN6XLL7MbTMdPD6NfWPwY43SNkjf/d0mecSx/CW36fUZTjRHEq0/Cdug3TWKtRXLWi7iMl1eP0olYxj/a4A== + dependencies: + fault "^1.0.2" + highlight.js "~9.13.0" + +lpad-align@^1.0.1: + version "1.1.2" + resolved "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz#21f600ac1c3095c3c6e497ee67271ee08481fe9e" + integrity sha1-IfYArBwwlcPG5JfuZyce4ISB/p4= + dependencies: + get-stdin "^4.0.1" + indent-string "^2.1.0" + longest "^1.0.0" + meow "^3.3.0" + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.0.0, lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-queue@0.1: + version "0.1.0" + resolved "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= + dependencies: + es5-ext "~0.10.2" + +macos-release@^2.2.0: + version "2.4.1" + resolved "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz#64033d0ec6a5e6375155a74b1a1eba8e509820ac" + integrity sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg== + +magic-string@^0.25.2: + version "0.25.7" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + +make-dir@^1.0.0, make-dir@^1.2.0: + version "1.3.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0, make-dir@^3.0.2: + 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.x, make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +make-fetch-happen@^5.0.0: + version "5.0.2" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz#aa8387104f2687edca01c8687ee45013d02d19bd" + integrity sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag== + dependencies: + agentkeepalive "^3.4.1" + cacache "^12.0.0" + http-cache-semantics "^3.8.1" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + node-fetch-npm "^2.0.2" + promise-retry "^1.1.1" + socks-proxy-agent "^4.0.0" + ssri "^6.0.0" + +make-iterator@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" + integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== + dependencies: + kind-of "^6.0.2" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +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" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= + +map-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" + integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== + +map-or-similar@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08" + integrity sha1-beJlMXSt+12e3DPGnT6Sobdvrwg= + +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + 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" + integrity sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg== + dependencies: + argparse "^1.0.7" + entities "~2.0.0" + linkify-it "^2.0.0" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +markdown-it@^9.1.0: + version "9.1.0" + resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-9.1.0.tgz#df9601c168568704d554b1fff9af0c5b561168d9" + integrity sha512-xHKG4C8iPriyfu/jc2hsCC045fKrMQ0VexX2F1FGYiRxDxqMB2aAhF8WauJ3fltn2kb90moGBkiiEdooGIg55w== + dependencies: + argparse "^1.0.7" + entities "~1.1.1" + linkify-it "^2.0.0" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +markdown-link@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz#32c5c65199a6457316322d1e4229d13407c8c7cf" + integrity sha1-MsXGUZmmRXMWMi0eQinRNAfIx88= + +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-toc@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/markdown-toc/-/markdown-toc-1.2.0.tgz#44a15606844490314afc0444483f9e7b1122c339" + integrity sha512-eOsq7EGd3asV0oBfmyqngeEIhrbkc7XVP63OwcJBIhH2EpG2PzFcbZdhy1jutXSlRBBVMNXHvMtSr5LAxSUvUg== + dependencies: + concat-stream "^1.5.2" + diacritics-map "^0.1.0" + gray-matter "^2.1.0" + lazy-cache "^2.0.2" + list-item "^1.1.1" + markdown-link "^0.1.1" + minimist "^1.2.0" + mixin-deep "^1.1.3" + object.pick "^1.2.0" + remarkable "^1.7.1" + repeat-string "^1.6.1" + strip-color "^0.1.0" + +material-table@1.68.0: + version "1.68.0" + resolved "https://registry.npmjs.org/material-table/-/material-table-1.68.0.tgz#275c3d9a885c40ae4bc5a7461c00e877f92397b9" + integrity sha512-dyJJaVsS3m+i6sn71AvYcVdA1P9X1XiUOM2PekfvEeeMtkdQb66oChGkk77ndYi3Ja6j4DovGVNrgeVLwXLZiw== + dependencies: + "@date-io/date-fns" "^1.1.0" + "@material-ui/pickers" "^3.2.2" + classnames "^2.2.6" + date-fns "^2.0.0-alpha.27" + debounce "^1.2.0" + fast-deep-equal "2.0.1" + filefy "0.1.10" + jspdf "1.5.3" + jspdf-autotable "3.5.3" + prop-types "^15.6.2" + react-beautiful-dnd "^13.0.0" + react-double-scrollbar "0.0.15" + +math-random@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdast-add-list-metadata@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz#95e73640ce2fc1fa2dcb7ec443d09e2bfe7db4cf" + integrity sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA== + dependencies: + unist-util-visit-parents "1.1.2" + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +mdn-data@2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" + integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== + +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +memoize-one@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0" + integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA== + +memoizee@^0.4.12: + version "0.4.14" + resolved "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57" + integrity sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg== + dependencies: + d "1" + es5-ext "^0.10.45" + es6-weak-map "^2.0.2" + event-emitter "^0.3.5" + is-promise "^2.1" + lru-queue "0.1" + next-tick "1" + timers-ext "^0.1.5" + +memoizerific@^1.11.3: + version "1.11.3" + resolved "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz#7c87a4646444c32d75438570905f2dbd1b1a805a" + integrity sha1-fIekZGREwy11Q4VwkF8tvRsagFo= + dependencies: + map-or-similar "^1.5.0" + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +meow@^3.3.0: + version "3.7.0" + resolved "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +meow@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" + integrity sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A== + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist "^1.1.3" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + +meow@^7.0.0: + version "7.1.1" + resolved "https://registry.npmjs.org/meow/-/meow-7.1.1.tgz#7c01595e3d337fcb0ec4e8eed1666ea95903d306" + integrity sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^2.5.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.13.1" + yargs-parser "^18.1.3" + +merge-deep@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz#f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2" + integrity sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA== + dependencies: + arr-union "^3.1.0" + clone-deep "^0.2.4" + kind-of "^3.0.2" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.2.3, merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +merge@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" + integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== + +methods@^1.0.0, methods@^1.1.1, methods@^1.1.2, methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +metric-lcs@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/metric-lcs/-/metric-lcs-0.1.2.tgz#87913f149410e39c7c5a19037512814eaf155e11" + integrity sha512-+TZ5dUDPKPJaU/rscTzxyN8ZkX7eAVLAiQU/e+YINleXPv03SCmJShaMT1If1liTH8OcmWXZs0CmzCBRBLcMpA== + +microevent.ts@~0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" + integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== + +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.0, micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.44.0, "mime-db@>= 1.43.0 < 2", mime-db@^1.28.0: + version "1.44.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== + +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== + +mime-types@2.1.18: + version "2.1.18" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== + dependencies: + mime-db "~1.33.0" + +mime-types@^2.1.12, mime-types@^2.1.26, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.27" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== + dependencies: + mime-db "1.44.0" + +mime@1.6.0, mime@^1.4.1: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.3.1, mime@^2.4.4: + version "2.4.6" + resolved "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" + integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +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" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^2.0.0, mimic-response@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +mini-css-extract-plugin@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.7.0.tgz#5ba8290fbb4179a43dd27cca444ba150bee743a0" + integrity sha512-RQIw6+7utTYn8DBGsf/LpRgZCJMpZt+kuawJ/fju0KiOL6nAaTBNmCJwS7HtwSCXfS47gCkmtBFS7HdsquhdxQ== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +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== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: + version "3.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist-options@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist-options@^3.0.1: + version "3.0.2" + resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + +minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2: + version "1.2.4" + resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1: + version "3.1.3" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== + dependencies: + yallist "^4.0.0" + +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mitt@^1.1.2: + version "1.2.0" + resolved "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz#cb24e6569c806e31bd4e3995787fe38a04fdf90d" + integrity sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw== + +mixin-deep@^1.1.3, mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mixin-object@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" + integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4= + dependencies: + for-in "^0.1.3" + is-extendable "^0.1.1" + +mkdirp-classic@^0.5.2: + version "0.5.3" + resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp-promise@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= + dependencies: + mkdirp "*" + +mkdirp@*, mkdirp@1.x, mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +modify-values@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" + integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== + +moment@^2.25.3, moment@^2.26.0, moment@^2.27.0: + version "2.27.0" + resolved "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d" + integrity sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ== + +monaco-editor@^0.20.0: + version "0.20.0" + resolved "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.20.0.tgz#5d5009343a550124426cb4d965a4d27a348b4dea" + integrity sha512-hkvf4EtPJRMQlPC3UbMoRs0vTAFAYdzFQ+gpMb8A+9znae1c43q8Mab9iVsgTcg/4PNiLGGn3SlDIa8uvK1FIQ== + +monaco-graphql@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/monaco-graphql/-/monaco-graphql-0.2.0.tgz#be6bd165b6cbdc624fde6c108fe9ee32f50f2e80" + integrity sha512-IwpbJvrNlFxq6xjnQQ8eC72ep+q2vfiUaHBNkfqe314CXYnUCcXYfoMBfR5EuLAXRBOTf4CKl6BCN1/9eHrq7A== + dependencies: + graphql-language-service "^3.0.0" + graphql-language-service-utils "^2.4.0" + monaco-editor "^0.20.0" + +morgan@^1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" + integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== + dependencies: + basic-auth "~2.0.1" + debug "2.6.9" + depd "~2.0.0" + on-finished "~2.3.0" + on-headers "~1.0.2" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.0.0, ms@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +msw@^0.20.5: + version "0.20.5" + resolved "https://registry.npmjs.org/msw/-/msw-0.20.5.tgz#b6141080c0d8b17c451d9ca36c28cc47b4ac487a" + integrity sha512-hmEsey5BbVicMGt7aOh/GZ9ltga5N3tK6NiJXnbfCkAGKgnAVnjASr3i7Z+sWlZyY5uuMUFyLCEcqrlXxC6qIA== + dependencies: + "@open-draft/until" "^1.0.3" + "@types/cookie" "^0.4.0" + chalk "^4.1.0" + cookie "^0.4.1" + graphql "^15.3.0" + headers-utils "^1.2.0" + node-fetch "^2.6.0" + node-match-path "^0.4.4" + node-request-interceptor "^0.3.5" + statuses "^2.0.0" + yargs "^15.4.1" + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +multimatch@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" + integrity sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA== + dependencies: + array-differ "^2.0.3" + array-union "^1.0.2" + arrify "^1.0.1" + minimatch "^3.0.4" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +mute-stream@0.0.8, mute-stream@~0.0.4: + version "0.0.8" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +mz@^2.5.0, mz@^2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nan@^2.12.1, nan@^2.14.0: + version "2.14.1" + resolved "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== + +nano-css@^5.1.0, nano-css@^5.2.1: + version "5.3.0" + resolved "https://registry.npmjs.org/nano-css/-/nano-css-5.3.0.tgz#9d3cd29788d48b6a07f52aa4aec7cf4da427b6b5" + integrity sha512-uM/9NGK9/E9/sTpbIZ/bQ9xOLOIHZwrrb/CRlbDHBU/GFS7Gshl24v/WJhwsVViWkpOXUmiZ66XO7fSB4Wd92Q== + dependencies: + css-tree "^1.0.0-alpha.28" + csstype "^2.5.5" + fastest-stable-stringify "^1.0.1" + inline-style-prefixer "^4.0.0" + rtl-css-js "^1.9.0" + sourcemap-codec "^1.4.1" + stacktrace-js "^2.0.0" + stylis "3.5.0" + +nanoid@^2.1.0: + version "2.1.11" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" + integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +needle@^2.2.1: + version "2.5.0" + resolved "https://registry.npmjs.org/needle/-/needle-2.5.0.tgz#e6fc4b3cc6c25caed7554bd613a5cf0bac8c31c0" + integrity sha512-o/qITSDR0JCyCKEQ1/1bnUXMmznxabbwi/Y4WwJElf+evwJNFNwIDMCCt5IigFVxgeGBJESLohGtIS9gEzo1fA== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: + version "2.6.2" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@1: + version "1.1.0" + resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz#c21b434c1ffe48b39087e86cfb4d2582e9df18f8" + integrity sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw== + dependencies: + lower-case "^2.0.1" + tslib "^1.10.0" + +node-dir@^0.1.10: + version "0.1.17" + resolved "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" + integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU= + dependencies: + minimatch "^3.0.2" + +node-fetch-npm@^2.0.2: + version "2.0.4" + resolved "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" + integrity sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg== + dependencies: + encoding "^0.1.11" + json-parse-better-errors "^1.0.0" + safe-buffer "^5.1.1" + +node-fetch@2.6.0, node-fetch@^2.1.2, node-fetch@^2.2.0, node-fetch@^2.3.0, node-fetch@^2.5.0, node-fetch@^2.6.0: + version "2.6.0" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== + +node-fetch@^1.0.1: + version "1.7.3" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-forge@0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" + integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== + +node-forge@^0.7.0: + version "0.7.6" + resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac" + integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw== + +node-gyp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz#972654af4e5dd0cd2a19081b4b46fe0442ba6f45" + integrity sha512-2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA== + dependencies: + glob "^7.0.3" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "^2.87.0" + rimraf "2" + semver "~5.3.0" + tar "^4.4.8" + which "1" + +node-gyp@^5.0.2: + version "5.1.1" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e" + integrity sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.2" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.1.2" + request "^2.88.0" + rimraf "^2.6.3" + semver "^5.7.1" + tar "^4.4.12" + which "^1.3.1" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-match-path@^0.4.4: + version "0.4.4" + resolved "https://registry.npmjs.org/node-match-path/-/node-match-path-0.4.4.tgz#516a10926093c0cc6f237d020685b593b19baebb" + integrity sha512-pBq9gp7TG0r0VXuy/oeZmQsjBSnYQo7G886Ly/B3azRwZuEtHCY155dzmfoKWcDPGgyfIGD8WKVC7h3+6y7yTg== + +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-notifier@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz#a7eee2d51da6d0f7ff5094bc7108c911240c1620" + integrity sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" + shellwords "^0.1.1" + uuid "^8.3.0" + which "^2.0.2" + +node-pre-gyp@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054" + integrity sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-pre-gyp@^0.13.0: + version "0.13.0" + resolved "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.13.0.tgz#df9ab7b68dd6498137717838e4f92a33fc9daa42" + integrity sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-releases@^1.1.29, node-releases@^1.1.52, node-releases@^1.1.60: + version "1.1.60" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" + integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== + +node-request-interceptor@^0.3.5: + version "0.3.6" + resolved "https://registry.npmjs.org/node-request-interceptor/-/node-request-interceptor-0.3.6.tgz#c411065a424b17a17503ecfce11a6a2a2f5d9a87" + integrity sha512-pN8Tt43XuLamN+bspAZ9tEMGDp1bOfaxluYop1/qmNRQmM5BOelFqr4jRvARD6y/7iuhLjOEjMQgy5HweXN7Kg== + dependencies: + "@open-draft/until" "^1.0.3" + debug "^4.1.1" + headers-utils "^1.2.0" + +nodegit-promise@~4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/nodegit-promise/-/nodegit-promise-4.0.0.tgz#5722b184f2df7327161064a791d2e842c9167b34" + integrity sha1-VyKxhPLfcycWEGSnkdLoQskWezQ= + dependencies: + asap "~2.0.3" + +nodegit@0.26.5: + version "0.26.5" + resolved "https://registry.npmjs.org/nodegit/-/nodegit-0.26.5.tgz#1534d8aaa52de7acfbbe18de28df2075de86f7d2" + integrity sha512-l9l2zhcJ0V7FYzPdXIsuJcXN8UnLuhQgM+377HJfCYE/eupL/OWtMVvUOq42F9dRsgC3bAYH9j2Xbwr0lpYVZQ== + dependencies: + fs-extra "^7.0.0" + json5 "^2.1.0" + lodash "^4.17.14" + nan "^2.14.0" + node-gyp "^4.0.0" + node-pre-gyp "^0.13.0" + promisify-node "~0.3.0" + ramda "^0.25.0" + request-promise-native "^1.0.5" + tar-fs "^1.16.3" + +nodegit@^0.27.0: + version "0.27.0" + resolved "https://registry.npmjs.org/nodegit/-/nodegit-0.27.0.tgz#4e8cc236f60e1c97324a5acff99056fe116a6ebe" + integrity sha512-E9K4gPjWiA0b3Tx5lfWCzG7Cvodi2idl3V5UD2fZrOrHikIfrN7Fc2kWLtMUqqomyoToYJLeIC8IV7xb1CYRLA== + dependencies: + fs-extra "^7.0.0" + got "^10.7.0" + json5 "^2.1.0" + lodash "^4.17.14" + nan "^2.14.0" + node-gyp "^4.0.0" + node-pre-gyp "^0.13.0" + ramda "^0.25.0" + tar-fs "^1.16.3" + +nodemon@^2.0.2: + version "2.0.4" + resolved "https://registry.npmjs.org/nodemon/-/nodemon-2.0.4.tgz#55b09319eb488d6394aa9818148c0c2d1c04c416" + integrity sha512-Ltced+hIfTmaS28Zjv1BM552oQ3dbwPqI4+zI0SLgq+wpJhSyqgYude/aZa/3i31VCQWMfXJVxvu86abcam3uQ== + dependencies: + chokidar "^3.2.2" + debug "^3.2.6" + ignore-by-default "^1.0.1" + minimatch "^3.0.4" + pstree.remy "^1.1.7" + semver "^5.7.1" + supports-color "^5.5.0" + touch "^3.1.0" + undefsafe "^2.0.2" + update-notifier "^4.0.0" + +"nopt@2 || 3": + version "3.0.6" + resolved "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= + dependencies: + abbrev "1" + +nopt@^4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== + dependencies: + abbrev "1" + osenv "^0.1.4" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= + dependencies: + abbrev "1" + +normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "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@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" + integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== + dependencies: + prepend-http "^2.0.0" + query-string "^5.0.1" + sort-keys "^2.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" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + +npm-bundled@^1.0.1: + version "1.1.1" + resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" + integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-conf@^1.1.0: + version "1.1.3" + resolved "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" + integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + +npm-lifecycle@^3.1.2: + version "3.1.5" + resolved "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz#9882d3642b8c82c815782a12e6a1bfeed0026309" + integrity sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g== + dependencies: + byline "^5.0.0" + graceful-fs "^4.1.15" + node-gyp "^5.0.2" + resolve-from "^4.0.0" + slide "^1.1.6" + uid-number "0.0.6" + umask "^1.1.0" + which "^1.3.1" + +npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: + version "6.1.1" + resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" + integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== + dependencies: + hosted-git-info "^2.7.1" + osenv "^0.1.5" + semver "^5.6.0" + validate-npm-package-name "^3.0.0" + +npm-packlist@^1.1.6, npm-packlist@^1.4.4: + version "1.4.8" + resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" + integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-normalize-package-bin "^1.0.1" + +npm-pick-manifest@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz#f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7" + integrity sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw== + dependencies: + figgy-pudding "^3.5.1" + npm-package-arg "^6.0.0" + semver "^5.4.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.2, npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@^1.0.2, nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +"nwmatcher@>= 1.3.7 < 2.0.0": + version "1.4.4" + resolved "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e" + integrity sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ== + +nwsapi@^2.0.7, nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +oauth@0.9.x: + version "0.9.15" + resolved "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" + integrity sha1-vR/vr2hslrdUda7VGWQS/2DPucE= + +object-assign@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + integrity sha1-ejs9DpgGPUP0wD8uiubNUahog6A= + +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.7.0, object-inspect@^1.8.0: + version "1.8.0" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== + +object-is@^1.0.1: + version "1.1.2" + resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-path@^0.11.4: + version "0.11.4" + resolved "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" + integrity sha1-NwrnUvvzfePqcKhhwju6iRVpGUk= + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.defaults@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= + dependencies: + array-each "^1.0.1" + array-slice "^1.0.0" + for-own "^1.0.0" + isobject "^3.0.0" + +object.entries@^1.1.0, object.entries@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" + integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + has "^1.0.3" + +"object.fromentries@^2.0.0 || ^1.0.0", object.fromentries@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" + integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +object.map@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +object.pick@^1.2.0, object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0, object.values@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +octokit-pagination-methods@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" + integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== + +omggif@1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/omggif/-/omggif-1.0.7.tgz#59d2eecb0263de84635b3feb887c0c9973f1e49d" + integrity sha1-WdLuywJj3oRjWz/riHwMmXPx5J0= + +on-finished@^2.3.0, on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^6.3.0: + version "6.4.0" + resolved "https://registry.npmjs.org/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" + integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== + dependencies: + is-wsl "^1.1.0" + +open@^7.0.0, open@^7.0.2: + version "7.2.1" + resolved "https://registry.npmjs.org/open/-/open-7.2.1.tgz#07b0ade11a43f2a8ce718480bdf3d7563a095195" + integrity sha512-xbYCJib4spUdmcs0g/2mK1nKo/jO2T7INClWd/beL7PFkXRWgr8B23ssDHX/USPn2M2IjDR5UdpYs6I67SnTSA== + 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" + integrity sha512-05+GvwMagTY7GxoDQoWJfmAUFlxfebciiEzqKmu4iq6+MqBEn62AMUkn0CTxyKhnUGIaR2KXjTeslxIeJwVIOw== + dependencies: + json-pointer "^0.6.0" + +opencollective-postinstall@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" + integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== + +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" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +optipng-bin@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/optipng-bin/-/optipng-bin-5.1.0.tgz#a7c7ab600a3ab5a177dae2f94c2d800aa386b5a9" + integrity sha512-9baoqZTNNmXQjq/PQTWEXbVV3AMO2sI/GaaqZJZ8SExfAzjijeAP7FEeT+TtyumSw7gr0PZtSUYB/Ke7iHQVKA== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.0" + logalot "^2.0.0" + +ora@*: + version "5.0.0" + resolved "https://registry.npmjs.org/ora/-/ora-5.0.0.tgz#4f0b34f2994877b49b452a707245ab1e9f6afccb" + integrity sha512-s26qdWqke2kjN/wC4dy+IQPBIMWBJlSU/0JZhk30ZDBLelW25rv66yutUWARMigpGPzcXHb+Nac5pNhN/WsARw== + dependencies: + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.4.0" + is-interactive "^1.0.0" + log-symbols "^4.0.0" + mute-stream "0.0.8" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +ora@^4.0.3: + version "4.1.1" + resolved "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz#566cc0348a15c36f5f0e979612842e02ba9dddbc" + integrity sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A== + dependencies: + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-spinners "^2.2.0" + is-interactive "^1.0.0" + log-symbols "^3.0.0" + mute-stream "0.0.8" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-filter-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz#1c0b62d5f3a2442749a2d139e6dddee6e81d8d16" + integrity sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg== + dependencies: + arch "^2.1.0" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= + dependencies: + lcid "^1.0.0" + +os-name@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" + integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== + dependencies: + macos-release "^2.2.0" + windows-release "^3.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@0, osenv@^0.1.4, osenv@^0.1.5: + version "0.1.5" + resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +ospath@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" + integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= + +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== + +p-cancelable@^0.4.0: + version "0.4.1" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" + integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-cancelable@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" + integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== + +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@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz#8e6b4f4f65c72bc5b6fe28b75eda874f96a4a085" + integrity sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU= + dependencies: + p-timeout "^1.1.1" + +p-event@^2.1.0: + version "2.3.1" + resolved "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz#596279ef169ab2c3e0cae88c1cfbb08079993ef6" + integrity sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA== + dependencies: + p-timeout "^2.0.1" + +p-event@^4.0.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== + dependencies: + p-timeout "^3.1.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +p-is-promise@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= + +p-limit@3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" + integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== + dependencies: + p-try "^2.0.0" + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map-series@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" + integrity sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco= + dependencies: + p-reduce "^1.0.0" + +p-map@^2.0.0, p-map@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== + dependencies: + aggregate-error "^3.0.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-pipe@^1.1.0, p-pipe@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9" + integrity sha1-SxoROZoRUgpneQ7loMHViB1r7+k= + +p-queue@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/p-queue/-/p-queue-4.0.0.tgz#ed0eee8798927ed6f2c2f5f5b77fdb2061a5d346" + integrity sha512-3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg== + dependencies: + eventemitter3 "^3.1.0" + +p-queue@^6.3.0: + version "6.6.1" + resolved "https://registry.npmjs.org/p-queue/-/p-queue-6.6.1.tgz#578891ada028a61371ec2692b26614d1b7d2b10a" + integrity sha512-miQiSxLYPYBxGkrldecZC18OTLjdUqnlRebGzPRiVxB8mco7usCmm7hFuxiTvp93K18JnLtE4KMMycjAu/cQQg== + dependencies: + eventemitter3 "^4.0.4" + p-timeout "^3.1.0" + +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= + +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== + dependencies: + retry "^0.12.0" + +p-timeout@^1.1.1: + version "1.2.1" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" + integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= + dependencies: + p-finally "^1.0.0" + +p-timeout@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" + integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== + dependencies: + p-finally "^1.0.0" + +p-timeout@^3.1.0: + version "3.2.0" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +p-waterfall@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-waterfall/-/p-waterfall-1.0.0.tgz#7ed94b3ceb3332782353af6aae11aa9fc235bb00" + integrity sha1-ftlLPOszMngjU69qrhGqn8I1uwA= + dependencies: + p-reduce "^1.0.0" + +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +packet-reader@0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/packet-reader/-/packet-reader-0.3.1.tgz#cd62e60af8d7fea8a705ec4ff990871c46871f27" + integrity sha1-zWLmCvjX/qinBexP+ZCHHEaHHyc= + +packet-reader@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" + integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +papi@^0.29.0: + version "0.29.1" + resolved "https://registry.npmjs.org/papi/-/papi-0.29.1.tgz#7373e2c527f5117d61fd2a0e6c6b1dd72bf7f180" + integrity sha512-Y9ipSMfWuuVFO3zY9PlxOmEg+bQ7CeJ28sa9/a0veYNynLf9fwjR3+3fld5otEy7okUaEOUuCHVH62MyTmACXQ== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz#4be41f8399eff621c56eebb829a5e451d9801238" + integrity sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA== + dependencies: + dot-case "^3.0.3" + tslib "^1.10.0" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-entities@^1.1.0, parse-entities@^1.1.2: + version "1.2.2" + resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" + integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + +parse-filepath@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-github-repo-url@^1.3.0: + version "1.4.1" + resolved "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" + integrity sha1-nn2LslKmy2ukJZUGC3v23z28H1A= + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" + integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-package-name@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/parse-package-name/-/parse-package-name-0.1.0.tgz#3f44dd838feb4c2be4bf318bae4477d7706bade4" + integrity sha1-P0Tdg4/rTCvkvzGLrkR313BrreQ= + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parse-path@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/parse-path/-/parse-path-4.0.2.tgz#ef14f0d3d77bae8dd4bc66563a4c151aac9e65aa" + integrity sha512-HSqVz6iuXSiL8C1ku5Gl1Z5cwDd9Wo0q8CoffdAghP6bz8pJa1tcMC+m4N+z6VAS8QdksnIGq1TB6EgR4vPR6w== + dependencies: + is-ssh "^1.3.0" + protocols "^1.4.0" + +parse-srcset@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1" + integrity sha1-8r0iH2zJcKk42IVWq8WJyqqiveE= + +parse-url@^5.0.0: + version "5.0.2" + resolved "https://registry.npmjs.org/parse-url/-/parse-url-5.0.2.tgz#856a3be1fcdf78dc93fc8b3791f169072d898b59" + integrity sha512-Czj+GIit4cdWtxo3ISZCvLiUjErSo0iI3wJ+q9Oi3QuMYTI6OZu+7cewMWZ+C1YAnKhYTk6/TLuhIgCypLthPA== + dependencies: + is-ssh "^1.3.0" + normalize-url "^3.3.0" + parse-path "^4.0.0" + protocols "^1.4.0" + +parse5@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== + +parse5@5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parse5@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" + integrity sha1-m387DeMr543CQBsXVzzK8Pb1nZQ= + +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" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz#5ac1975133ed619281e88920973d2cd1f279de5f" + integrity sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA== + dependencies: + no-case "^3.0.3" + tslib "^1.10.0" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +passport-github2@^0.1.12: + version "0.1.12" + resolved "https://registry.npmjs.org/passport-github2/-/passport-github2-0.1.12.tgz#a72ebff4fa52a35bc2c71122dcf470d1116f772c" + integrity sha512-3nPUCc7ttF/3HSP/k9sAXjz3SkGv5Nki84I05kSQPo01Jqq1NzJACgMblCK0fGcv9pKCG/KXU3AJRDGLqHLoIw== + dependencies: + passport-oauth2 "1.x.x" + +passport-gitlab2@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/passport-gitlab2/-/passport-gitlab2-5.0.0.tgz#ea37e5285321c026a02671e87469cac28cce9b69" + integrity sha512-cXQMgM6JQx9wHVh7JLH30D8fplfwjsDwRz+zS0pqC8JS+4bNmc1J04NGp5g2M4yfwylH9kQRrMN98GxMw7q7cg== + dependencies: + passport-oauth2 "^1.4.0" + +passport-google-oauth20@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/passport-google-oauth20/-/passport-google-oauth20-2.0.0.tgz#0d241b2d21ebd3dc7f2b60669ec4d587e3a674ef" + integrity sha512-KSk6IJ15RoxuGq7D1UKK/8qKhNfzbLeLrG3gkLZ7p4A6DBCcv7xpyQwuXtWdpyR0+E0mwkpjY1VfPOhxQrKzdQ== + dependencies: + passport-oauth2 "1.x.x" + +passport-microsoft@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/passport-microsoft/-/passport-microsoft-0.1.0.tgz#dc72c1a38b294d74f4dc55fe93f52e25cb9aa5b4" + integrity sha512-0giBDgE1fnR5X84zJZkQ11hnKVrzEgViwRO6RGsormK9zTxFQmN/UHMTDbIpvhk989VqALewB6Pk1R5vNr3GHw== + dependencies: + passport-oauth2 "1.2.0" + pkginfo "0.2.x" + +passport-oauth1@1.x.x: + version "1.1.0" + resolved "https://registry.npmjs.org/passport-oauth1/-/passport-oauth1-1.1.0.tgz#a7de988a211f9cf4687377130ea74df32730c918" + integrity sha1-p96YiiEfnPRoc3cTDqdN8ycwyRg= + dependencies: + oauth "0.9.x" + passport-strategy "1.x.x" + utils-merge "1.x.x" + +passport-oauth2@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.2.0.tgz#49613a3eca85c7a1e65bf1019e2b6b80a10c8ac2" + integrity sha1-SWE6PsqFx6HmW/EBnitrgKEMisI= + dependencies: + oauth "0.9.x" + passport-strategy "1.x.x" + uid2 "0.0.x" + +passport-oauth2@1.x.x, passport-oauth2@^1.4.0, passport-oauth2@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.5.0.tgz#64babbb54ac46a4dcab35e7f266ed5294e3c4108" + integrity sha512-kqBt6vR/5VlCK8iCx1/KpY42kQ+NEHZwsSyt4Y6STiNjU+wWICG1i8ucc1FapXDGO15C5O5VZz7+7vRzrDPXXQ== + dependencies: + base64url "3.x.x" + oauth "0.9.x" + passport-strategy "1.x.x" + uid2 "0.0.x" + utils-merge "1.x.x" + +passport-oauth@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/passport-oauth/-/passport-oauth-1.0.0.tgz#90aff63387540f02089af28cdad39ea7f80d77df" + integrity sha1-kK/2M4dUDwIImvKM2tOep/gNd98= + dependencies: + passport-oauth1 "1.x.x" + passport-oauth2 "1.x.x" + +passport-okta-oauth@^0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/passport-okta-oauth/-/passport-okta-oauth-0.0.1.tgz#c8bcee02af3d56ca79d3cca776f2df7cf15a5748" + integrity sha1-yLzuAq89Vsp508yndvLffPFaV0g= + dependencies: + passport-oauth "1.0.0" + pkginfo "0.2.x" + uid2 "0.0.3" + +passport-saml@^1.3.3: + version "1.3.4" + resolved "https://registry.npmjs.org/passport-saml/-/passport-saml-1.3.4.tgz#d973a8525fd61df841669405d0750ae04a3f85d4" + integrity sha512-FYkRAt3pbmUpm/FsH97U/xYDnd1+z3FuGYe3IUOQPRgyoDg2ub8LYofst4UU49u65aAWHHSfXk6S3CdSMllq3A== + dependencies: + debug "^3.1.0" + passport-strategy "*" + q "^1.5.0" + xml-crypto "^1.4.0" + xml-encryption "^1.0.0" + xml2js "0.4.x" + xmlbuilder "^11.0.0" + xmldom "0.1.x" + +passport-strategy@*, passport-strategy@1.x.x: + version "1.0.0" + resolved "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" + integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ= + +passport@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/passport/-/passport-0.4.1.tgz#941446a21cb92fc688d97a0861c38ce9f738f270" + integrity sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg== + dependencies: + passport-strategy "1.x.x" + pause "0.0.1" + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@1.0.2, path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= + dependencies: + path-root-regex "^0.1.0" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-to-regexp@2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" + integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= + dependencies: + through "~2.3" + +pause@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" + integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10= + +pbkdf2@^3.0.3: + version "3.1.1" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + integrity sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +pg-connection-string@0.1.3, pg-connection-string@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7" + integrity sha1-2hhHsglA5C7hSSvq9l1J2RskXfc= + +pg-connection-string@2.3.0, pg-connection-string@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.3.0.tgz#c13fcb84c298d0bfa9ba12b40dd6c23d946f55d6" + integrity sha512-ukMTJXLI7/hZIwTW7hGMZJ0Lj0S2XQBCJ4Shv4y1zgQ/vqVea+FLhzywvPj0ujSuofu+yA4MYHGZPTsgjBgJ+w== + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-pool@1.*: + version "1.8.0" + resolved "https://registry.npmjs.org/pg-pool/-/pg-pool-1.8.0.tgz#f7ec73824c37a03f076f51bfdf70e340147c4f37" + integrity sha1-9+xzgkw3oD8Hb1G/33DjQBR8Tzc= + dependencies: + generic-pool "2.4.3" + object-assign "4.1.0" + +pg-pool@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.1.tgz#5f4afc0f58063659aeefa952d36af49fa28b30e0" + integrity sha512-BQDPWUeKenVrMMDN9opfns/kZo4lxmSWhIqo+cSAF7+lfi9ZclQbr9vfnlNaPr8wYF3UYjm5X0yPAhbcgqNOdA== + +pg-protocol@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.2.5.tgz#28a1492cde11646ff2d2d06bdee42a3ba05f126c" + integrity sha512-1uYCckkuTfzz/FCefvavRywkowa6M5FohNMF5OjKrqo9PSR8gYc8poVmwwYQaBxhmQdBjhtP514eXy9/Us2xKg== + +pg-types@1.*: + version "1.13.0" + resolved "https://registry.npmjs.org/pg-types/-/pg-types-1.13.0.tgz#75f490b8a8abf75f1386ef5ec4455ecf6b345c63" + integrity sha512-lfKli0Gkl/+za/+b6lzENajczwZHc7D5kiUCZfgm914jipD2kIOIvEkAhZ8GrW3/TUoP9w8FHjwpPObBye5KQQ== + dependencies: + pg-int8 "1.0.1" + postgres-array "~1.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.0" + postgres-interval "^1.1.0" + +pg-types@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + +pg@^6.1.0: + version "6.4.2" + resolved "https://registry.npmjs.org/pg/-/pg-6.4.2.tgz#c364011060eac7a507a2ae063eb857ece910e27f" + integrity sha1-w2QBEGDqx6UHoq4GPrhX7OkQ4n8= + dependencies: + buffer-writer "1.0.1" + js-string-escape "1.0.1" + packet-reader "0.3.1" + pg-connection-string "0.1.3" + pg-pool "1.*" + pg-types "1.*" + pgpass "1.*" + semver "4.3.2" + +pg@^8.3.0: + version "8.3.3" + resolved "https://registry.npmjs.org/pg/-/pg-8.3.3.tgz#0338631ca3c39b4fb425b699d494cab17f5bb7eb" + integrity sha512-wmUyoQM/Xzmo62wgOdQAn5tl7u+IA1ZYK7qbuppi+3E+Gj4hlUxVHjInulieWrd0SfHi/ADriTb5ILJ/lsJrSg== + dependencies: + buffer-writer "2.0.0" + packet-reader "1.0.0" + pg-connection-string "^2.3.0" + pg-pool "^3.2.1" + pg-protocol "^1.2.5" + pg-types "^2.1.0" + pgpass "1.x" + semver "4.3.2" + +pgpass@1.*, pgpass@1.x: + version "1.0.2" + resolved "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306" + integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY= + dependencies: + split "^1.0.0" + +pgtools@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/pgtools/-/pgtools-0.3.0.tgz#ee7decf4183ada28299c63df71e1e73c95b5bc53" + integrity sha512-8NxDCJ8xJ6hOp9hVNZqxi+TZl7hM1Jc8pQyj8DlAbyaWnk5OsGwf3gB/UyDODdOguiim9QzbzPsslp//apO+Uw== + dependencies: + bluebird "^3.3.5" + pg "^6.1.0" + pg-connection-string "^0.1.3" + yargs "^5.0.0" + +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2: + version "2.2.2" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pify@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" + integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pirates@^4.0.0, pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + +pkg-up@3.1.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== + dependencies: + find-up "^3.0.0" + +pkginfo@0.2.x: + version "0.2.3" + resolved "https://registry.npmjs.org/pkginfo/-/pkginfo-0.2.3.tgz#7239c42a5ef6c30b8f328439d9b9ff71042490f8" + integrity sha1-cjnEKl72wwuPMoQ52bn/cQQkkPg= + +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + +pnp-webpack-plugin@1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.5.0.tgz#62a1cd3068f46d564bb33c56eb250e4d586676eb" + integrity sha512-jd9olUr9D7do+RN8Wspzhpxhgp1n6Vd0NtQ4SFkmIACZoEL1nkyAdW9Ygrinjec0vgDcWjscFQQ1gDW8rsfKTg== + dependencies: + ts-pnp "^1.1.2" + +polished@^3.3.1, polished@^3.4.4: + version "3.6.6" + resolved "https://registry.npmjs.org/polished/-/polished-3.6.6.tgz#91ef9eface9be5366c07672b63b736f50c151185" + integrity sha512-yiB2ims2DZPem0kCD6V0wnhcVGFEhNh0Iw0axNpKU+oSAgFt6yx6HxIT23Qg0WWvgS379cS35zT4AOyZZRzpQQ== + dependencies: + "@babel/runtime" "^7.9.2" + +popper.js@1.16.1-lts: + version "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== + +popper.js@^1.14.4, popper.js@^1.14.7: + version "1.16.1" + resolved "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" + integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== + +portfinder@^1.0.25, portfinder@^1.0.26: + version "1.0.28" + resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-calc@^7.0.1: + version "7.0.3" + resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.3.tgz#d65cca92a3c52bf27ad37a5f732e0587b74f1623" + integrity sha512-IB/EAEmZhIMEIhG7Ov4x+l47UaXOS1n2f4FBUk/aKllQhtSCxWhTzn0nJgkqN7fo/jcWySvWTSB6Syk9L+31bA== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-flexbugs-fixes@^4.1.0: + 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, postcss-load-config@^2.1.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-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== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" + integrity sha1-thTJcgvmgW6u41+zpfqh26agXds= + dependencies: + postcss "^6.0.1" + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-local-by-default@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-values@1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/postcss-modules/-/postcss-modules-2.0.0.tgz#473d0d7326651d8408585c2a154115d5cb36cce0" + integrity sha512-eqp+Bva+U2cwQO7dECJ8/V+X+uH1HduNeITB0CPPFAu6d/8LKQ32/j+p9rQ2YL1QytVcrNU0X+fBqgGmQIA1Rw== + dependencies: + css-modules-loader-core "^1.1.0" + generic-names "^2.0.1" + lodash.camelcase "^4.3.0" + postcss "^7.0.1" + string-hash "^1.1.1" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0: + version "3.3.1" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +"postcss@5 - 7", postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.23, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.32" + resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" + integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz#000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2" + integrity sha1-AA29H47vIXqjaLmiEsX8QLKo8/I= + dependencies: + chalk "^1.1.3" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^6.0.1: + version "6.0.23" + resolved "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postgres-array@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/postgres-array/-/postgres-array-1.0.3.tgz#c561fc3b266b21451fc6555384f4986d78ec80f5" + integrity sha512-5wClXrAP0+78mcsNX3/ithQ5exKvCyK5lr5NEEEeGwwM6NJdQgzIJBVxLvRW+huFpX92F2QnZ5CcokH0VhK2qQ== + +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU= + +postgres-date@~1.0.0, postgres-date@~1.0.4: + version "1.0.7" + resolved "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" + integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "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, prepend-http@^1.0.1: + 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" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +prettier@^1.16.4: + version "1.19.1" + resolved "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== + +prettier@^2.0.5: + version "2.1.1" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.1.1.tgz#d9485dd5e499daa6cb547023b87a6cf51bee37d6" + integrity sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw== + +pretty-bytes@^5.3.0: + version "5.4.0" + resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.4.0.tgz#b5efc2638cfc0a5e8c369bb0418abb4b386c7c6d" + integrity sha512-ctjMzsPQfGSyThWQ9//I6egmiEL/F0VgHKW4atxRd1V8+CPm0J/hihZJp0nb0GDRLUpICyCZTG1f/lE/42f/VQ== + +pretty-error@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" + integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= + dependencies: + renderkid "^2.0.1" + utila "~0.4" + +pretty-format@^25.2.1, pretty-format@^25.5.0: + version "25.5.0" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" + integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== + dependencies: + "@jest/types" "^25.5.0" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^16.12.0" + +pretty-format@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.4.2.tgz#d081d032b398e801e2012af2df1214ef75a81237" + integrity sha512-zK6Gd8zDsEiVydOCGLkoBoZuqv8VTiHyAbKznXe/gaph/DAeZOmit9yMfgIz5adIgAMMs5XfoYSwAX3jcCO1tA== + dependencies: + "@jest/types" "^26.3.0" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^16.12.0" + +pretty-hrtime@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= + +prismjs@^1.17.1, prismjs@^1.21.0, prismjs@^1.8.4, prismjs@~1.21.0: + version "1.21.0" + resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz#36c086ec36b45319ec4218ee164c110f9fc015a3" + integrity sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw== + optionalDependencies: + clipboard "^2.0.0" + +prismjs@~1.17.0: + version "1.17.1" + resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.17.1.tgz#e669fcbd4cdd873c35102881c33b14d0d68519be" + integrity sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q== + optionalDependencies: + clipboard "^2.0.0" + +private@~0.1.5: + version "0.1.8" + resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +prom-client@^12.0.0: + version "12.0.0" + resolved "https://registry.npmjs.org/prom-client/-/prom-client-12.0.0.tgz#9689379b19bd3f6ab88a9866124db9da3d76c6ed" + integrity sha512-JbzzHnw0VDwCvoqf8y1WDtq4wSBAbthMB1pcVI/0lzdqHGJI3KBJDXle70XK+c7Iv93Gihqo0a5LlOn+g8+DrQ== + dependencies: + tdigest "^0.1.1" + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise-polyfill@8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.0.tgz#30059da54d1358ce905ac581f287e184aedf995d" + integrity sha512-OzSf6gcCUQ01byV4BgwyUCswlaQQ6gzXc23aLQWhicvfX9kfsUiUhgt3CCQej8jDnl8/PhGF31JdHX2/MzF3WA== + +promise-polyfill@^8.1.3: + version "8.1.3" + resolved "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.3.tgz#8c99b3cf53f3a91c68226ffde7bde81d7f904116" + integrity sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g== + +promise-retry@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" + integrity sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0= + dependencies: + err-code "^1.0.0" + retry "^0.10.0" + +promise.allsettled@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz#d66f78fbb600e83e863d893e98b3d4376a9c47c9" + integrity sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg== + dependencies: + array.prototype.map "^1.0.1" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + iterate-value "^1.0.0" + +promise.prototype.finally@^3.1.0: + version "3.1.2" + resolved "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.2.tgz#b8af89160c9c673cefe3b4c4435b53cfd0287067" + integrity sha512-A2HuJWl2opDH0EafgdjwEw7HysI8ff/n4lW4QEVBCUXFk9QeGecBWv0Deph0UmLe3tTNYegz8MOjsVuE6SMoJA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.0" + function-bind "^1.1.1" + +promise.series@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" + integrity sha1-LMfr6Vn8OmYZwEq029yeRS2GS70= + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +promise@^8.0.3: + version "8.1.0" + resolved "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" + integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q== + dependencies: + asap "~2.0.6" + +promisify-node@~0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/promisify-node/-/promisify-node-0.3.0.tgz#b4b55acf90faa7d2b8b90ca396899086c03060cf" + integrity sha1-tLVaz5D6p9K4uQyjlomQhsAwYM8= + dependencies: + nodegit-promise "~4.0.0" + +prompts@^2.0.1: + version "2.3.2" + resolved "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" + integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.4" + +promzard@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" + integrity sha1-JqXW7ox97kyxIggwWs+5O6OCqe4= + dependencies: + read "1" + +prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +property-expr@^2.0.2: + version "2.0.4" + resolved "https://registry.npmjs.org/property-expr/-/property-expr-2.0.4.tgz#37b925478e58965031bb612ec5b3260f8241e910" + integrity sha512-sFPkHQjVKheDNnPvotjQmm3KD3uk1fWKUN7CrpdbwmUx3CrG3QiM8QpTSimvig5vTXmTvjz7+TDvXOI9+4rkcg== + +property-information@^5.0.0: + version "5.5.0" + resolved "https://registry.npmjs.org/property-information/-/property-information-5.5.0.tgz#4dc075d493061a82e2b7d096f406e076ed859943" + integrity sha512-RgEbCx2HLa1chNgvChcx+rrCWD0ctBmGSE0M7lVm1yyv4UbvbrWoXp/BkVLZefzjrRBGW8/Js6uh/BnlHXFyjA== + 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" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +protocols@^1.1.0, protocols@^1.4.0: + version "1.4.8" + resolved "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" + integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== + +protoduck@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" + integrity sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg== + dependencies: + genfun "^5.0.0" + +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +ps-tree@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" + integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA== + dependencies: + event-stream "=3.3.4" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +pstree.remy@^1.1.7: + version "1.1.8" + resolved "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" + integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + integrity sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4, punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +pupa@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz#dbdc9ff48ffbea4a26a069b6f9f7abb051008726" + integrity sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA== + dependencies: + escape-goat "^2.0.0" + +q@^1.1.2, q@^1.5.0, q@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@^6.4.0, qs@^6.5.1, qs@^6.6.0, qs@^6.9.4: + version "6.9.4" + resolved "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" + integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== + +qs@~6.5.2: + version "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@^5.0.1: + version "5.1.1" + resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-browser@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/querystring-browser/-/querystring-browser-1.0.4.tgz#f2e35881840a819bc7b1bf597faf0979e6622dc6" + integrity sha1-8uNYgYQKgZvHsb9Zf68JeeZiLcY= + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0, querystring@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +quick-lru@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +raf-schd@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.2.tgz#bd44c708188f2e84c810bf55fcea9231bcaed8a0" + integrity sha512-VhlMZmGy6A6hrkJWHLNTGl5gtgMUm+xfGza6wbwnE914yeQ5Ybm18vgM734RZhMgfw4tacUrWseGZlpUrrakEQ== + +raf@^3.1.0, raf@^3.4.1: + version "3.4.1" + resolved "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +ramda@^0.21.0: + version "0.21.0" + resolved "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" + integrity sha1-oAGr7bP/YQd9T/HVd9RN536NCjU= + +ramda@^0.25.0: + version "0.25.0" + resolved "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" + integrity sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ== + +ramda@^0.27: + version "0.27.1" + resolved "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9" + integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw== + +ramda@~0.26.1: + version "0.26.1" + resolved "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" + integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ== + +ramldt2jsonschema@^1.1.0: + version "1.2.3" + resolved "https://registry.npmjs.org/ramldt2jsonschema/-/ramldt2jsonschema-1.2.3.tgz#8d45a7f306a1169a3bde91cab725d1d6d0ff7d55" + integrity sha512-+wLDAV2NNv9NkfEUOYStaDu/6RYgYXeC1zLtXE+dMU/jDfjpN4iJnBGycDwFTFaIQGosOQhxph7fEX6Mpwxdug== + dependencies: + commander "^5.0.0" + js-yaml "^3.14.0" + json-schema-migrate "^0.2.0" + webapi-parser "^0.5.0" + +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@~1.1.0: + version "1.1.7" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" + integrity sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU= + dependencies: + bytes "1" + string_decoder "0.10" + +raw-loader@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz#5e9d399a5a222cc0de18f42c3bc5e49677532b3f" + integrity sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA== + dependencies: + loader-utils "^1.1.0" + schema-utils "^2.0.1" + +raw-loader@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.1.tgz#14e1f726a359b68437e183d5a5b7d33a3eba6933" + integrity sha512-baolhQBSi3iNh1cglJjA0mYzga+wePk7vdEX//1dTFd+v4TsQlQE0jitJSNF1OIP82rdYulH7otaVmdlDaJ64A== + dependencies: + loader-utils "^2.0.0" + schema-utils "^2.6.5" + +rc-progress@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/rc-progress/-/rc-progress-3.0.0.tgz#cea324ce8fc31421cd815d94a4649a8a29f8f8db" + integrity sha512-dQv1KU3o6Vay604FMYMF4S0x4GNXAgXf1tbQ1QoxeIeQt4d5fUeB7Ri82YPu+G+aRvH/AtxYAlEcnxyVZ1/4Hw== + dependencies: + classnames "^2.2.6" + +rc@^1.2.7, rc@^1.2.8: + version "1.2.8" + resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-app-polyfill@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-1.0.6.tgz#890f8d7f2842ce6073f030b117de9130a5f385f0" + integrity sha512-OfBnObtnGgLGfweORmdZbyEz+3dgVePQBb3zipiaDsMHV1NpWm0rDFYIVXFV/AK+x4VIIfWHhrdMIeoTLyRr2g== + dependencies: + core-js "^3.5.0" + object-assign "^4.1.1" + promise "^8.0.3" + raf "^3.4.1" + regenerator-runtime "^0.13.3" + whatwg-fetch "^3.0.0" + +react-beautiful-dnd@^13.0.0: + version "13.0.0" + resolved "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.0.0.tgz#f70cc8ff82b84bc718f8af157c9f95757a6c3b40" + integrity sha512-87It8sN0ineoC3nBW0SbQuTFXM6bUqM62uJGY4BtTf0yzPl8/3+bHMWkgIe0Z6m8e+gJgjWxefGRVfpE3VcdEg== + dependencies: + "@babel/runtime" "^7.8.4" + css-box-model "^1.2.0" + memoize-one "^5.1.1" + raf-schd "^4.0.2" + react-redux "^7.1.1" + redux "^4.0.4" + use-memo-one "^1.1.1" + +react-clientside-effect@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.2.tgz#6212fb0e07b204e714581dd51992603d1accc837" + integrity sha512-nRmoyxeok5PBO6ytPvSjKp9xwXg9xagoTK1mMjwnQxqM9Hd7MNPl+LS1bOSOe+CV2+4fnEquc7H/S8QD3q697A== + dependencies: + "@babel/runtime" "^7.0.0" + +react-copy-to-clipboard@5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.1.tgz#8eae107bb400be73132ed3b6a7b4fb156090208e" + integrity sha512-ELKq31/E3zjFs5rDWNCfFL4NvNFQvGRoJdAKReD/rUPA+xxiLPQmZBZBvy2vgH7V0GE9isIQpT9WXbwIVErYdA== + dependencies: + copy-to-clipboard "^3" + prop-types "^15.5.8" + +react-debounce-input@^3.2.0: + version "3.2.2" + resolved "https://registry.npmjs.org/react-debounce-input/-/react-debounce-input-3.2.2.tgz#d2cc99c1ce47fae89037965f5699edc1b0317197" + integrity sha512-RIBu68Cq/gImKz/2h1cE042REDqyqj3D+7SJ3lnnIpJX0ht9D9PfH7KAnL+SgDz6hvKa9pZS2CnAxlkrLmnQlg== + dependencies: + lodash.debounce "^4" + prop-types "^15.7.2" + +react-dev-utils@^10.2.1: + 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@^9.0.0, react-dev-utils@^9.1.0: + version "9.1.0" + resolved "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.1.0.tgz#3ad2bb8848a32319d760d0a84c56c14bdaae5e81" + integrity sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg== + dependencies: + "@babel/code-frame" "7.5.5" + address "1.1.2" + browserslist "4.7.0" + chalk "2.4.2" + cross-spawn "6.0.5" + detect-port-alt "1.1.6" + escape-string-regexp "1.0.5" + filesize "3.6.1" + find-up "3.0.0" + fork-ts-checker-webpack-plugin "1.5.0" + global-modules "2.0.0" + globby "8.0.2" + gzip-size "5.1.1" + immer "1.10.0" + inquirer "6.5.0" + is-root "2.1.0" + loader-utils "1.2.3" + open "^6.3.0" + pkg-up "2.0.0" + react-error-overlay "^6.0.3" + recursive-readdir "2.2.2" + shell-quote "1.7.2" + sockjs-client "1.4.0" + strip-ansi "5.2.0" + text-table "0.2.0" + +react-docgen@^5.0.0: + version "5.3.0" + resolved "https://registry.npmjs.org/react-docgen/-/react-docgen-5.3.0.tgz#9aabde5e69f1993c8ba839fd9a86696504654589" + integrity sha512-hUrv69k6nxazOuOmdGeOpC/ldiKy7Qj/UFpxaQi0eDMrUFUTIPGtY5HJu7BggSmiyAMfREaESbtBL9UzdQ+hyg== + dependencies: + "@babel/core" "^7.7.5" + "@babel/runtime" "^7.7.6" + ast-types "^0.13.2" + commander "^2.19.0" + doctrine "^3.0.0" + neo-async "^2.6.1" + node-dir "^0.1.10" + strip-indent "^3.0.0" + +react-dom@^16.12.0, react-dom@^16.13.1, react-dom@^16.8.3, react-dom@^16.8.4: + version "16.13.1" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" + integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.19.1" + +react-double-scrollbar@0.0.15: + version "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.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.3, react-error-overlay@^6.0.7: + version "6.0.7" + resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz#1dcfb459ab671d53f660a991513cb2f0a0553108" + integrity sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA== + +react-fast-compare@^2.0.4: + version "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: + 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-focus-lock@^2.1.0: + version "2.4.1" + resolved "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.4.1.tgz#e842cc93da736b5c5d331799012544295cbcee4f" + integrity sha512-c5ZP56KSpj9EAxzScTqQO7bQQNPltf/W1ZEBDqNDOV1XOIwvAyHX0O7db9ekiAtxyKgnqZjQlLppVg94fUeL9w== + dependencies: + "@babel/runtime" "^7.0.0" + focus-lock "^0.7.0" + prop-types "^15.6.2" + react-clientside-effect "^1.2.2" + use-callback-ref "^1.2.1" + use-sidecar "^1.0.1" + +react-helmet-async@^1.0.2: + version "1.0.6" + resolved "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.0.6.tgz#11c15c74e79b3f66670c73779bef3e0e352b1d4e" + integrity sha512-t+bhAI4NgxfEv8ez4r77cLfR4O4Z55E/FH2DT+uiE4U7yfWgAk7OAOi7IxHxuYEVLI26bqjZvlVCkpC5/5AoNA== + dependencies: + "@babel/runtime" "^7.9.2" + invariant "^2.2.4" + prop-types "^15.7.2" + react-fast-compare "^3.0.1" + shallowequal "^1.1.0" + +react-helmet@6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" + integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== + dependencies: + object-assign "^4.1.1" + prop-types "^15.7.2" + react-fast-compare "^3.1.1" + react-side-effect "^2.1.0" + +react-hook-form@^5.7.2: + version "5.7.2" + resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-5.7.2.tgz#a84e259e5d37dd30949af4f79c4dac31101b79ac" + integrity sha512-bJvY348vayIvEUmSK7Fvea/NgqbT2racA2IbnJz/aPlQ3GBtaTeDITH6rtCa6y++obZzG6E3Q8VuoXPir7QYUg== + +react-hot-loader@^4.12.21: + version "4.12.21" + resolved "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.21.tgz#332e830801fb33024b5a147d6b13417f491eb975" + integrity sha512-Ynxa6ROfWUeKWsTHxsrL2KMzujxJVPjs385lmB2t5cHUxdoRPGind9F00tOkdc1l5WBleOF4XEAMILY1KPIIDA== + dependencies: + fast-levenshtein "^2.0.6" + global "^4.3.0" + hoist-non-react-statics "^3.3.0" + loader-utils "^1.1.0" + prop-types "^15.6.1" + react-lifecycles-compat "^3.0.4" + 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.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/react-immutable-proptypes/-/react-immutable-proptypes-2.1.0.tgz#023d6f39bb15c97c071e9e60d00d136eac5fa0b4" + integrity sha1-Aj1vObsVyXwHHp5g0A0TbqxfoLQ= + +react-immutable-pure-component@^1.1.1: + version "1.2.3" + resolved "https://registry.npmjs.org/react-immutable-pure-component/-/react-immutable-pure-component-1.2.3.tgz#fa33638df68cfe9f73ccbee1d5861c17f3053f86" + integrity sha512-kNy2A/fDrSuR8TKwB+4ynmItmp1vgF87tWxxfmadwDYo2J3ANipHqTjDIBvJvJ7libvuh76jIbvmK0krjtKH1g== + optionalDependencies: + "@types/react" "16.4.6" + +react-inspector@^2.3.0: + version "2.3.1" + resolved "https://registry.npmjs.org/react-inspector/-/react-inspector-2.3.1.tgz#f0eb7f520669b545b441af9d38ec6d706e5f649c" + integrity sha512-tUUK7t3KWgZEIUktOYko5Ic/oYwvjEvQUFAGC1UeMeDaQ5za2yZFtItJa2RTwBJB//NxPr000WQK6sEbqC6y0Q== + dependencies: + babel-runtime "^6.26.0" + is-dom "^1.0.9" + prop-types "^15.6.1" + +react-inspector@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/react-inspector/-/react-inspector-4.0.1.tgz#0f888f78ff7daccbc7be5d452b20c96dc6d5fbb8" + integrity sha512-xSiM6CE79JBqSj8Fzd9dWBHv57tLTH7OM57GP3VrE5crzVF3D5Khce9w1Xcw75OAbvrA0Mi2vBneR1OajKmXFg== + dependencies: + "@babel/runtime" "^7.6.3" + is-dom "^1.0.9" + prop-types "^15.6.1" + +react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1, react-is@^16.8.6, react-is@^16.9.0: + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +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" + integrity sha512-lyov32A/4BqihgXgtNXTHCajXSXkYHPlIEmV8RbYjHIMxCFSnmtdg4kDCI3vATz7dURtiFTvrw5yonHnrS+NNg== + dependencies: + "@mattiasbuelens/web-streams-polyfill" "^0.2.0" + fetch-readablestream "^0.2.0" + immutable "^3.8.2" + mitt "^1.1.2" + prop-types "^15.6.1" + react-string-replace "^0.4.1" + react-virtualized "^9.21.0" + text-encoding-utf-8 "^1.0.1" + whatwg-fetch "^2.0.4" + +react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-markdown@^4.3.1: + version "4.3.1" + resolved "https://registry.npmjs.org/react-markdown/-/react-markdown-4.3.1.tgz#39f0633b94a027445b86c9811142d05381300f2f" + integrity sha512-HQlWFTbDxTtNY6bjgp3C3uv1h2xcjCSi1zAEzfBW9OwJJvENSYiLXWNXN5hHLsoqai7RnZiiHzcnWdXk2Splzw== + dependencies: + html-to-react "^1.3.4" + mdast-add-list-metadata "1.0.1" + prop-types "^15.7.2" + react-is "^16.8.6" + remark-parse "^5.0.0" + unified "^6.1.5" + unist-util-visit "^1.3.0" + xtend "^4.0.1" + +react-motion@^0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/react-motion/-/react-motion-0.5.2.tgz#0dd3a69e411316567927917c6626551ba0607316" + integrity sha512-9q3YAvHoUiWlP3cK0v+w1N5Z23HXMj4IF4YuvjvWegWqNPfLXsOBE/V7UvQGpXxHFKRQQcNcVQE31g9SB/6qgQ== + dependencies: + performance-now "^0.2.0" + prop-types "^15.5.8" + raf "^3.1.0" + +react-popper-tooltip@^2.8.3: + version "2.11.1" + resolved "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-2.11.1.tgz#3c4bdfd8bc10d1c2b9a162e859bab8958f5b2644" + integrity sha512-04A2f24GhyyMicKvg/koIOQ5BzlrRbKiAgP6L+Pdj1MVX3yJ1NeZ8+EidndQsbejFT55oW1b++wg2Z8KlAyhfQ== + dependencies: + "@babel/runtime" "^7.9.2" + react-popper "^1.3.7" + +react-popper@^1.3.7: + version "1.3.7" + resolved "https://registry.npmjs.org/react-popper/-/react-popper-1.3.7.tgz#f6a3471362ef1f0d10a4963673789de1baca2324" + integrity sha512-nmqYTx7QVjCm3WUZLeuOomna138R1luC4EqkW3hxJUrAe+3eNz3oFCLYdnPwILfn0mX1Ew2c3wctrjlUMYYUww== + dependencies: + "@babel/runtime" "^7.1.2" + create-react-context "^0.3.0" + deep-equal "^1.1.1" + popper.js "^1.14.4" + prop-types "^15.6.1" + typed-styles "^0.0.7" + warning "^4.0.2" + +react-redux@=4.4.10: + version "4.4.10" + resolved "https://registry.npmjs.org/react-redux/-/react-redux-4.4.10.tgz#ad57bd1db00c2d0aa7db992b360ce63dd0b80ec5" + integrity sha512-tjL0Bmpkj75Td0k+lXlF8Fc8a9GuXFv/3ahUOCXExWs/jhsKiQeTffdH0j5byejCGCRL4tvGFYlrwBF1X/Aujg== + dependencies: + create-react-class "^15.5.1" + hoist-non-react-statics "^3.3.0" + invariant "^2.0.0" + lodash "^4.17.11" + loose-envify "^1.4.0" + prop-types "^15.7.2" + +react-redux@^7.1.1: + version "7.2.1" + resolved "https://registry.npmjs.org/react-redux/-/react-redux-7.2.1.tgz#8dedf784901014db2feca1ab633864dee68ad985" + integrity sha512-T+VfD/bvgGTUA74iW9d2i5THrDQWbweXP0AVNI8tNd1Rk5ch1rnMiJkDD67ejw7YBKM4+REvcvqRuWJb7BLuEg== + dependencies: + "@babel/runtime" "^7.5.5" + hoist-non-react-statics "^3.3.0" + loose-envify "^1.4.0" + prop-types "^15.7.2" + react-is "^16.9.0" + +react-router-dom@6.0.0-beta.0: + version "6.0.0-beta.0" + resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.0.0-beta.0.tgz#9dcc8555365f22f7fbd09f26b6b82543f3eb97d6" + integrity sha512-36yNNGMT8RB9FRPL9nKJi6HKDkgOakU+o/2hHpSzR6e37gN70MpOU6QQlmif4oAWWBwjyGc3ZNOMFCsFuHUY5w== + dependencies: + prop-types "^15.7.2" + react-router "6.0.0-beta.0" + +react-router@6.0.0-beta.0: + version "6.0.0-beta.0" + resolved "https://registry.npmjs.org/react-router/-/react-router-6.0.0-beta.0.tgz#3e11f39b6ded4412c2fed9e4f989dd4c8156724d" + integrity sha512-VgMdfpVcmFQki/LZuLh8E/MNACekDetz4xqft+a6fBZvvJnVqKbLqebF7hyoawGrV1HcO5tVaUang2Og4W2j1Q== + dependencies: + prop-types "^15.7.2" + +react-side-effect@^2.1.0: + version "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-sparklines@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/react-sparklines/-/react-sparklines-1.7.0.tgz#9b1d97e8c8610095eeb2ad658d2e1fcf91f91a60" + integrity sha512-bJFt9K4c5Z0k44G8KtxIhbG+iyxrKjBZhdW6afP+R7EnIq+iKjbWbEFISrf3WKNFsda+C46XAfnX0StS5fbDcg== + dependencies: + prop-types "^15.5.10" + +react-string-replace@^0.4.1: + version "0.4.4" + resolved "https://registry.npmjs.org/react-string-replace/-/react-string-replace-0.4.4.tgz#24006fbe0db573d5be583133df38b1a735cb4225" + integrity sha512-FAMkhxmDpCsGTwTZg7p/2v+/GTmxAp73so3fbSvlAcBBX36ujiGRNEaM/1u+jiYQrArhns+7eE92g2pi5E5FUA== + dependencies: + lodash "^4.17.4" + +react-syntax-highlighter@=13.5.0: + version "13.5.0" + resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.0.tgz#c0f3fd826a52b2a6ce5786d4ce60c3e0665b65c0" + integrity sha512-2nKo8spFxe9shcjbdUiqxkrf/IMDqKUZLx7JVIxEJ17P+fYFGL4CRsZZC66UPeQ2o/f29eKu31CrkKGCK1RHuA== + dependencies: + "@babel/runtime" "^7.3.1" + highlight.js "^10.1.1" + lowlight "^1.14.0" + prismjs "^1.21.0" + refractor "^3.1.0" + +react-syntax-highlighter@^11.0.2: + version "11.0.2" + resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-11.0.2.tgz#4e3f376e752b20d2f54e4c55652fd663149e4029" + integrity sha512-kqmpM2OH5OodInbEADKARwccwSQWBfZi0970l5Jhp4h39q9Q65C4frNcnd6uHE5pR00W8pOWj9HDRntj2G4Rww== + dependencies: + "@babel/runtime" "^7.3.1" + highlight.js "~9.13.0" + lowlight "~1.11.0" + prismjs "^1.8.4" + refractor "^2.4.1" + +react-syntax-highlighter@^13.5.1: + version "13.5.1" + resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.1.tgz#f21737cf6d582474a0f18b06b52613f4349c0e64" + integrity sha512-VVYTnFXF55WMRGdr3QNEzAzcypFZqH45kS7rqh90+AFeNGtui8/gV5AIOIJjwTsuP2UxcO9qvEq94Jq9BYFUhw== + dependencies: + "@babel/runtime" "^7.3.1" + highlight.js "^10.1.1" + lowlight "^1.14.0" + prismjs "^1.21.0" + refractor "^3.1.0" + +react-test-renderer@^16.13.1: + version "16.13.1" + resolved "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1" + integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ== + dependencies: + object-assign "^4.1.1" + prop-types "^15.6.2" + react-is "^16.8.6" + scheduler "^0.19.1" + +react-textarea-autosize@^7.1.0: + version "7.1.2" + resolved "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-7.1.2.tgz#70fdb333ef86bcca72717e25e623e90c336e2cda" + integrity sha512-uH3ORCsCa3C6LHxExExhF4jHoXYCQwE5oECmrRsunlspaDAbS4mGKNlWZqjLfInWtFQcf0o1n1jC/NGXFdUBCg== + dependencies: + "@babel/runtime" "^7.1.2" + prop-types "^15.6.0" + +react-transition-group@^4.0.0, react-transition-group@^4.4.0: + version "4.4.1" + resolved "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz#63868f9325a38ea5ee9535d828327f85773345c9" + integrity sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react-universal-interface@^0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz#5e8d438a01729a4dbbcbeeceb0b86be146fe2b3b" + integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw== + +react-use@^12.2.0: + version "12.13.0" + resolved "https://registry.npmjs.org/react-use/-/react-use-12.13.0.tgz#dfefd8145552841f1c2213c2e79966b505a264ba" + integrity sha512-Kh0m9ezIn9xfRycx4jdAgvsYGstGfjTBO2ecIM3+G0RqrpMxTIL5jjYraHYfUzjGBHf7dUhNYBzm5vw5LItVZA== + dependencies: + "@types/react-wait" "^0.3.0" + copy-to-clipboard "^3.1.0" + nano-css "^5.1.0" + react-fast-compare "^2.0.4" + react-wait "^0.3.0" + resize-observer-polyfill "^1.5.1" + screenfull "^5.0.0" + set-harmonic-interval "^1.0.1" + throttle-debounce "^2.0.1" + ts-easing "^0.2.0" + tslib "^1.10.0" + +react-use@^15.3.3: + version "15.3.3" + resolved "https://registry.npmjs.org/react-use/-/react-use-15.3.3.tgz#f16de7a16286c446388e8bd99680952fc3dc9a95" + integrity sha512-nYb94JbmDCaLZg3sOXmFW8HN+lXWxnl0caspXoYfZG1CON8JfLN9jMOyxRDUpm7dUq7WZ5mIept/ByqBQKJ0wQ== + dependencies: + "@types/js-cookie" "2.2.6" + "@xobotyi/scrollbar-width" "1.9.5" + copy-to-clipboard "^3.2.0" + fast-deep-equal "^3.1.3" + fast-shallow-equal "^1.0.0" + js-cookie "^2.2.1" + nano-css "^5.2.1" + react-universal-interface "^0.6.2" + resize-observer-polyfill "^1.5.1" + screenfull "^5.0.0" + set-harmonic-interval "^1.0.1" + throttle-debounce "^2.1.0" + ts-easing "^0.2.0" + tslib "^2.0.0" + +react-virtualized@^9.21.0: + version "9.22.2" + resolved "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.22.2.tgz#217a870bad91e5438f46f01a009e1d8ce1060a5a" + integrity sha512-5j4h4FhxTdOpBKtePSs1yk6LDNT4oGtUwjT7Nkh61Z8vv3fTG/XeOf8J4li1AYaexOwTXnw0HFVxsV0GBUqwRw== + dependencies: + "@babel/runtime" "^7.7.2" + clsx "^1.0.4" + dom-helpers "^5.1.3" + loose-envify "^1.4.0" + prop-types "^15.7.2" + react-lifecycles-compat "^3.0.4" + +react-wait@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/react-wait/-/react-wait-0.3.0.tgz#0cdd4d919012451a5bc3ab0a16d00c6fd9a8c10b" + integrity sha512-kB5x/kMKWcn0uVr9gBdNz21/oGbQwEQnF3P9p6E9yLfJ9DRcKS0fagbgYMFI0YFOoyKDj+2q6Rwax0kTYJF37g== + +react@^16.0.0, react@^16.12.0, react@^16.13.1, react@^16.8.3, react@^16.8.4: + version "16.13.1" + resolved "https://registry.npmjs.org/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" + integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + +read-cmd-shim@^1.0.1: + version "1.0.5" + resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz#87e43eba50098ba5a32d0ceb583ab8e43b961c16" + integrity sha512-v5yCqQ/7okKoZZkBQUAfTsQ3sVJtXdNfbPnI5cceppoxEVLYA3k+VtV2omkeo8MS94JCy4fSiUwlRBAwCVRPUA== + dependencies: + graceful-fs "^4.1.2" + +"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13: + version "2.1.2" + resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" + integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA== + dependencies: + glob "^7.1.1" + json-parse-even-better-errors "^2.3.0" + normalize-package-data "^2.0.0" + npm-normalize-package-bin "^1.0.0" + +read-package-tree@^5.1.6: + version "5.3.1" + resolved "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" + integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw== + dependencies: + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + util-promisify "^2.1.0" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" + integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc= + dependencies: + normalize-package-data "^2.3.2" + parse-json "^4.0.0" + pify "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +read@1, read@~1.0.1: + version "1.0.7" + resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= + dependencies: + mute-stream "~0.0.4" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@^2.3.7, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdir-scoped-modules@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" + integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.4.0: + version "3.4.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" + integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== + dependencies: + picomatch "^2.2.1" + +recast@^0.14.7: + version "0.14.7" + resolved "https://registry.npmjs.org/recast/-/recast-0.14.7.tgz#4f1497c2b5826d42a66e8e3c9d80c512983ff61d" + integrity sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A== + dependencies: + ast-types "0.11.3" + esprima "~4.0.0" + private "~0.1.5" + source-map "~0.6.1" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +recursive-readdir@2.2.2, recursive-readdir@^2.2.2: + version "2.2.2" + resolved "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" + integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== + dependencies: + minimatch "3.0.4" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +redent@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= + dependencies: + indent-string "^3.0.0" + strip-indent "^2.0.0" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +redux-immutable@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/redux-immutable/-/redux-immutable-3.1.0.tgz#cafbd686e0711261119b9c28960935dc47a49d0a" + integrity sha1-yvvWhuBxEmERm5wolgk13EeknQo= + dependencies: + immutable "^3.8.1" + +redux@=3.7.2: + version "3.7.2" + resolved "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" + integrity sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A== + dependencies: + lodash "^4.2.1" + lodash-es "^4.2.1" + loose-envify "^1.1.0" + symbol-observable "^1.0.3" + +redux@^4.0.4: + version "4.0.5" + resolved "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" + integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== + dependencies: + loose-envify "^1.4.0" + symbol-observable "^1.2.0" + +refractor@^2.4.1: + version "2.10.1" + resolved "https://registry.npmjs.org/refractor/-/refractor-2.10.1.tgz#166c32f114ed16fd96190ad21d5193d3afc7d34e" + integrity sha512-Xh9o7hQiQlDbxo5/XkOX6H+x/q8rmlmZKr97Ie1Q8ZM32IRRd3B/UxuA/yXDW79DBSXGWxm2yRTbcTVmAciJRw== + dependencies: + hastscript "^5.0.0" + parse-entities "^1.1.2" + prismjs "~1.17.0" + +refractor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/refractor/-/refractor-3.1.0.tgz#b05a43c8a1b4fccb30001ffcbd5cd781f7f06f78" + integrity sha512-bN8GvY6hpeXfC4SzWmYNQGLLF2ZakRDNBkgCL0vvl5hnpMrnyURk8Mv61v6pzn4/RBHzSWLp44SzMmVHqMGNww== + dependencies: + hastscript "^5.0.0" + parse-entities "^2.0.0" + prismjs "~1.21.0" + +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.1" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" + integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.5: + version "0.13.7" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +regexpp@^3.0.0, regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +regexpu-core@^4.7.0: + version "4.7.0" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + +registry-auth-token@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz#1d37dffda72bbecd0f581e4715540213a65eb7da" + integrity sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w== + dependencies: + rc "^1.2.8" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== + dependencies: + jsesc "~0.5.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remark-parse@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" + integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA== + dependencies: + 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 "^1.1.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 "^1.0.0" + vfile-location "^2.0.0" + xtend "^4.0.1" + +remarkable@^1.7.1: + version "1.7.4" + resolved "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00" + integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg== + dependencies: + argparse "^1.0.10" + autolinker "~0.28.0" + +remarkable@^2.0.0, remarkable@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/remarkable/-/remarkable-2.0.1.tgz#280ae6627384dfb13d98ee3995627ca550a12f31" + integrity sha512-YJyMcOH5lrR+kZdmB0aJJ4+93bEojRZ1HGDn9Eagu6ibg7aVZhc3OWbbShRid+Q5eAfsEqWxpe+g5W5nYNfNiA== + dependencies: + argparse "^1.0.10" + autolinker "^3.11.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.1: + version "2.0.3" + resolved "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" + integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA== + dependencies: + css-select "^1.1.0" + dom-converter "^0.2" + htmlparser2 "^3.3.0" + strip-ansi "^3.0.0" + utila "^0.4.0" + +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.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= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +replace-ext@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= + +replace-ext@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" + integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== + +replace-in-file@^6.0.0: + version "6.1.0" + resolved "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.1.0.tgz#9f9ddd7bb70d6ad231d2ad692e1b646e73d06647" + integrity sha512-URzjyF3nucvejuY13HFd7O+Q6tFJRLKGHLYVvSh+LiZj3gFXzSYGnIkQflnJJulCAI2/RTZaZkpOtdVdW0EhQA== + dependencies: + chalk "^4.0.0" + glob "^7.1.6" + yargs "^15.3.1" + +request-progress@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" + integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= + dependencies: + throttleit "^1.0.0" + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.5, request-promise-native@^1.0.8: + version "1.0.9" + resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.53.0, request@^2.55.0, request@^2.85.0, request@^2.87.0, request@^2.88.0, request@^2.88.2: + version "2.88.2" + resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +reselect@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/reselect/-/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7" + integrity sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA== + +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-alpn@^1.0.0: + version "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" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.15.1: + version "1.15.1" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" + integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== + dependencies: + path-parse "^1.0.6" + +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.16.1, resolve@^1.17.0, resolve@^1.3.2: + version "1.17.0" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + +responselike@1.0.2, responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +responselike@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" + integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + dependencies: + lowercase-keys "^2.0.0" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@0.12.0, retry@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rgbcolor@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz#d6505ecdb304a6595da26fa4b43307306775945d" + integrity sha1-1lBezbMEplldom+ktDMHMGd1lF0= + +rifm@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/rifm/-/rifm-0.7.0.tgz#debe951a9c83549ca6b33e5919f716044c2230be" + integrity sha512-DSOJTWHD67860I5ojetXdEQRIBvF6YcpNe53j0vn1vp9EUb9N80EiZTxgP+FkDKorWC8PZw052kTF4C1GOivCQ== + dependencies: + "@babel/runtime" "^7.3.1" + +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: + version "2.7.1" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rollup-plugin-dts@1.4.11: + version "1.4.11" + resolved "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-1.4.11.tgz#aedf0b7bb91d51e20b755e2c18e840edfc7af7a1" + integrity sha512-yiScAMKgwH77b44a/IFGgjLsmwSlNfQhEM+eCb2uMrupQMPE1n/12wrnT431+v1u6wYMF1XuHqldh+v/7mTvYA== + optionalDependencies: + "@babel/code-frame" "^7.10.4" + +rollup-plugin-esbuild@^2.0.0: + version "2.4.2" + resolved "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-2.4.2.tgz#631f272a06d349b5d7719ed20bae4fedd3ba756f" + integrity sha512-GJOaC2onOPcCN0w7tYv60Thg3ciX40YRubeGyS/DRo862udAiFuQGTIBSyNX20EWyvYLZmZ967ziGdzUJtIaAg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + joycon "^2.2.5" + strip-json-comments "^3.1.1" + +rollup-plugin-image-files@^1.4.2: + version "1.4.2" + resolved "https://registry.npmjs.org/rollup-plugin-image-files/-/rollup-plugin-image-files-1.4.2.tgz#0a329723bace95168a9a6efdacb51370c14fbfe5" + integrity sha512-tlydpQdGFssMWhPdWA9SFh4IGVSCzceNgJarJDID+km151IeIVzjATl8ZERNGS/QwMty25iammQqauxl1VUqDQ== + dependencies: + rollup "0.64.1" + rollup-pluginutils "2.4.1" + +rollup-plugin-peer-deps-external@^2.2.2: + version "2.2.3" + resolved "https://registry.npmjs.org/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.3.tgz#059a8aec1eefb48a475e9fcedc3b9e3deb521213" + integrity sha512-W6IePXTExGXVDAlfZbNUUrx3GxUOZP248u5n4a4ID1XZMrbQ+uGeNiEfapvdzwx0qZi5DNH/hDLiPUP+pzFIxg== + +rollup-plugin-postcss@^3.1.1: + version "3.1.8" + resolved "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-3.1.8.tgz#d1bcaf8eb0fcb0936e3684c22dd8628d13a82fd1" + integrity sha512-JHnGfW8quNc6ePxEkZ05HEZ1YiRxDgY9RKEetMfsrwxR2kh/d90OVScTc6b1c2Q17Cs/5TRYL+1uddG21lQe3w== + dependencies: + chalk "^4.0.0" + concat-with-sourcemaps "^1.1.0" + cssnano "^4.1.10" + import-cwd "^3.0.0" + p-queue "^6.3.0" + pify "^5.0.0" + postcss "^7.0.27" + postcss-load-config "^2.1.0" + postcss-modules "^2.0.0" + promise.series "^0.2.0" + resolve "^1.16.1" + rollup-pluginutils "^2.8.2" + safe-identifier "^0.4.1" + style-inject "^0.3.0" + +rollup-plugin-typescript2@^0.26.0: + version "0.26.0" + resolved "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.26.0.tgz#cee2b44d51d9623686656d76dc30a73c4de91672" + integrity sha512-lUK7XZVG77tu8dmv1L/0LZFlavED/5Yo6e4iMMl6fdox/yKdj4IFRRPPJEXNdmEaT1nDQQeCi7b5IwKHffMNeg== + dependencies: + find-cache-dir "^3.2.0" + fs-extra "8.1.0" + resolve "1.15.1" + rollup-pluginutils "2.8.2" + tslib "1.10.0" + +rollup-pluginutils@2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.4.1.tgz#de43ab54965bbf47843599a7f3adceb723de38db" + integrity sha512-wesMQ9/172IJDIW/lYWm0vW0LiKe5Ekjws481R7z9WTRtmO59cqyM/2uUlxvf6yzm/fElFmHUobeQOYz46dZJw== + dependencies: + estree-walker "^0.6.0" + micromatch "^3.1.10" + +rollup-pluginutils@2.8.2, rollup-pluginutils@^2.8.2: + version "2.8.2" + resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== + dependencies: + estree-walker "^0.6.1" + +rollup@0.64.1: + version "0.64.1" + resolved "https://registry.npmjs.org/rollup/-/rollup-0.64.1.tgz#9188ee368e5fcd43ffbc00ec414e72eeb5de87ba" + integrity sha512-+ThdVXrvonJdOTzyybMBipP0uz605Z8AnzWVY3rf+cSGnLO7uNkJBlN+9jXqWOomkvumXfm/esmBpA5d53qm7g== + dependencies: + "@types/estree" "0.0.39" + "@types/node" "*" + +rollup@2.23.x: + version "2.23.1" + resolved "https://registry.npmjs.org/rollup/-/rollup-2.23.1.tgz#d458d28386dc7660c2e8a4978bea6f9494046c20" + integrity sha512-Heyl885+lyN/giQwxA8AYT2GY3U+gOlTqVLrMQYno8Z1X9lAOpfXPiKiZCyPc25e9BLJM3Zlh957dpTlO4pa8A== + optionalDependencies: + fsevents "~2.1.2" + +rollup@^0.63.4: + version "0.63.5" + resolved "https://registry.npmjs.org/rollup/-/rollup-0.63.5.tgz#5543eecac9a1b83b7e1be598b5be84c9c0a089db" + integrity sha512-dFf8LpUNzIj3oE0vCvobX6rqOzHzLBoblyFp+3znPbjiSmSvOoK2kMKx+Fv9jYduG1rvcCfCveSgEaQHjWRF6g== + dependencies: + "@types/estree" "0.0.39" + "@types/node" "*" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +rtl-css-js@^1.9.0: + version "1.14.0" + resolved "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.14.0.tgz#daa4f192a92509e292a0519f4b255e6e3c076b7d" + integrity sha512-Dl5xDTeN3e7scU1cWX8c9b6/Nqz3u/HgR4gePc1kWXYiQWVQbKCEyK6+Hxve9LbcJ5EieHy1J9nJCN3grTtGwg== + dependencies: + "@babel/runtime" "^7.1.2" + +run-async@^2.2.0, run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.9: + version "1.1.9" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.2, rxjs@^6.5.3, rxjs@^6.5.5, rxjs@^6.6.0, rxjs@^6.6.2: + 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" + +safe-buffer@5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-identifier@^0.4.1: + version "0.4.2" + resolved "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb" + integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w== + +safe-json-parse@~1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" + integrity sha1-PnZyPjjf3aE8mx0poeB//uSzC1c= + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sanitize-html@^1.27.0: + version "1.27.4" + resolved "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.4.tgz#3864e7562fc708cefabcb0d51bbacde3411504cb" + integrity sha512-VvY1hxVvMXzSos/LzqeBl9/KYu3mkEOtl5NMwz6jER318dSHDCig0AOjZOtnoCwAC3HMs9LhfWkPCmQGttb4ng== + dependencies: + htmlparser2 "^4.1.0" + lodash "^4.17.15" + parse-srcset "^1.0.2" + postcss "^7.0.27" + +sax@>=0.6.0, sax@^1.1.4, sax@^1.2.4, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +scheduler@^0.19.0, scheduler@^0.19.1: + version "0.19.1" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" + integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.0.1, schema-utils@^2.5.0, schema-utils@^2.6.5, schema-utils@^2.6.6, 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" + +screenfull@^5.0.0: + version "5.0.2" + resolved "https://registry.npmjs.org/screenfull/-/screenfull-5.0.2.tgz#b9acdcf1ec676a948674df5cd0ff66b902b0bed7" + integrity sha512-cCF2b+L/mnEiORLN5xSAz6H3t18i2oHh9BA8+CQlAh5DRw2+NFAGQJOSYbcGw8B2k04g/lVvFcfZ83b3ysH5UQ== + +seek-bzip@^1.0.5: + version "1.0.6" + resolved "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" + integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== + dependencies: + commander "^2.8.1" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +select@^1.1.2: + version "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.7" + resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" + integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== + dependencies: + node-forge "0.9.0" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +semver-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" + integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== + +semver-truncate@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8" + integrity sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g= + dependencies: + semver "^5.3.0" + +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@4.3.2: + version "4.3.2" + resolved "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" + integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c= + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@7.x, semver@^7.2.1, semver@^7.3.2: + version "7.3.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= + +send@0.17.1: + version "0.17.1" + resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-error@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a" + integrity sha1-ULZ51WNc34Rme9yOWa9OW4HV9go= + +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== + 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" + integrity sha1-k10kDN/g9YBTB/3+ln2IlCosvPA= + dependencies: + etag "~1.8.1" + fresh "0.5.2" + ms "2.1.1" + parseurl "~1.3.2" + safe-buffer "5.1.1" + +serve-handler@^6.1.3: + version "6.1.3" + resolved "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz#1bf8c5ae138712af55c758477533b9117f6435e8" + integrity sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w== + dependencies: + bytes "3.0.0" + content-disposition "0.5.2" + fast-url-parser "1.1.3" + mime-types "2.1.18" + minimatch "3.0.4" + path-is-inside "1.0.2" + path-to-regexp "2.2.1" + range-parser "1.2.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-getter@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376" + integrity sha1-12nBgsnVpR9AkUXy+6guXoboA3Y= + dependencies: + to-object-path "^0.3.0" + +set-harmonic-interval@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz#e1773705539cdfb80ce1c3d99e7f298bb3995249" + integrity sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g== + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4, setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-clone@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" + integrity sha1-WQnodLp3EG1zrEFM/sH/yofZcGA= + dependencies: + is-extendable "^0.1.1" + kind-of "^2.0.1" + lazy-cache "^0.2.3" + mixin-object "^2.0.1" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shallow-equal@^1.1.0: + version "1.2.1" + resolved "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" + integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== + +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@1.7.2: + version "1.7.2" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + +shelljs@^0.8.3, shelljs@^0.8.4: + version "0.8.4" + resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" + integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +shortid@^2.2.14: + version "2.2.15" + resolved "https://registry.npmjs.org/shortid/-/shortid-2.2.15.tgz#2b902eaa93a69b11120373cd42a1f1fe4437c122" + integrity sha512-5EaCy2mx2Jgc/Fdn9uuDuNIIfWBpzY4XIlhoqtXF6qsf+/+SGZ+FxDdX/ZsMZiWupIWNqAEmiNY4RC+LSmCeOw== + dependencies: + nanoid "^2.1.0" + +side-channel@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz#cdc46b057550bbab63706210838df5d4c19519c3" + integrity sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g== + dependencies: + es-abstract "^1.18.0-next.0" + object-inspect "^1.8.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^3.0.3: + version "3.1.0" + resolved "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" + integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +simplebar-react@^1.0.0-alpha.6: + version "1.2.3" + resolved "https://registry.npmjs.org/simplebar-react/-/simplebar-react-1.2.3.tgz#bd81fa9827628470e9470d06caef6ece15e1c882" + integrity sha512-1EOWJzFC7eqHUp1igD1/tb8GBv5aPQA5ZMvpeDnVkpNJ3jAuvmrL2kir3HuijlxhG7njvw9ssxjjBa89E5DrJg== + dependencies: + prop-types "^15.6.1" + simplebar "^4.2.3" + +simplebar@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/simplebar/-/simplebar-4.2.3.tgz#dac40aced299c17928329eab3d5e6e795fafc10c" + integrity sha512-9no0pK7/1y+8/oTF3sy/+kx0PjQ3uk4cYwld5F1CJGk2gx+prRyUq8GRfvcVLq5niYWSozZdX73a2wIr1o9l/g== + dependencies: + can-use-dom "^0.1.0" + core-js "^3.0.1" + lodash.debounce "^4.0.8" + lodash.memoize "^4.1.2" + lodash.throttle "^4.1.1" + resize-observer-polyfill "^1.5.1" + +sisteransi@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +sitemap@^3.2.2: + version "3.2.2" + resolved "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz#3f77c358fa97b555c879e457098e39910095c62b" + integrity sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg== + dependencies: + lodash.chunk "^4.2.0" + lodash.padstart "^4.6.1" + whatwg-url "^7.0.0" + xmlbuilder "^13.0.0" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slide@^1.1.6: + version "1.1.6" + resolved "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= + +smart-buffer@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" + integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + 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== + dependencies: + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" + +sockjs@0.3.20: + version "0.3.20" + resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" + integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== + dependencies: + faye-websocket "^0.10.0" + uuid "^3.4.0" + websocket-driver "0.6.5" + +socks-proxy-agent@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" + integrity sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg== + dependencies: + agent-base "~4.2.1" + socks "~2.3.2" + +socks@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3" + integrity sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA== + dependencies: + ip "1.1.5" + smart-buffer "^4.1.0" + +sort-keys-length@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" + integrity sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg= + dependencies: + sort-keys "^1.0.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" + integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= + dependencies: + is-plain-obj "^1.0.0" + +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== + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-resolve@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" + integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== + dependencies: + 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: + 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== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@0.5.6: + version "0.5.6" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= + +source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "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: + version "0.7.3" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +sourcemap-codec@^1.4.1, sourcemap-codec@^1.4.4: + version "1.4.8" + resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +space-separated-tokens@^1.0.0: + version "1.1.5" + resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" + integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== + +spawn-command@^0.0.2-1: + version "0.0.2-1" + resolved "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" + integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-ca@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz#6c83aff3692fa61256e0cd197e05e9de157691a6" + integrity sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY= + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +split2@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" + integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== + dependencies: + through2 "^2.0.2" + +split@0.3: + version "0.3.3" + resolved "https://registry.npmjs.org/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= + dependencies: + through "2" + +split@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sqlite3@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/sqlite3/-/sqlite3-4.2.0.tgz#49026d665e9fc4f922e56fb9711ba5b4c85c4901" + integrity sha512-roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg== + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.11.0" + +squeak@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz#33045037b64388b567674b84322a6521073916c3" + integrity sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM= + dependencies: + chalk "^1.0.0" + console-stream "^0.1.1" + lpad-align "^1.0.1" + +ssh2-streams@~0.4.10: + version "0.4.10" + resolved "https://registry.npmjs.org/ssh2-streams/-/ssh2-streams-0.4.10.tgz#48ef7e8a0e39d8f2921c30521d56dacb31d23a34" + integrity sha512-8pnlMjvnIZJvmTzUIIA5nT4jr2ZWNNVHwyXfMGdRJbug9TpI3kd99ffglgfSWqujVv/0gxwMsDn9j9RVst8yhQ== + dependencies: + asn1 "~0.2.0" + bcrypt-pbkdf "^1.0.2" + streamsearch "~0.1.2" + +ssh2@^0.8.7: + version "0.8.9" + resolved "https://registry.npmjs.org/ssh2/-/ssh2-0.8.9.tgz#54da3a6c4ba3daf0d8477a538a481326091815f3" + integrity sha512-GmoNPxWDMkVpMFa9LVVzQZHF6EW3WKmBwL+4/GeILf2hFmix5Isxm7Amamo8o7bHiU0tC+wXsGcUXOxp8ChPaw== + dependencies: + ssh2-streams "~0.4.10" + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.0, ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +ssri@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" + integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g== + dependencies: + figgy-pudding "^3.5.1" + minipass "^3.1.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-generator@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.5.tgz#fb00e5b4ee97de603e0773ea78ce944d81596c36" + integrity sha512-/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q== + dependencies: + stackframe "^1.1.1" + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= + +stack-utils@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593" + integrity sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg== + dependencies: + escape-string-regexp "^2.0.0" + +stackblur-canvas@2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.2.0.tgz#cacc5924a0744b3e183eb2e6c1d8559c1a17c26e" + integrity sha512-5Gf8dtlf8k6NbLzuly2NkGrkS/Ahh+I5VUjO7TnFizdJtgpfpLLEdQlLe9umbcnZlitU84kfYjXE67xlSXfhfQ== + +stackblur-canvas@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-1.4.1.tgz#849aa6f94b272ff26f6471fa4130ed1f7e47955b" + integrity sha1-hJqm+UsnL/JvZHH6QTDtH35HlVs= + +stackframe@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" + integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== + +stacktrace-gps@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.0.4.tgz#7688dc2fc09ffb3a13165ebe0dbcaf41bcf0c69a" + integrity sha512-qIr8x41yZVSldqdqe6jciXEaSCKw1U8XTXpjDuy0ki/apyTn/r3w9hDAAQOhZdxvsC93H+WwwEu5cq5VemzYeg== + dependencies: + source-map "0.5.6" + stackframe "^1.1.1" + +stacktrace-js@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz#4ca93ea9f494752d55709a081d400fdaebee897b" + integrity sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg== + dependencies: + error-stack-parser "^2.0.6" + stack-generator "^2.0.5" + stacktrace-gps "^3.0.4" + +start-server-and-test@^1.10.11: + version "1.11.3" + resolved "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-1.11.3.tgz#d293d2cff2c2fa0a46bbcf6b292716dbc8042d01" + integrity sha512-7r2lvcnJPECSG+ydMzk1wLt3MdzsHnYj+kXgKyzbvTXul5XYEmYJJ3K7YUGNgo5w/vnZb8L/AZMyg1C17qBdzg== + dependencies: + bluebird "3.7.2" + check-more-types "2.24.0" + debug "4.1.1" + execa "3.4.0" + lazy-ass "1.6.0" + ps-tree "1.2.0" + wait-on "5.2.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== + +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" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +statuses@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.0.tgz#aa7b107e018eb33e08e8aee2e7337e762dda1028" + integrity sha512-w9jNUUQdpuVoYqXxnyOakhckBbOxRaoYqJscyIBYCS5ixyCnO7nQn7zBZvP9zf5QOPZcz2DLUpE3KsNPbJBOFA== + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +stoppable@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz#32da568e83ea488b08e4d7ea2c3bcc9d75015d5b" + integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== + +store2@^2.7.1: + 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@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/storybook-dark-mode/-/storybook-dark-mode-0.6.1.tgz#0527567ac5853c49f6f7a6f68f792fe9322c5a5a" + integrity sha512-E8LIHnVfFhOsPqBc2fLshVBnspziYMXHdwQc/qAjpf4h5ewzrDzeqy4QfJioE+jDoyyZXEtIMugzb0wIaK10Uw== + dependencies: + fast-deep-equal "^3.0.0" + memoizerific "^1.11.3" + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= + dependencies: + duplexer "~0.1.1" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +stream@^0.0.2: + version "0.0.2" + resolved "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz#7f5363f057f6592c5595f00bc80a27f5cec1f0ef" + integrity sha1-f1Nj8Ff2WSxVlfALyAon9c7B8O8= + dependencies: + emitter-component "^1.1.1" + +streamsearch@0.1.2, streamsearch@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= + +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= + +string-argv@0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + +string-env-interpolation@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152" + integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg== + +string-hash@^1.1.1: + version "1.1.3" + resolved "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" + integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= + +string-length@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" + integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-template@~0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" + integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.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== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +"string.prototype.matchall@^4.0.0 || ^3.0.1", string.prototype.matchall@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" + integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0" + has-symbols "^1.0.1" + internal-slot "^1.0.2" + regexp.prototype.flags "^1.3.0" + side-channel "^1.0.2" + +string.prototype.padend@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz#dc08f57a8010dc5c153550318f67e13adbb72ac3" + integrity sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +string.prototype.padstart@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.0.tgz#b47c087540d0710be5a49375751a0a627bd4ff90" + integrity sha512-envqZvUp2JItI+OeQ5UAh1ihbAV5G/2bixTojvlIa090GGqF+NQRxbWb2nv9fTGrZABv6+pE6jXoAZhhS2k4Hw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +string.prototype.trimend@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimstart@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string_decoder@0.10: + version "0.10.31" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.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: + version "5.2.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@6.0.0, strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.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" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-color@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/strip-color/-/strip-color-0.1.0.tgz#106f65d3d3e6a2d9401cac0eb0ce8b8a702b4f7b" + integrity sha1-EG9l09PmotlAHKwOsM6LinArT3s= + +strip-dirs@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" + integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== + dependencies: + is-natural-number "^4.0.1" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + dependencies: + get-stdin "^4.0.1" + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +strip-outer@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + +strong-log-transformer@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" + integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== + dependencies: + duplexer "^0.1.1" + minimist "^1.2.0" + through "^2.3.4" + +style-inject@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" + integrity sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw== + +style-loader@^1.0.0, style-loader@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz#c5cbbfbf1170d076cfdd86e0109c5bba114baa1a" + integrity sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg== + dependencies: + loader-utils "^2.0.0" + schema-utils "^2.6.6" + +styled-system@^5.1.5: + version "5.1.5" + resolved "https://registry.npmjs.org/styled-system/-/styled-system-5.1.5.tgz#e362d73e1dbb5641a2fd749a6eba1263dc85075e" + integrity sha512-7VoD0o2R3RKzOzPK0jYrVnS8iJdfkKsQJNiLRDjikOpQVqQHns/DXWaPZOH4tIKkhAT7I6wIsy9FWTWh2X3q+A== + dependencies: + "@styled-system/background" "^5.1.2" + "@styled-system/border" "^5.1.5" + "@styled-system/color" "^5.1.2" + "@styled-system/core" "^5.1.2" + "@styled-system/flexbox" "^5.1.2" + "@styled-system/grid" "^5.1.2" + "@styled-system/layout" "^5.1.2" + "@styled-system/position" "^5.1.2" + "@styled-system/shadow" "^5.1.2" + "@styled-system/space" "^5.1.2" + "@styled-system/typography" "^5.1.2" + "@styled-system/variant" "^5.1.5" + object-assign "^4.1.1" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +stylis@3.5.0: + version "3.5.0" + resolved "https://registry.npmjs.org/stylis/-/stylis-3.5.0.tgz#016fa239663d77f868fef5b67cf201c4b7c701e1" + integrity sha512-pP7yXN6dwMzAR29Q0mBrabPCe0/mNO1MSr93bhay+hcZondvMMTpeGyd8nbhYJdyperNT2DRxONQuUGcJr5iPw== + +subscriptions-transport-ws@0.9.18, subscriptions-transport-ws@^0.9.11, subscriptions-transport-ws@^0.9.16: + version "0.9.18" + resolved "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz#bcf02320c911fbadb054f7f928e51c6041a37b97" + integrity sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA== + dependencies: + backo2 "^1.0.2" + eventemitter3 "^3.1.0" + iterall "^1.2.1" + symbol-observable "^1.0.4" + ws "^5.2.0" + +sucrase@^3.14.1: + version "3.15.0" + resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.15.0.tgz#78596a78be7264a65b52ed8d873883413ef0220c" + integrity sha512-05TJOUfMgckH7wKqfk/1p4G6q16nIeW/GHQwD44vkT0mQMqqzgfHCwkX3whNmwyOo7nVF0jDLwVu/qOBTtsscw== + dependencies: + commander "^4.0.0" + glob "7.1.6" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + +superagent@^3.8.3: + version "3.8.3" + resolved "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz#460ea0dbdb7d5b11bc4f78deba565f86a178e128" + integrity sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA== + dependencies: + component-emitter "^1.2.0" + cookiejar "^2.1.0" + debug "^3.1.0" + extend "^3.0.0" + form-data "^2.3.1" + formidable "^1.2.0" + methods "^1.1.1" + mime "^1.4.1" + qs "^6.5.1" + readable-stream "^2.3.5" + +supertest@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/supertest/-/supertest-4.0.2.tgz#c2234dbdd6dc79b6f15b99c8d6577b90e4ce3f36" + integrity sha512-1BAbvrOZsGA3YTCWqbmh14L0YEq0EGICX/nBnfkfVJn7SrxQV1I3pMYjSzG9y/7ZU2V9dWqyqk2POwxlb09duQ== + dependencies: + methods "^1.1.2" + superagent "^3.8.3" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.0.0" + +supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" + integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +svg-parser@^2.0.0, svg-parser@^2.0.2: + version "2.0.4" + resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@^1.0.0, svgo@^1.2.2, svgo@^1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +swagger-client@=3.10.12: + version "3.10.12" + resolved "https://registry.npmjs.org/swagger-client/-/swagger-client-3.10.12.tgz#f49beb7a6f91b6e5778cfbd3fd4064413be6e791" + integrity sha512-h2o7axvFViMc5sxwTjjza84Rhfz+C52wgMKPOT0P05jODjZhldBK7y9EvGt4zvqgzBJHS+FDQBmOT/dGf9SWdw== + dependencies: + "@babel/runtime-corejs2" "^7.10.4" + btoa "^1.2.1" + buffer "^5.6.0" + cookie "~0.4.1" + cross-fetch "^3.0.5" + deep-extend "~0.6.0" + fast-json-patch "^2.2.1" + isomorphic-form-data "~2.0.0" + js-yaml "^3.14.0" + lodash "^4.17.19" + qs "^6.9.4" + querystring-browser "^1.0.4" + traverse "~0.6.6" + url "~0.11.0" + +swagger-ui-react@^3.31.1: + version "3.32.5" + resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-3.32.5.tgz#866369dcefd0741ff8c35f3e8743e5a48a04f18f" + integrity sha512-p1/NU1stVf6RRj/+mGRMMNwB18UTDFSK0s7LLCxXLCK4ml6yeyHjeOY/T997B29ZPprOLmzJJdMzWEz2m+4jQg== + dependencies: + "@babel/runtime-corejs2" "^7.10.4" + "@braintree/sanitize-url" "^4.0.0" + "@kyleshockey/object-assign-deep" "^0.4.2" + "@kyleshockey/xml" "^1.0.2" + base64-js "^1.2.0" + classnames "^2.2.6" + core-js "^2.6.11" + css.escape "1.5.1" + deep-extend "0.6.0" + dompurify "^2.0.7" + ieee754 "^1.1.13" + immutable "^3.x.x" + js-file-download "^0.4.1" + js-yaml "^3.13.1" + lodash "^4.17.19" + memoizee "^0.4.12" + prop-types "^15.7.2" + randombytes "^2.1.0" + react-copy-to-clipboard "5.0.1" + react-debounce-input "^3.2.0" + react-immutable-proptypes "2.1.0" + react-immutable-pure-component "^1.1.1" + react-inspector "^2.3.0" + react-motion "^0.5.2" + react-redux "=4.4.10" + react-syntax-highlighter "=13.5.0" + redux "=3.7.2" + redux-immutable "3.1.0" + remarkable "^2.0.1" + reselect "^4.0.0" + serialize-error "^2.1.0" + sha.js "^2.4.11" + swagger-client "=3.10.12" + url-parse "^1.4.7" + xml-but-prettier "^1.0.1" + zenscroll "^4.0.2" + +swr@^0.3.0: + version "0.3.1" + resolved "https://registry.npmjs.org/swr/-/swr-0.3.1.tgz#b673f32a470418a785d962c86bd96ec555986dd0" + integrity sha512-g9JrXXMo54CSc+DU+KS0S8+5r6cpeBmBmVLhCu23ifQL9u0KKirkJpNX3Za3eOttmUuRQLXA8N1YPpoc8ejdpA== + dependencies: + fast-deep-equal "2.0.1" + +symbol-observable@^1.0.3, symbol-observable@^1.0.4, symbol-observable@^1.1.0, symbol-observable@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +"symbol-tree@>= 3.1.0 < 4.0.0", symbol-tree@^3.2.2, symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +symbol.prototype.description@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/symbol.prototype.description/-/symbol.prototype.description-1.0.2.tgz#f325e1e6ad534b3b29c9c3ca73c136c9ce03c5e2" + integrity sha512-2CW5SU4/Ki1cYOOHcL2cXK4rxSg5hCU1TwZ7X4euKhV9VnfqKslh7T6/UyKkubA8cq2tOmsOv7m3ZUmQslBRuw== + dependencies: + es-abstract "^1.17.0-next.1" + has-symbols "^1.0.1" + +synchronous-promise@^2.0.13: + version "2.0.13" + resolved "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.13.tgz#9d8c165ddee69c5a6542862b405bc50095926702" + integrity sha512-R9N6uDkVsghHePKh1TEqbnLddO2IY25OcsksyFp/qBe7XYd0PVbKEWxhcdMhpLzE1I6skj5l4aEZ3CRxcbArlA== + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.npmjs.org/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tar-fs@^1.16.3: + version "1.16.3" + resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" + integrity sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw== + dependencies: + chownr "^1.0.1" + mkdirp "^0.5.1" + pump "^1.0.0" + tar-stream "^1.1.2" + +tar-fs@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2" + integrity sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.0.0" + +tar-stream@^1.1.2, tar-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + +tar-stream@^2.0.0: + version "2.1.3" + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.3.tgz#1e2022559221b7866161660f118255e20fa79e41" + integrity sha512-Z9yri56Dih8IaK8gncVPx4Wqt86NDmQTSh49XLZgjWpGZL9GK9HKParS2scqHCC4w6X9Gh2jwaU45V47XTKwVA== + dependencies: + bl "^4.0.1" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: + version "4.4.13" + resolved "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +tar@^6.0.1: + version "6.0.5" + resolved "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" + integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +tarn@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/tarn/-/tarn-3.0.0.tgz#a4082405216c0cce182b8b4cb2639c52c1e870d4" + integrity sha512-PKUnlDFODZueoA8owLehl8vLcgtA8u4dRuVbZc92tspDYZixjJL6TqYOmryf/PfP/EBX+2rgNcrj96NO+RPkdQ== + +tcp-port-used@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.1.tgz#46061078e2d38c73979a2c2c12b5a674e6689d70" + integrity sha512-rwi5xJeU6utXoEIiMvVBMc9eJ2/ofzB+7nLOdnZuFTmNCLqRiQh2sMG9MqCxHU/69VC/Fwp5dV9306Qd54ll1Q== + dependencies: + debug "4.1.0" + is2 "2.0.1" + +tdigest@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz#2e3cb2c39ea449e55d1e6cd91117accca4588021" + integrity sha1-Ljyyw56kSeVdHmzZEReszKRYgCE= + dependencies: + bintrees "1.0.1" + +telejson@^3.2.0: + version "3.3.0" + resolved "https://registry.npmjs.org/telejson/-/telejson-3.3.0.tgz#6d814f3c0d254d5c4770085aad063e266b56ad03" + integrity sha512-er08AylQ+LEbDLp1GRezORZu5wKOHaBczF6oYJtgC3Idv10qZ8A3p6ffT+J5BzDKkV9MqBvu8HAKiIIOp6KJ2w== + dependencies: + "@types/is-function" "^1.0.0" + global "^4.4.0" + is-function "^1.0.1" + is-regex "^1.0.4" + is-symbol "^1.0.3" + isobject "^4.0.0" + lodash "^4.17.15" + memoizerific "^1.11.3" + +telejson@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/telejson/-/telejson-5.0.2.tgz#ed1e64be250cc1c757a53c19e1740b49832b3d51" + integrity sha512-XCrDHGbinczsscs8LXFr9jDhvy37yBk9piB7FJrCfxE8oP66WDkolNMpaBkWYgQqB9dQGBGtTDzGQPedc9KJmw== + dependencies: + "@types/is-function" "^1.0.0" + global "^4.4.0" + is-function "^1.0.2" + is-regex "^1.1.1" + is-symbol "^1.0.3" + isobject "^4.0.0" + lodash "^4.17.19" + memoizerific "^1.11.3" + +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= + +temp-write@^3.4.0: + version "3.4.0" + resolved "https://registry.npmjs.org/temp-write/-/temp-write-3.4.0.tgz#8cff630fb7e9da05f047c74ce4ce4d685457d492" + integrity sha1-jP9jD7fp2gXwR8dM5M5NaFRX1JI= + dependencies: + graceful-fs "^4.1.2" + is-stream "^1.1.0" + make-dir "^1.0.0" + pify "^3.0.0" + temp-dir "^1.0.0" + uuid "^3.0.1" + +tempfile@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265" + integrity sha1-awRGhWqbERTRhW/8vlCczLCXcmU= + dependencies: + temp-dir "^1.0.0" + uuid "^3.0.1" + +term-size@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" + integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@^1.4.3: + version "1.4.5" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser-webpack-plugin@^2.1.2: + version "2.3.8" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz#894764a19b0743f2f704e7c2a848c5283a696724" + integrity sha512-/fKw3R+hWyHfYx7Bv6oPqmk4HGQcrWLtV3X6ggvPuwPNHSnzvVV51z6OaaCOus4YLjutYGOz3pEpbhe6Up2s1w== + dependencies: + cacache "^13.0.1" + find-cache-dir "^3.3.1" + jest-worker "^25.4.0" + p-limit "^2.3.0" + schema-utils "^2.6.6" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.6.12" + webpack-sources "^1.4.3" + +terser@^4.1.2, terser@^4.6.12, 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== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-encoding-utf-8@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" + integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== + +text-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + +text-table@0.2.0, text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +theme-ui@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/theme-ui/-/theme-ui-0.3.1.tgz#b00ee2c03eb3d820536af8b121c64d13b3777cf0" + integrity sha512-My/TSALqp7Dst5Ez7nJA+94Q8zJhc26Z0qGo8kEWyoqHHJ5TU8xdhjLPBltTdQck3T32cSq5USIeSKU3JtxYUQ== + dependencies: + "@theme-ui/color-modes" "^0.3.1" + "@theme-ui/components" "^0.3.1" + "@theme-ui/core" "^0.3.1" + "@theme-ui/css" "^0.3.1" + "@theme-ui/mdx" "^0.3.0" + "@theme-ui/theme-provider" "^0.3.1" + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +throat@^5.0.0: + version "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: + version "2.3.0" + resolved "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.3.0.tgz#fd31865e66502071e411817e241465b3e9c372e2" + integrity sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ== + +throttleit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" + integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= + +through2@^2.0.0, through2@^2.0.2: + version "2.0.5" + resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through2@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" + integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== + dependencies: + inherits "^2.0.4" + readable-stream "2 || 3" + +through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8, through@~2.3, through@~2.3.1: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +tildify@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz#f205f3674d677ce698b7067a99e949ce03b4754a" + integrity sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw== + +timeago.js@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/timeago.js/-/timeago.js-4.0.2.tgz#724e8c8833e3490676c7bb0a75f5daf20e558028" + integrity sha512-a7wPxPdVlQL7lqvitHGGRsofhdwtkoSXPGATFuSOA2i1ZNQEPLrGnj68vOp2sOJTCFAQVXPeNMX/GctBaO9L2w== + +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +timers-browserify@^2.0.4: + version "2.0.11" + resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + dependencies: + setimmediate "^1.0.4" + +timers-ext@^0.1.5: + version "0.1.7" + resolved "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tiny-invariant@^1.0.6: + version "1.1.0" + resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" + integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== + +tiny-lr@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" + integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA== + dependencies: + body "^5.1.0" + debug "^3.1.0" + faye-websocket "~0.10.0" + livereload-js "^2.3.0" + object-assign "^4.1.0" + qs "^6.4.0" + +tiny-merge-patch@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/tiny-merge-patch/-/tiny-merge-patch-0.1.2.tgz#2e8ded19c56ea15dbd3ad4ed5db1c8e5ad544c3c" + integrity sha1-Lo3tGcVuoV29OtTtXbHI5a1UTDw= + +tiny-warning@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmp@~0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" + integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== + dependencies: + rimraf "^2.6.3" + +tmp@~0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-readable-stream@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8" + integrity sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w== + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toggle-selection@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" + integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +toml@^2.3.2: + version "2.3.6" + resolved "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz#25b0866483a9722474895559088b436fd11f861b" + integrity sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ== + +toposort@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" + integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA= + +tosource@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/tosource/-/tosource-1.0.0.tgz#42d88dd116618bcf00d6106dd5446f3427902ff1" + integrity sha1-QtiN0RZhi88A1hBt1URvNCeQL/E= + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== + dependencies: + nopt "~1.0.10" + +tough-cookie@^2.2.0, tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +tr46@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" + integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== + dependencies: + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + +traverse@~0.6.6: + version "0.6.6" + resolved "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= + +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +tree-node-cli@^1.2.5: + version "1.4.0" + resolved "https://registry.npmjs.org/tree-node-cli/-/tree-node-cli-1.4.0.tgz#8f4028554610d6ee1cdeb98554a60841a3cfa3ac" + integrity sha512-hBc/cp7rTSHFSFvaTzmHNYyJv87UJBsxsfCoq2DtDQuMES4vhnLuvXZit/asGtZG8edWTCydWeFWoBz9LYkJdQ== + dependencies: + commander "^5.0.0" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + +trim-newlines@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= + +trim-newlines@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" + integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== + +trim-off-newlines@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" + integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= + dependencies: + escape-string-regexp "^1.0.2" + +trim-trailing-lines@^1.0.0: + version "1.1.3" + resolved "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz#7f0739881ff76657b7776e10874128004b625a94" + integrity sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA== + +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" + integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== + +trough@^1.0.0: + version "1.0.5" + resolved "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" + integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== + +truncate-html@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/truncate-html/-/truncate-html-1.0.3.tgz#0166dfc7890626130c2e4174c6b73d4d63993e5f" + integrity sha512-1o1prdRv+iehXcGwn29YgXU17DotHkr+OK3ijVEG7FGMwHNG9RyobXwimw6djDvbIc24rhmz3tjNNvNESjkNkQ== + dependencies: + "@types/cheerio" "^0.22.8" + cheerio "0.22.0" + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +ts-dedent@^1.1.0, ts-dedent@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ts-dedent/-/ts-dedent-1.1.1.tgz#68fad040d7dbd53a90f545b450702340e17d18f3" + integrity sha512-UGTRZu1evMw4uTPyYF66/KFd22XiU+jMaIuHrkIHQ2GivAXVlLV0v/vHrpOuTRf9BmpNHi/SO7Vd0rLu0y57jg== + +ts-easing@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz#c8a8a35025105566588d87dbda05dd7fbfa5a4ec" + integrity sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ== + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + +ts-invariant@^0.4.0: + version "0.4.4" + resolved "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" + integrity sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA== + dependencies: + tslib "^1.9.3" + +ts-jest@^26.0.0: + version "26.3.0" + resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-26.3.0.tgz#6b2845045347dce394f069bb59358253bc1338a9" + integrity sha512-Jq2uKfx6bPd9+JDpZNMBJMdMQUC3sJ08acISj8NXlVgR2d5OqslEHOR2KHMgwymu8h50+lKIm0m0xj/ioYdW2Q== + dependencies: + "@types/jest" "26.x" + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + jest-util "26.x" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + mkdirp "1.x" + semver "7.x" + yargs-parser "18.x" + +ts-loader@^7.0.4: + version "7.0.5" + resolved "https://registry.npmjs.org/ts-loader/-/ts-loader-7.0.5.tgz#789338fb01cb5dc0a33c54e50558b34a73c9c4c5" + integrity sha512-zXypEIT6k3oTc+OZNx/cqElrsbBtYqDknf48OZos0NQ3RTt045fBIU8RRSu+suObBzYB355aIPGOe/3kj9h7Ig== + dependencies: + chalk "^2.3.0" + enhanced-resolve "^4.0.0" + loader-utils "^1.0.2" + micromatch "^4.0.0" + semver "^6.0.0" + +ts-node@^8.6.2: + version "8.10.2" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d" + integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== + dependencies: + arg "^4.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + +ts-pnp@^1.1.2: + version "1.2.0" + resolved "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + +tsconfig-paths@^3.9.0: + version "3.9.0" + resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +tslib@1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + +tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: + version "1.13.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== + +tslib@^2.0.0, tslib@^2.0.1, tslib@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e" + integrity sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ== + +tsutils@^3.17.1: + version "3.17.1" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz#7f06b2b9fbfc581068d1341ffabd0349ceafc642" + integrity sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw== + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +type-fest@^0.3.0: + version "0.3.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@^1.6.16, type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/type/-/type-2.1.0.tgz#9bdc22c648cf8cf86dd23d32336a41cfb6475e3f" + integrity sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA== + +typed-styles@^0.0.7: + version "0.0.7" + resolved "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9" + integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typescript@^3.9.3: + version "3.9.7" + resolved "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" + integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== + +ua-parser-js@^0.7.18: + version "0.7.21" + resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" + integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== + +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + +uglify-js@^3.1.4: + version "3.10.3" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.3.tgz#f0d2f99736c14de46d2d24649ba328be3e71c3bf" + integrity sha512-Lh00i69Uf6G74mvYpHCI9KVVXLcHW/xu79YTvH7Mkc9zyKUeSPz0owW0dguj0Scavns3ZOh3wY63J0Zb97Za2g== + +uid-number@0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= + +uid2@0.0.3, uid2@0.0.x: + version "0.0.3" + resolved "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82" + integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I= + +umask@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" + integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= + +unbzip2-stream@^1.0.9: + version "1.4.3" + resolved "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= + +undefsafe@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae" + integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A== + dependencies: + debug "^2.2.0" + +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== + +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" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + +unified@^6.1.5: + version "6.2.0" + resolved "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" + integrity sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-plain-obj "^1.1.0" + trough "^1.0.0" + vfile "^2.0.0" + x-is-string "^0.1.0" + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +unist-util-is@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" + integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== + +unist-util-remove-position@^1.0.0: + version "1.1.4" + resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020" + integrity sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A== + dependencies: + unist-util-visit "^1.1.0" + +unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" + integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== + +unist-util-visit-parents@1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz#f6e3afee8bdbf961c0e6f028ea3c0480028c3d06" + integrity sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q== + +unist-util-visit-parents@^2.0.0: + version "2.1.2" + resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" + integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== + dependencies: + unist-util-is "^3.0.0" + +unist-util-visit@^1.1.0, unist-util-visit@^1.3.0: + version "1.4.1" + resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" + integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== + dependencies: + unist-util-visit-parents "^2.0.0" + +universal-user-agent@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.1.tgz#fd8d6cb773a679a709e967ef8288a31fcc03e557" + integrity sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg== + dependencies: + os-name "^3.1.0" + +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== + +unixify@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090" + integrity sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA= + dependencies: + normalize-path "^2.1.1" + +unpipe@1.0.0, unpipe@~1.0.0: + version "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: + version "1.1.1" + resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + +upath@^1.1.1, upath@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-notifier@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.1.tgz#895fc8562bbe666179500f9f2cebac4f26323746" + integrity sha512-9y+Kds0+LoLG6yN802wVXoIfxYEwh3FlZwzMwpCZp62S2i1/Jzeqb9Eeeju3NSHccGGasfGlK5/vEHbAifYRDg== + dependencies: + boxen "^4.2.0" + chalk "^3.0.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.3.1" + is-npm "^4.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.0.0" + pupa "^2.0.1" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + +uri-js@^4.2.1, uri-js@^4.2.2: + version "4.4.0" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-loader@^2.0.1: + version "2.3.0" + resolved "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b" + integrity sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog== + dependencies: + loader-utils "^1.2.3" + mime "^2.4.4" + schema-utils "^2.5.0" + +url-loader@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/url-loader/-/url-loader-4.1.0.tgz#c7d6b0d6b0fccd51ab3ffc58a78d32b8d89a7be2" + integrity sha512-IzgAAIC8wRrg6NYkFIJY09vtktQcsvU8V6HhtQj9PTefbYImzLB1hufqo4m+RyM5N3mLx5BqJKccgxJS+W3kqw== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.26" + schema-utils "^2.6.5" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url-parse@^1.4.3, url-parse@^1.4.7: + version "1.4.7" + resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= + +url-value-parser@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/url-value-parser/-/url-value-parser-2.0.1.tgz#c8179a095ab9ec1f5aa17ca36af5af396b4e95ed" + integrity sha512-bexECeREBIueboLGM3Y1WaAzQkIn+Tca/Xjmjmfd0S/hFHSCEoFkNh0/D0l9G4K74MkEP/lLFRlYnxX3d68Qgw== + +url@^0.11.0, url@~0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use-callback-ref@^1.2.1: + version "1.2.4" + resolved "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.2.4.tgz#d86d1577bfd0b955b6e04aaf5971025f406bea3c" + integrity sha512-rXpsyvOnqdScyied4Uglsp14qzag1JIemLeTWGKbwpotWht57hbP78aNT+Q4wdFKQfQibbUX4fb6Qb4y11aVOQ== + +use-memo-one@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.1.tgz#39e6f08fe27e422a7d7b234b5f9056af313bd22c" + integrity sha512-oFfsyun+bP7RX8X2AskHNTxu+R3QdE/RC5IefMbqptmACAA/gfol1KDD5KRzPsGMa62sWxGZw+Ui43u6x4ddoQ== + +use-sidecar@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.0.3.tgz#17a4e567d4830c0c0ee100040e85a7fe68611e0f" + integrity sha512-ygJwGUBeQfWgDls7uTrlEDzJUUR67L8Rm14v/KfFtYCdHhtjHZx1Krb3DIQl3/Q5dJGfXLEQ02RY8BdNBv87SQ== + dependencies: + detect-node-es "^1.0.0" + tslib "^1.9.3" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util-promisify@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz#3c2236476c4d32c5ff3c47002add7c13b9a82a53" + integrity sha1-PCI2R2xNMsX/PEcAKt18E7moKlM= + dependencies: + object.getownpropertydescriptors "^2.0.3" + +util.promisify@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util.promisify@^1.0.0, util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utila@^0.4.0, utila@~0.4: + version "0.4.0" + resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1, utils-merge@1.x.x: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2, uuid@^3.4.0: + version "3.4.0" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^7.0.3: + version "7.0.3" + resolved "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" + integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== + +uuid@^8.0.0, uuid@^8.2.0, uuid@^8.3.0: + version "8.3.0" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" + integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== + +v8-compile-cache@^2.0.3: + version "2.1.1" + resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" + integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== + +v8-to-istanbul@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz#0608f5b49a481458625edb058488607f25498ba5" + integrity sha512-mbDNjuDajqYe3TXFk5qxcQy8L1msXNE37WTlLoqqpBfRsimbNcrlhQlDPntmECEcUvdC+AQ8CyMMf6EUx1r74Q== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +v8flags@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" + integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== + dependencies: + homedir-polyfill "^1.0.1" + +valid-url@1.0.9: + version "1.0.9" + resolved "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" + integrity sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA= + +validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3: + version "3.0.4" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + dependencies: + builtins "^1.0.3" + +validate.io-array@^1.0.3: + version "1.0.6" + resolved "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz#5b5a2cafd8f8b85abb2f886ba153f2d93a27774d" + integrity sha1-W1osr9j4uFq7L4hroVPy2Tond00= + +validate.io-function@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz#343a19802ed3b1968269c780e558e93411c0bad7" + integrity sha1-NDoZgC7TsZaCaceA5VjpNBHAutc= + +validate.io-integer-array@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz#2cabde033293a6bcbe063feafe91eaf46b13a089" + integrity sha1-LKveAzKTpry+Bj/q/pHq9GsToIk= + dependencies: + validate.io-array "^1.0.3" + validate.io-integer "^1.0.4" + +validate.io-integer@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz#168496480b95be2247ec443f2233de4f89878068" + integrity sha1-FoSWSAuVviJH7EQ/IjPeT4mHgGg= + dependencies: + validate.io-number "^1.0.3" + +validate.io-number@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz#f63ffeda248bf28a67a8d48e0e3b461a1665baf8" + integrity sha1-9j/+2iSL8opnqNSODjtGGhZluvg= + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vfile-location@^2.0.0: + version "2.0.6" + resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e" + integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== + +vfile-message@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" + integrity sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA== + dependencies: + unist-util-stringify-position "^1.1.1" + +vfile@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a" + integrity sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w== + dependencies: + is-buffer "^1.1.4" + replace-ext "1.0.0" + unist-util-stringify-position "^1.0.0" + vfile-message "^1.0.0" + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +vscode-languageserver-types@^3.15.1: + version "3.15.1" + resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz#17be71d78d2f6236d414f0001ce1ef4d23e6b6de" + integrity sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ== + +w3c-hr-time@^1.0.1, w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +wait-on@5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/wait-on/-/wait-on-5.2.0.tgz#6711e74422523279714a36d52cf49fb47c9d9597" + integrity sha512-U1D9PBgGw2XFc6iZqn45VBubw02VsLwnZWteQ1au4hUVHasTZuFSKRzlTB2dqgLhji16YVI8fgpEpwUdCr8B6g== + dependencies: + axios "^0.19.2" + joi "^17.1.1" + lodash "^4.17.19" + minimist "^1.2.5" + rxjs "^6.5.5" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.7" + resolved "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +warning@^4.0.2, warning@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +watchpack-chokidar2@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" + integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.7.4: + version "1.7.4" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" + integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.0" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.0, wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +webapi-parser@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/webapi-parser/-/webapi-parser-0.5.0.tgz#2632185c5d8f3e6addb2520857af89ea9844dc14" + integrity sha512-fPt6XuMqLSvBz8exwX4QE1UT+pROLHa00EMDCdO0ybICduwQ1V4f7AWX4pNOpCp+x+0FjczEsOxtQU0d8L3QKw== + dependencies: + ajv "6.5.2" + +webidl-conversions@^3.0.0, webidl-conversions@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "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: + 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== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@^3.10.3: + 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== + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + 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" + 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.7" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "0.3.20" + sockjs-client "1.4.0" + spdy "^4.0.2" + strip-ansi "^3.0.1" + supports-color "^6.1.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-hot-middleware@^2.25.0: + version "2.25.0" + resolved "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz#4528a0a63ec37f8f8ef565cf9e534d57d09fe706" + integrity sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA== + dependencies: + ansi-html "0.0.7" + html-entities "^1.2.0" + querystring "^0.2.0" + strip-ansi "^3.0.0" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-node-externals@^2.5.0: + version "2.5.2" + resolved "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-2.5.2.tgz#178e017a24fec6015bc9e672c77958a6afac861d" + integrity sha512-aHdl/y2N7PW2Sx7K+r3AxpJO+aDMcYzMQd60Qxefq3+EwhewSbTBqNumOsCE1JsCUNoyfGj5465N0sSf6hc/5w== + +webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-virtual-modules@^0.2.0: + version "0.2.2" + resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz#20863dc3cb6bb2104729fff951fbe14b18bd0299" + integrity sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA== + dependencies: + debug "^3.0.0" + +webpack@^4.33.0, webpack@^4.38.0, webpack@^4.41.6: + version "4.44.1" + resolved "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz#17e69fff9f321b8f117d1fda714edfc0b939cc21" + integrity sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.3.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + 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= + dependencies: + websocket-extensions ">=0.1.1" + +websocket-driver@>=0.5.1: + 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" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +websocket@1.0.31: + version "1.0.31" + resolved "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz#e5d0f16c3340ed87670e489ecae6144c79358730" + integrity sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ== + dependencies: + debug "^2.2.0" + es5-ext "^0.10.50" + nan "^2.14.0" + typedarray-to-buffer "^3.1.5" + yaeti "^0.0.6" + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-fetch@>=0.10.0, whatwg-fetch@^3.0.0, whatwg-fetch@^3.4.0: + version "3.4.0" + resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz#e11de14f4878f773fbebcde8871b2c0699af8b30" + integrity sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ== + +whatwg-fetch@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" + integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== + +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-2.0.1.tgz#5396b2043f020ee6f704d9c45ea8519e724de659" + integrity sha1-U5ayBD8CDub3BNnEXqhRnnJN5lk= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whatwg-url@^6.4.1: + version "6.5.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^8.0.0: + version "8.2.1" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.2.1.tgz#ed73417230784b281fb2a32c3c501738b46167c3" + integrity sha512-ZmVCr6nfBeaMxEHALLEGy0LszYjpJqf6PVNQUQ1qd9Et+q7Jpygd4rGGDXgHjD8e99yLFseD69msHDM4YwPZ4A== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^2.0.2" + webidl-conversions "^6.1.0" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + +which@1, which@^1.2.14, which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +window-size@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" + integrity sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU= + +windows-release@^3.1.0: + version "3.3.3" + resolved "https://registry.npmjs.org/windows-release/-/windows-release-3.3.3.tgz#1c10027c7225743eec6b89df160d64c2e0293999" + integrity sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg== + dependencies: + execa "^1.0.0" + +winston-transport@^4.4.0: + version "4.4.0" + resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz#17af518daa690d5b2ecccaa7acf7b20ca7925e59" + integrity sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw== + dependencies: + readable-stream "^2.3.7" + triple-beam "^1.2.0" + +winston@^3.2.1: + version "3.3.3" + resolved "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz#ae6172042cafb29786afa3d09c8ff833ab7c9170" + integrity sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw== + dependencies: + "@dabh/diagnostics" "^2.0.2" + async "^3.1.0" + is-stream "^2.0.0" + logform "^2.2.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.4.0" + +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +worker-rpc@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" + integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== + dependencies: + microevent.ts "~0.1.1" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" + integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= + dependencies: + 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" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: + version "2.4.3" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +write-json-file@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" + integrity sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8= + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + pify "^3.0.0" + sort-keys "^2.0.0" + write-file-atomic "^2.0.0" + +write-json-file@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a" + integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ== + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.15" + make-dir "^2.1.0" + pify "^4.0.1" + sort-keys "^2.0.0" + write-file-atomic "^2.4.2" + +write-pkg@^3.1.0: + version "3.2.0" + resolved "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz#0e178fe97820d389a8928bc79535dbe68c2cff21" + integrity sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw== + dependencies: + sort-keys "^2.0.0" + write-json-file "^2.2.0" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== + dependencies: + async-limiter "~1.0.0" + +ws@^6.0.0, ws@^6.1.2, ws@^6.2.1: + 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: + version "7.3.1" + resolved "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" + integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== + +x-is-string@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" + integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xml-but-prettier@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/xml-but-prettier/-/xml-but-prettier-1.0.1.tgz#f5a33267ed42ccd4e355c62557a5e39b01fb40f3" + integrity sha1-9aMyZ+1CzNTjVcYlV6XjmwH7QPM= + dependencies: + repeat-string "^1.5.2" + +xml-crypto@^1.4.0: + version "1.5.3" + resolved "https://registry.npmjs.org/xml-crypto/-/xml-crypto-1.5.3.tgz#a8f500b90f0dfaf0efa3331c345ecb0fff993c34" + integrity sha512-uHkmpUtX15xExe5iimPmakAZN+6CqIvjmaJTy4FwqGzaTjrKRBNeqMh8zGEzVNgW0dk6beFYpyQSgqV/J6C5xA== + dependencies: + xmldom "0.1.27" + xpath "0.0.27" + +xml-encryption@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/xml-encryption/-/xml-encryption-1.2.0.tgz#37c8b470beae88b4625ea8cad82f108ea0f9c364" + integrity sha512-J3NjGMY8jf6bTo15jURTYBLtsisbnyCeM+MuxtfiAkZEZBnSZpNKjUUORhiOScKvSi6tMOAaZ3r7bZOXOni+Ew== + dependencies: + escape-html "^1.0.3" + node-forge "^0.7.0" + xmldom "~0.1.15" + xpath "0.0.27" + +xml-js@^1.6.11: + version "1.6.11" + resolved "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== + dependencies: + sax "^1.2.4" + +"xml-name-validator@>= 2.0.1 < 3.0.0": + version "2.0.1" + resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" + integrity sha1-TYuPHszTQZqjYgYb7O9RXh5VljU= + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xml2js@0.4.x: + version "0.4.23" + resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@^11.0.0, xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + +xmlbuilder@^13.0.0: + version "13.0.2" + resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz#02ae33614b6a047d1c32b5389c1fdacb2bce47a7" + integrity sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xmldom@0.1.27: + version "0.1.27" + resolved "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" + integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk= + +xmldom@0.1.x, xmldom@^0.1.22, xmldom@~0.1.15: + version "0.1.31" + resolved "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz#b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff" + integrity sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ== + +xpath@0.0.27: + version "0.0.27" + resolved "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz#dd3421fbdcc5646ac32c48531b4d7e9d0c2cfa92" + integrity sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ== + +xss@^1.0.6: + version "1.0.8" + resolved "https://registry.npmjs.org/xss/-/xss-1.0.8.tgz#32feb87feb74b3dcd3d404b7a68ababf10700535" + integrity sha512-3MgPdaXV8rfQ/pNn16Eio6VXYPTkqwa0vc7GkiymmY/DqR1SE/7VPAAVZz1GJsJFrllMYO3RHfEaiUGjab6TNw== + dependencies: + commander "^2.20.3" + cssfilter "0.0.10" + +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yaeti@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" + integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml-ast-parser@0.0.43: + version "0.0.43" + resolved "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" + integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== + +yaml@*, yaml@^1.10.0, yaml@^1.7.2, yaml@^1.9.2: + version "1.10.0" + resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + +yamljs@^0.2.1: + version "0.2.10" + resolved "https://registry.npmjs.org/yamljs/-/yamljs-0.2.10.tgz#481cc7c25ca73af59f591f0c96e3ce56c757a40f" + integrity sha1-SBzHwlynOvWfWR8MluPOVsdXpA8= + dependencies: + argparse "^1.0.7" + glob "^7.0.5" + +yargs-parser@18.x, 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" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +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@^15.0.1: + version "15.0.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" + integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-3.2.0.tgz#5081355d19d9d0c8c5d81ada908cb4e6d186664f" + integrity sha1-UIE1XRnZ0MjF2BrakIy05tGGZk8= + dependencies: + camelcase "^3.0.0" + lodash.assign "^4.1.0" + +yargs@^13.3.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@^14.2.2: + version "14.2.3" + resolved "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" + integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== + dependencies: + cliui "^5.0.0" + decamelize "^1.2.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 "^15.0.1" + +yargs@^15.3.1, yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.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 "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-2.3.0.tgz#e900c87250ec5cd080db6009fe3dd63156f1d7fb" + integrity sha1-6QDIclDsXNCA22AJ/j3WMVbx1/s= + dependencies: + wordwrap "0.0.2" + +yargs@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-5.0.0.tgz#3355144977d05757dbb86d6e38ec056123b3a66e" + integrity sha1-M1UUSXfQV1fbuG1uOOwFYSOzpm4= + dependencies: + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + lodash.assign "^4.2.0" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + window-size "^0.2.0" + y18n "^3.2.1" + yargs-parser "^3.2.0" + +yauzl@^2.10.0, yauzl@^2.4.2: + version "2.10.0" + resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yml-loader@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/yml-loader/-/yml-loader-2.1.0.tgz#b976b8691b537b6d3dc7d92a9a7d34b90de10870" + integrity sha512-mo42d5FQWlXxpyTEpYywPu1LzK3F69pPPCOB8WKgJi8s+aqaogQP7XnXTjSobbKzzlZ/wXm7kg9CkP4x4ZnVMw== + dependencies: + js-yaml "^3.8.3" + loader-utils "^1.1.0" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yn@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yn/-/yn-4.0.0.tgz#611480051ea43b510da1dfdbe177ed159f00a979" + integrity sha512-huWiiCS4TxKc4SfgmTwW1K7JmXPPAmuXWYy4j9qjQo4+27Kni8mGhAAi1cloRWmBe2EqcLgt3IGqQoRL/MtPgg== + +yup@^0.29.1: + version "0.29.3" + resolved "https://registry.npmjs.org/yup/-/yup-0.29.3.tgz#69a30fd3f1c19f5d9e31b1cf1c2b851ce8045fea" + integrity sha512-RNUGiZ/sQ37CkhzKFoedkeMfJM0vNQyaz+wRZJzxdKE7VfDeVKH8bb4rr7XhRLbHJz5hSjoDNwMEIaKhuMZ8gQ== + dependencies: + "@babel/runtime" "^7.10.5" + fn-name "~3.0.0" + lodash "^4.17.15" + lodash-es "^4.17.11" + property-expr "^2.0.2" + synchronous-promise "^2.0.13" + toposort "^2.0.2" + +zen-observable-ts@^0.8.21: + version "0.8.21" + resolved "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d" + integrity sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg== + dependencies: + tslib "^1.9.3" + zen-observable "^0.8.0" + +zen-observable@^0.8.0, zen-observable@^0.8.15: + version "0.8.15" + resolved "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== + +zenscroll@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/zenscroll/-/zenscroll-4.0.2.tgz#e8d5774d1c0738a47bcfa8729f3712e2deddeb25" + integrity sha1-6NV3TRwHOKR7z6hynzcS4t7d6yU= + +zombie@^6.1.4: + version "6.1.4" + resolved "https://registry.npmjs.org/zombie/-/zombie-6.1.4.tgz#9f0f53f3d9a032beb7f3fe5b382146a3475a4d47" + integrity sha512-yxNvKtyz3PP8lkr31AYh7vdbBD4is9hYXiOQKPp+k/7GiDiFQXX1Ex+peCl4ttodu/bHZcIluJ8lxMla5XefBQ== + dependencies: + babel-runtime "6.26.0" + bluebird "^3.5.1" + debug "^4.1.0" + eventsource "^1.0.5" + iconv-lite "^0.4.21" + jsdom "11.12.0" + lodash "^4.17.10" + mime "^2.3.1" + ms "^2.1.1" + request "^2.85.0" + tough-cookie "^2.3.4" + ws "^6.1.2" From 0d4ade32eb3abf1aa8c37a4b19974bb25d7c683c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2020 06:03:49 +0000 Subject: [PATCH 256/656] chore(deps): bump commander from 4.1.1 to 6.1.0 Bumps [commander](https://github.com/tj/commander.js) from 4.1.1 to 6.1.0. - [Release notes](https://github.com/tj/commander.js/releases) - [Changelog](https://github.com/tj/commander.js/blob/master/CHANGELOG.md) - [Commits](https://github.com/tj/commander.js/compare/v4.1.1...v6.1.0) Signed-off-by: dependabot-preview[bot] --- packages/cli/package.json | 2 +- packages/create-app/package.json | 2 +- packages/docgen/package.json | 2 +- packages/techdocs-cli/package.json | 2 +- yarn.lock | 5 +++++ 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 1467b4a16b..58f4aff998 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -50,7 +50,7 @@ "bfj": "^7.0.2", "chalk": "^4.0.0", "chokidar": "^3.3.1", - "commander": "^4.1.1", + "commander": "^6.1.0", "css-loader": "^3.5.3", "dashify": "^2.0.0", "diff": "^4.0.2", diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 644c2a6c35..7de2a9559c 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -29,7 +29,7 @@ "dependencies": { "@backstage/cli-common": "^0.1.1-alpha.20", "chalk": "^4.0.0", - "commander": "^4.1.1", + "commander": "^6.1.0", "fs-extra": "^9.0.0", "handlebars": "^4.7.3", "inquirer": "^7.0.4", diff --git a/packages/docgen/package.json b/packages/docgen/package.json index 5bf9381b7b..46f0e32902 100644 --- a/packages/docgen/package.json +++ b/packages/docgen/package.json @@ -27,7 +27,7 @@ }, "dependencies": { "chalk": "^4.0.0", - "commander": "^4.1.1", + "commander": "^6.1.0", "fs-extra": "^9.0.0", "github-slugger": "^1.3.0", "ts-node": "^8.6.2", diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 2fffbc0469..4dcdfa4d20 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -45,7 +45,7 @@ }, "dependencies": { "@backstage/cli": "^0.1.1-alpha.20", - "commander": "^5.1.0", + "commander": "^6.1.0", "fs-extra": "^9.0.1", "http-proxy": "^1.18.1", "react-dev-utils": "^10.2.1", diff --git a/yarn.lock b/yarn.lock index ad4c7bee55..0a211ec2f0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7643,6 +7643,11 @@ commander@^5.0.0, commander@^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: + version "6.1.0" + resolved "https://registry.npmjs.org/commander/-/commander-6.1.0.tgz#f8d722b78103141006b66f4c7ba1e97315ba75bc" + integrity sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA== + common-tags@^1.8.0: version "1.8.0" resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" From 7a5cf65ef339004f4063225dab87d1c992e70cba Mon Sep 17 00:00:00 2001 From: Andrew Thauer <6507159+andrewthauer@users.noreply.github.com> Date: Mon, 31 Aug 2020 02:27:29 -0400 Subject: [PATCH 257/656] feat: syntax highlighing for api-docs (#2170) --- plugins/api-docs/package.json | 2 +- .../components/ApiCatalogTable/ApiCatalogTable.tsx | 1 + .../ApiDefinitionCard/ApiDefinitionCard.tsx | 8 +++++--- .../ApiDefinitionWidget/ApiDefinitionWidget.tsx | 12 ++++++++---- .../src/components/ApiEntityPage/ApiEntityPage.tsx | 13 ++++++++----- .../AsyncApiDefinitionWidget.tsx | 8 +++++--- .../OpenApiDefinitionWidget.tsx | 8 +++++--- .../PlainApiDefinitionWidget.tsx | 11 +++++++---- 8 files changed, 40 insertions(+), 23 deletions(-) diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 434abd130f..a2ec96ee67 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -29,7 +29,6 @@ "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", - "@types/react": "^16.9", "react": "^16.13.1", "react-dom": "^16.13.1", "react-router-dom": "6.0.0-beta.0", @@ -45,6 +44,7 @@ "@testing-library/user-event": "^12.0.7", "@types/jest": "^26.0.7", "@types/node": "^12.0.0", + "@types/react": "^16.9", "@types/swagger-ui-react": "^3.23.3", "jest-fetch-mock": "^3.0.3" }, diff --git a/plugins/api-docs/src/components/ApiCatalogTable/ApiCatalogTable.tsx b/plugins/api-docs/src/components/ApiCatalogTable/ApiCatalogTable.tsx index 99848637b6..3b954b5a86 100644 --- a/plugins/api-docs/src/components/ApiCatalogTable/ApiCatalogTable.tsx +++ b/plugins/api-docs/src/components/ApiCatalogTable/ApiCatalogTable.tsx @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { Entity } from '@backstage/catalog-model'; import { Table, TableColumn } from '@backstage/core'; import { Link } from '@material-ui/core'; diff --git a/plugins/api-docs/src/components/ApiDefinitionCard/ApiDefinitionCard.tsx b/plugins/api-docs/src/components/ApiDefinitionCard/ApiDefinitionCard.tsx index af101f0194..d5bd9d1851 100644 --- a/plugins/api-docs/src/components/ApiDefinitionCard/ApiDefinitionCard.tsx +++ b/plugins/api-docs/src/components/ApiDefinitionCard/ApiDefinitionCard.tsx @@ -16,13 +16,15 @@ import { ApiEntityV1alpha1 } from '@backstage/catalog-model'; import { InfoCard } from '@backstage/core'; -import React, { FC } from 'react'; +import React from 'react'; import { ApiDefinitionWidget } from '../ApiDefinitionWidget/ApiDefinitionWidget'; -export const ApiDefinitionCard: FC<{ +type Props = { title?: string; apiEntity: ApiEntityV1alpha1; -}> = ({ title, apiEntity }) => { +}; + +export const ApiDefinitionCard = ({ title, apiEntity }: Props) => { const type = apiEntity?.spec?.type || ''; const definition = apiEntity?.spec?.definition || ''; diff --git a/plugins/api-docs/src/components/ApiDefinitionWidget/ApiDefinitionWidget.tsx b/plugins/api-docs/src/components/ApiDefinitionWidget/ApiDefinitionWidget.tsx index 5b1ddd7880..0ea894b5a2 100644 --- a/plugins/api-docs/src/components/ApiDefinitionWidget/ApiDefinitionWidget.tsx +++ b/plugins/api-docs/src/components/ApiDefinitionWidget/ApiDefinitionWidget.tsx @@ -14,15 +14,17 @@ * limitations under the License. */ -import React, { FC } from 'react'; +import React from 'react'; import { AsyncApiDefinitionWidget } from '../AsyncApiDefinitionWidget/AsyncApiDefinitionWidget'; import { OpenApiDefinitionWidget } from '../OpenApiDefinitionWidget/OpenApiDefinitionWidget'; import { PlainApiDefinitionWidget } from '../PlainApiDefinitionWidget/PlainApiDefinitionWidget'; -export const ApiDefinitionWidget: FC<{ +type Props = { type: string; definition: string; -}> = ({ type, definition }) => { +}; + +export const ApiDefinitionWidget = ({ type, definition }: Props) => { switch (type) { case 'openapi': return ; @@ -31,6 +33,8 @@ export const ApiDefinitionWidget: FC<{ return ; default: - return ; + return ( + + ); } }; diff --git a/plugins/api-docs/src/components/ApiEntityPage/ApiEntityPage.tsx b/plugins/api-docs/src/components/ApiEntityPage/ApiEntityPage.tsx index 5e08af7e8e..6717222a8e 100644 --- a/plugins/api-docs/src/components/ApiEntityPage/ApiEntityPage.tsx +++ b/plugins/api-docs/src/components/ApiEntityPage/ApiEntityPage.tsx @@ -29,7 +29,7 @@ import { import { catalogApiRef } from '@backstage/plugin-catalog'; import { Box } from '@material-ui/core'; import { Alert } from '@material-ui/lab'; -import React, { FC, useEffect } from 'react'; +import React, { useEffect } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; import { useAsync } from 'react-use'; import { ApiDefinitionCard } from '../ApiDefinitionCard/ApiDefinitionCard'; @@ -59,15 +59,18 @@ export const getPageTheme = (entity?: Entity): PageTheme => { return pageTheme[themeKey] ?? pageTheme.home; }; -const EntityPageTitle: FC<{ title: string; entity: Entity | undefined }> = ({ - title, -}) => ( +type EntityPageTitleProps = { + title: string; + entity: Entity | undefined; +}; + +const EntityPageTitle = ({ title }: EntityPageTitleProps) => ( {title} ); -export const ApiEntityPage: FC<{}> = () => { +export const ApiEntityPage = () => { const { optionalNamespaceAndName } = useParams() as { optionalNamespaceAndName: string; }; diff --git a/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinitionWidget.tsx b/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinitionWidget.tsx index ce372e3cdc..01e2ac33a7 100644 --- a/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinitionWidget.tsx +++ b/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinitionWidget.tsx @@ -15,7 +15,7 @@ */ import AsyncApi from '@kyma-project/asyncapi-react'; -import React, { FC } from 'react'; +import React from 'react'; import { makeStyles, fade } from '@material-ui/core/styles'; import '@kyma-project/asyncapi-react/lib/styles/fiori.css'; @@ -135,9 +135,11 @@ const useStyles = makeStyles(theme => ({ }, })); -export const AsyncApiDefinitionWidget: FC<{ +type Props = { definition: any; -}> = ({ definition }) => { +}; + +export const AsyncApiDefinitionWidget = ({ definition }: Props) => { const classes = useStyles(); return ( diff --git a/plugins/api-docs/src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.tsx b/plugins/api-docs/src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.tsx index d4fe2ab9e1..61f5cb2b75 100644 --- a/plugins/api-docs/src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.tsx +++ b/plugins/api-docs/src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import React, { FC, useEffect, useState } from 'react'; +import React, { useEffect, useState } from 'react'; import { makeStyles } from '@material-ui/core/styles'; import SwaggerUI from 'swagger-ui-react'; import 'swagger-ui-react/swagger-ui.css'; @@ -65,9 +65,11 @@ const useStyles = makeStyles(theme => ({ }, })); -export const OpenApiDefinitionWidget: FC<{ +type Props = { definition: any; -}> = ({ definition }) => { +}; + +export const OpenApiDefinitionWidget = ({ definition }: Props) => { const classes = useStyles(); // Due to a bug in the swagger-ui-react component, the component needs diff --git a/plugins/api-docs/src/components/PlainApiDefinitionWidget/PlainApiDefinitionWidget.tsx b/plugins/api-docs/src/components/PlainApiDefinitionWidget/PlainApiDefinitionWidget.tsx index 4ceeed06e1..46631c5a4b 100644 --- a/plugins/api-docs/src/components/PlainApiDefinitionWidget/PlainApiDefinitionWidget.tsx +++ b/plugins/api-docs/src/components/PlainApiDefinitionWidget/PlainApiDefinitionWidget.tsx @@ -15,10 +15,13 @@ */ import { CodeSnippet } from '@backstage/core'; -import React, { FC } from 'react'; +import React from 'react'; -export const PlainApiDefinitionWidget: FC<{ +type Props = { definition: any; -}> = ({ definition }) => { - return ; + language: string; +}; + +export const PlainApiDefinitionWidget = ({ definition, language }: Props) => { + return ; }; From 3ce229981abc42ac3a100251ce37ddfbaa6573c6 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Mon, 31 Aug 2020 09:18:45 +0200 Subject: [PATCH 258/656] TechDocs: add techdocs plugins to create app (#2143) * add techdocs plugins to create app * add docs to sidebar in default app * add mocked techdocs config to test * Update packages/create-app/templates/default-app/app-config.yaml.hbs --- .../templates/default-app/app-config.yaml.hbs | 2 +- .../default-app/packages/app/package.json.hbs | 1 + .../default-app/packages/app/src/App.test.tsx | 3 +++ .../templates/default-app/packages/app/src/apis.ts | 11 +++++++++++ .../templates/default-app/packages/app/src/plugins.ts | 1 + .../default-app/packages/app/src/sidebar.tsx | 2 ++ .../packages/backend/src/plugins/techdocs.ts | 6 +++++- 7 files changed, 24 insertions(+), 2 deletions(-) diff --git a/packages/create-app/templates/default-app/app-config.yaml.hbs b/packages/create-app/templates/default-app/app-config.yaml.hbs index a8e1e194a0..aff375ad29 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -42,7 +42,7 @@ proxy: changeOrigin: true techdocs: - storageUrl: https://techdocs-mock-sites.storage.googleapis.com + storageUrl: http://localhost:7000/techdocs/static/docs auth: providers: {} diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index 57e705d4fc..7d34a94c7b 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -10,6 +10,7 @@ "@backstage/plugin-catalog": "^{{version}}", "@backstage/plugin-register-component": "^{{version}}", "@backstage/plugin-scaffolder": "^{{version}}", + "@backstage/plugin-techdocs": "^{{version}}", "@backstage/test-utils": "^{{version}}", "@backstage/theme": "^{{version}}", "history": "^5.0.0", diff --git a/packages/create-app/templates/default-app/packages/app/src/App.test.tsx b/packages/create-app/templates/default-app/packages/app/src/App.test.tsx index a05924ee00..e88c3b47dd 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.test.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.test.tsx @@ -11,6 +11,9 @@ describe('App', () => { data: { app: { title: 'Test' }, backend: { baseUrl: 'http://localhost:7000' }, + techdocs: { + storageUrl: 'http://localhost:7000/techdocs/static/docs', + }, }, context: 'test', }, diff --git a/packages/create-app/templates/default-app/packages/app/src/apis.ts b/packages/create-app/templates/default-app/packages/app/src/apis.ts index 4cc2ebe03a..7fc59cc9d7 100644 --- a/packages/create-app/templates/default-app/packages/app/src/apis.ts +++ b/packages/create-app/templates/default-app/packages/app/src/apis.ts @@ -18,11 +18,17 @@ import { catalogApiRef, CatalogClient } from '@backstage/plugin-catalog'; import { scaffolderApiRef, ScaffolderApi } from '@backstage/plugin-scaffolder'; +import { + techdocsStorageApiRef, + TechDocsStorageApi, +} from '@backstage/plugin-techdocs'; + export const apis = (config: ConfigApi) => { // eslint-disable-next-line no-console console.log(`Creating APIs for ${config.getString('app.title')}`); const backendUrl = config.getString('backend.baseUrl'); + const techdocsStorageUrl = config.getString('techdocs.storageUrl'); const builder = ApiRegistry.builder(); @@ -43,5 +49,10 @@ export const apis = (config: ConfigApi) => { builder.add(scaffolderApiRef, new ScaffolderApi({ discoveryApi })); + builder.add( + techdocsStorageApiRef, + new TechDocsStorageApi({ apiOrigin: techdocsStorageUrl }), + ); + return builder.build(); }; diff --git a/packages/create-app/templates/default-app/packages/app/src/plugins.ts b/packages/create-app/templates/default-app/packages/app/src/plugins.ts index 4063fb509b..f6bef70188 100644 --- a/packages/create-app/templates/default-app/packages/app/src/plugins.ts +++ b/packages/create-app/templates/default-app/packages/app/src/plugins.ts @@ -1,3 +1,4 @@ export { plugin as CatalogPlugin } from '@backstage/plugin-catalog'; export { plugin as RegisterComponent } from '@backstage/plugin-register-component'; export { plugin as ScaffolderPlugin } from '@backstage/plugin-scaffolder'; +export { plugin as TechDocsPlugin } from '@backstage/plugin-techdocs'; diff --git a/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx index 69ba469130..6520dfbe6e 100644 --- a/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx @@ -1,5 +1,6 @@ import React from 'react'; import HomeIcon from '@material-ui/icons/Home'; +import LibraryBooks from '@material-ui/icons/LibraryBooks'; import CreateComponentIcon from '@material-ui/icons/AddCircleOutline'; import { Sidebar, @@ -17,6 +18,7 @@ export const AppSidebar = () => ( {/* Global nav, not org-specific */} + {/* End global nav */} diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts b/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts index a7b713fcb6..dfd9eb5e33 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/plugins/techdocs.ts @@ -1,6 +1,7 @@ import { createRouter, DirectoryPreparer, + GithubPreparer, Preparers, Generators, LocalPublish, @@ -15,12 +16,15 @@ export default async function createPlugin({ }: PluginEnvironment) { const generators = new Generators(); const techdocsGenerator = new TechdocsGenerator(logger); + generators.register('techdocs', techdocsGenerator); - const directoryPreparer = new DirectoryPreparer(logger); const preparers = new Preparers(); + const directoryPreparer = new DirectoryPreparer(logger); + const githubPreparer = new GithubPreparer(logger); preparers.register('dir', directoryPreparer); + preparers.register('github', githubPreparer); const publisher = new LocalPublish(logger); From 67cd270143245be4de5d9330d7762c5fbe3b5c7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Mon, 31 Aug 2020 09:29:56 +0200 Subject: [PATCH 259/656] [Docs] Change edit URL and tweak adopting.md (#2151) * [Docs] Change edit URL * Update adopting.md --- docs/overview/adopting.md | 20 ++++++++++++++++++-- microsite/siteConfig.js | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/docs/overview/adopting.md b/docs/overview/adopting.md index 52c0118a6a..893eac6398 100644 --- a/docs/overview/adopting.md +++ b/docs/overview/adopting.md @@ -87,14 +87,17 @@ Example of tactics we have used to evangelize Backstage internally: - Pro-actively identify new plugins. Reach out to teams that own internal UIs or platforms that you think would make sense to consolidate into Backstage. -## Metrics +## KPIs and metrics These are some of the metrics that you can use to verify if Backstage has a successful impact on your software development process: - **Onboarding time** Time until new engineers are productive. At Spotify we measure this as the time until the employee has merged their 10th PR (this - metric was down 55% two years after deploying Backstage). + metric was down 55% two years after deploying Backstage). Even though you may + not be onboarding engineers at a rapid pace, this metric is a great proxy for + the overall complexity of your ecosystem. Reducing it will therefore benefit + your whole engineering organization, not just new joiners. - **Number of merges per developer/day** Less time spent jumping between different tools and looking for information means more time to focus on @@ -142,3 +145,16 @@ Backstage as _the_ platform: - % of contributions coming from outside the central Backstage team (currently 85% inside Spotify) + +- Traditional metrics such as visits (MAU, DAU, etc) and page views. Currently + ~50% of all Spotifiers use Backstage on a monthly basis, even though the + percentage of engineers is below 50%. Most engineers actually use Backstage on + a daily basis. + +Again, any feedback is appreciated. Please use the Edit button at the top of the +page to make a suggestion. + +_**Note!** It might be tempting to try to optimize Backstage usage and +"engagement". Even though you want to consolidate all your tooling and technical +documentation in Backstage, it is important to remember that time spent in +Backstage is time not spent writing code_ 🙃 diff --git a/microsite/siteConfig.js b/microsite/siteConfig.js index d6a2da9f91..73852d6ddd 100644 --- a/microsite/siteConfig.js +++ b/microsite/siteConfig.js @@ -17,7 +17,7 @@ const siteConfig = { url: 'https://backstage.io', // Your website URL cname: 'backstage.io', baseUrl: '/', // Base URL for your project */ - editUrl: 'https://github.com/spotify/backstage/tree/master/docs/', + editUrl: 'https://github.com/spotify/backstage/edit/master/docs/', // Used for publishing and more projectName: 'backstage', From 537dbec68f65b071d4d4d88bdeb374161a431d8f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2020 09:31:07 +0200 Subject: [PATCH 260/656] chore(deps): bump d3-force from 2.0.1 to 2.1.1 (#2165) Bumps [d3-force](https://github.com/d3/d3-force) from 2.0.1 to 2.1.1. - [Release notes](https://github.com/d3/d3-force/releases) - [Commits](https://github.com/d3/d3-force/compare/v2.0.1...v2.1.1) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/yarn.lock b/yarn.lock index ad4c7bee55..2e257fca16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8488,29 +8488,29 @@ cypress@*, cypress@^4.2.0: url "^0.11.0" yauzl "^2.10.0" -d3-dispatch@1: - version "1.0.6" - resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" - integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== +"d3-dispatch@1 - 2": + version "2.0.0" + resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz#8a18e16f76dd3fcaef42163c97b926aa9b55e7cf" + integrity sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA== d3-force@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/d3-force/-/d3-force-2.0.1.tgz#31750eee8c43535301d571195bf9683beda534e2" - integrity sha512-zh73/N6+MElRojiUG7vmn+3vltaKon7iD5vB/7r9nUaBeftXMzRo5IWEG63DLBCto4/8vr9i3m9lwr1OTJNiCg== + version "2.1.1" + resolved "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz#f20ccbf1e6c9e80add1926f09b51f686a8bc0937" + integrity sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew== dependencies: - d3-dispatch "1" - d3-quadtree "1" - d3-timer "1" + d3-dispatch "1 - 2" + d3-quadtree "1 - 2" + d3-timer "1 - 2" -d3-quadtree@1: - version "1.0.7" - resolved "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz#ca8b84df7bb53763fe3c2f24bd435137f4e53135" - integrity sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA== +"d3-quadtree@1 - 2": + version "2.0.0" + resolved "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz#edbad045cef88701f6fee3aee8e93fb332d30f9d" + integrity sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw== -d3-timer@1: - version "1.0.10" - resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" - integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== +"d3-timer@1 - 2": + version "2.0.0" + resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz#055edb1d170cfe31ab2da8968deee940b56623e6" + integrity sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA== d@1, d@^1.0.1: version "1.0.1" From efd99bcaec8f891cc0c3b10bcd4aed17412768e1 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2020 09:31:33 +0200 Subject: [PATCH 261/656] chore(deps): bump @svgr/plugin-jsx from 4.3.3 to 5.4.0 (#2164) Bumps [@svgr/plugin-jsx](https://github.com/gregberge/svgr) from 4.3.3 to 5.4.0. - [Release notes](https://github.com/gregberge/svgr/releases) - [Changelog](https://github.com/gregberge/svgr/blob/master/CHANGELOG.md) - [Commits](https://github.com/gregberge/svgr/compare/v4.3.3...v5.4.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- packages/cli/package.json | 2 +- yarn.lock | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 1467b4a16b..b0a78cb825 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -40,7 +40,7 @@ "@rollup/plugin-yaml": "^2.1.1", "@spotify/eslint-config": "^7.0.1", "@sucrase/webpack-loader": "^2.0.0", - "@svgr/plugin-jsx": "4.3.x", + "@svgr/plugin-jsx": "5.4.x", "@svgr/plugin-svgo": "4.3.x", "@svgr/rollup": "5.4.x", "@svgr/webpack": "4.3.x", diff --git a/yarn.lock b/yarn.lock index 2e257fca16..ce3f0dab69 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3758,17 +3758,7 @@ dependencies: "@babel/types" "^7.9.5" -"@svgr/plugin-jsx@4.3.x", "@svgr/plugin-jsx@^4.3.3": - version "4.3.3" - resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz#e2ba913dbdfbe85252a34db101abc7ebd50992fa" - integrity sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w== - dependencies: - "@babel/core" "^7.4.5" - "@svgr/babel-preset" "^4.3.3" - "@svgr/hast-util-to-babel-ast" "^4.3.2" - svg-parser "^2.0.0" - -"@svgr/plugin-jsx@^5.4.0": +"@svgr/plugin-jsx@5.4.x", "@svgr/plugin-jsx@^5.4.0": version "5.4.0" resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.4.0.tgz#ab47504c55615833c6db70fca2d7e489f509787c" integrity sha512-SGzO4JZQ2HvGRKDzRga9YFSqOqaNrgLlQVaGvpZ2Iht2gwRp/tq+18Pvv9kS9ZqOMYgyix2LLxZMY1LOe9NPqw== @@ -3778,6 +3768,16 @@ "@svgr/hast-util-to-babel-ast" "^5.4.0" svg-parser "^2.0.2" +"@svgr/plugin-jsx@^4.3.3": + version "4.3.3" + resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz#e2ba913dbdfbe85252a34db101abc7ebd50992fa" + integrity sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w== + dependencies: + "@babel/core" "^7.4.5" + "@svgr/babel-preset" "^4.3.3" + "@svgr/hast-util-to-babel-ast" "^4.3.2" + svg-parser "^2.0.0" + "@svgr/plugin-svgo@4.3.x", "@svgr/plugin-svgo@^4.3.1": version "4.3.1" resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-4.3.1.tgz#daac0a3d872e3f55935c6588dd370336865e9e32" From 3713248dd046ee8a7adedb9083d44e81567a7144 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2020 07:38:56 +0000 Subject: [PATCH 262/656] chore(deps): bump @svgr/webpack from 4.3.3 to 5.4.0 Bumps [@svgr/webpack](https://github.com/gregberge/svgr) from 4.3.3 to 5.4.0. - [Release notes](https://github.com/gregberge/svgr/releases) - [Changelog](https://github.com/gregberge/svgr/blob/master/CHANGELOG.md) - [Commits](https://github.com/gregberge/svgr/compare/v4.3.3...v5.4.0) Signed-off-by: dependabot-preview[bot] --- packages/cli/package.json | 2 +- yarn.lock | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 1467b4a16b..09b7af8bc0 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -43,7 +43,7 @@ "@svgr/plugin-jsx": "4.3.x", "@svgr/plugin-svgo": "4.3.x", "@svgr/rollup": "5.4.x", - "@svgr/webpack": "4.3.x", + "@svgr/webpack": "5.4.x", "@types/start-server-webpack-plugin": "^2.2.0", "@types/webpack-env": "^1.15.2", "@types/webpack-node-externals": "^2.5.0", diff --git a/yarn.lock b/yarn.lock index ad4c7bee55..18868cf96e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -791,7 +791,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-react-constant-elements@^7.0.0", "@babel/plugin-transform-react-constant-elements@^7.2.0", "@babel/plugin-transform-react-constant-elements@^7.6.3", "@babel/plugin-transform-react-constant-elements@^7.7.4": +"@babel/plugin-transform-react-constant-elements@^7.0.0", "@babel/plugin-transform-react-constant-elements@^7.2.0", "@babel/plugin-transform-react-constant-elements@^7.6.3", "@babel/plugin-transform-react-constant-elements@^7.7.4", "@babel/plugin-transform-react-constant-elements@^7.9.0": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz#0f485260bf1c29012bb973e7e404749eaac12c9e" integrity sha512-cYmQBW1pXrqBte1raMkAulXmi7rjg3VI6ZLg9QIic8Hq7BtYXaWuZSxsr2siOMI6SWwpxjWfnwhTUrd7JlAV7g== @@ -3810,7 +3810,21 @@ "@svgr/plugin-svgo" "^5.4.0" rollup-pluginutils "^2.8.2" -"@svgr/webpack@4.3.x", "@svgr/webpack@^4.0.3": +"@svgr/webpack@5.4.x": + version "5.4.0" + resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.4.0.tgz#b68bc86e29cf007292b96ced65f80971175632e0" + integrity sha512-LjepnS/BSAvelnOnnzr6Gg0GcpLmnZ9ThGFK5WJtm1xOqdBE/1IACZU7MMdVzjyUkfFqGz87eRE4hFaSLiUwYg== + dependencies: + "@babel/core" "^7.9.0" + "@babel/plugin-transform-react-constant-elements" "^7.9.0" + "@babel/preset-env" "^7.9.5" + "@babel/preset-react" "^7.9.4" + "@svgr/core" "^5.4.0" + "@svgr/plugin-jsx" "^5.4.0" + "@svgr/plugin-svgo" "^5.4.0" + loader-utils "^2.0.0" + +"@svgr/webpack@^4.0.3": version "4.3.3" resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.3.3.tgz#13cc2423bf3dff2d494f16b17eb7eacb86895017" integrity sha512-bjnWolZ6KVsHhgyCoYRFmbd26p8XVbulCzSG53BDQqAr+JOAderYK7CuYrB3bDjHJuF6LJ7Wrr42+goLRV9qIg== From 82ba3169fe1563f28bc5c2b57e236411ba57732b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Fri, 28 Aug 2020 13:45:11 +0200 Subject: [PATCH 263/656] chore(deps): prepare us to typescript 4 --- packages/test-utils/src/testUtils/mockBreakpoint.ts | 4 +++- scripts/check-type-dependencies.js | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/test-utils/src/testUtils/mockBreakpoint.ts b/packages/test-utils/src/testUtils/mockBreakpoint.ts index 598ef654e8..72406c88a5 100644 --- a/packages/test-utils/src/testUtils/mockBreakpoint.ts +++ b/packages/test-utils/src/testUtils/mockBreakpoint.ts @@ -54,6 +54,8 @@ export default function mockBreakpoint(initialBreakpoint: Breakpoint = 'xl') { let currentBreakpoint = initialBreakpoint; const queries = Array(); + const previousMatchMedia: any = (window as any).matchMedia; + (window as any).matchMedia = (query: string): QueryList => { const listeners = new Set(); @@ -85,7 +87,7 @@ export default function mockBreakpoint(initialBreakpoint: Breakpoint = 'xl') { }); }, remove() { - delete window.matchMedia; + (window as any).matchMedia = previousMatchMedia; }, }; } diff --git a/scripts/check-type-dependencies.js b/scripts/check-type-dependencies.js index 6ee4626a21..2e53022937 100755 --- a/scripts/check-type-dependencies.js +++ b/scripts/check-type-dependencies.js @@ -86,8 +86,11 @@ function checkTypes(pkg) { 'utf8', ); const deps = (typeDecl.match(/from '.*'/g) || []) - .map(match => match.replace(/from '(.*)'/, '$1')) - .filter(n => !n.startsWith('.')); + .map(match => match.replace(/^.*from '(.*)'.*$/, '$1')) + .filter( + n => + !(n.startsWith('.') || n === pkg.name || n.startsWith(`${pkg.name}/`)), + ); const errors = []; const typeDeps = []; From 91050f28c1aa9c0d57a5e44463fa8ee77b640a97 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2020 11:34:48 +0200 Subject: [PATCH 264/656] chore(deps-dev): bump @types/lodash from 4.14.159 to 4.14.161 (#2177) Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.14.159 to 4.14.161. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3a60790c1c..b2db346fee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4412,9 +4412,9 @@ "@types/node" "*" "@types/lodash@^4.14.151": - version "4.14.159" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.159.tgz#61089719dc6fdd9c5cb46efc827f2571d1517065" - integrity sha512-gF7A72f7WQN33DpqOWw9geApQPh4M3PxluMtaHxWHXEGSN12/WbcEk/eNSqWNQcQhF66VSZ06vCF94CrHwXJDg== + version "4.14.161" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.161.tgz#a21ca0777dabc6e4f44f3d07f37b765f54188b18" + integrity sha512-EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA== "@types/long@^4.0.0": version "4.0.1" From 17fa97018216a05ef187f96515d01d60654695c9 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2020 11:35:20 +0200 Subject: [PATCH 265/656] chore(deps): bump graphql from 15.1.0 to 15.3.0 (#2175) Bumps [graphql](https://github.com/graphql/graphql-js) from 15.1.0 to 15.3.0. - [Release notes](https://github.com/graphql/graphql-js/releases) - [Commits](https://github.com/graphql/graphql-js/compare/v15.1.0...v15.3.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- plugins/graphiql/package.json | 2 +- yarn.lock | 13 ++++--------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index ad8f194eeb..0c0ae53171 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -37,7 +37,7 @@ "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "graphiql": "^1.0.0-alpha.10", - "graphql": "15.1.0", + "graphql": "15.3.0", "react": "^16.13.1", "react-dom": "^16.13.1", "react-use": "^15.3.3" diff --git a/yarn.lock b/yarn.lock index b2db346fee..42764c1632 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11636,10 +11636,10 @@ graphql-upload@^8.0.2: http-errors "^1.7.3" object-path "^0.11.4" -graphql@15.1.0: - version "15.1.0" - resolved "https://registry.npmjs.org/graphql/-/graphql-15.1.0.tgz#b93e28de805294ec08e1630d901db550cb8960a1" - integrity sha512-0TVyfOlCGhv/DBczQkJmwXOK6fjWkjzY3Pt7wY8i0gcYXq8aogG3weCsg48m72lywKSeOqedEHvVPOvZvSD51Q== +graphql@15.3.0, graphql@^15.3.0: + version "15.3.0" + resolved "https://registry.npmjs.org/graphql/-/graphql-15.3.0.tgz#3ad2b0caab0d110e3be4a5a9b2aa281e362b5278" + integrity sha512-GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w== graphql@^14.5.3: version "14.7.0" @@ -11648,11 +11648,6 @@ graphql@^14.5.3: dependencies: iterall "^1.2.2" -graphql@^15.3.0: - version "15.3.0" - resolved "https://registry.npmjs.org/graphql/-/graphql-15.3.0.tgz#3ad2b0caab0d110e3be4a5a9b2aa281e362b5278" - integrity sha512-GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w== - gray-matter@^2.1.0: version "2.1.1" resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-2.1.1.tgz#3042d9adec2a1ded6a7707a9ed2380f8a17a430e" From fd7c93db6c45988b23f84ad07b8cf48e112f3551 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 31 Aug 2020 11:12:00 +0200 Subject: [PATCH 266/656] Revert "chore(deps): prepare us to typescript 4" This reverts commit 82ba3169fe1563f28bc5c2b57e236411ba57732b. --- scripts/check-type-dependencies.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/scripts/check-type-dependencies.js b/scripts/check-type-dependencies.js index 2e53022937..6ee4626a21 100755 --- a/scripts/check-type-dependencies.js +++ b/scripts/check-type-dependencies.js @@ -86,11 +86,8 @@ function checkTypes(pkg) { 'utf8', ); const deps = (typeDecl.match(/from '.*'/g) || []) - .map(match => match.replace(/^.*from '(.*)'.*$/, '$1')) - .filter( - n => - !(n.startsWith('.') || n === pkg.name || n.startsWith(`${pkg.name}/`)), - ); + .map(match => match.replace(/from '(.*)'/, '$1')) + .filter(n => !n.startsWith('.')); const errors = []; const typeDeps = []; From 764239fa7a006f9f83e4b607d691597b06e09b3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 31 Aug 2020 11:52:57 +0200 Subject: [PATCH 267/656] fix --- packages/core/src/layout/SignInPage/customProvider.tsx | 2 +- .../components/RegisterComponentForm/RegisterComponentForm.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/src/layout/SignInPage/customProvider.tsx b/packages/core/src/layout/SignInPage/customProvider.tsx index 6c47b4e623..09ffcda10a 100644 --- a/packages/core/src/layout/SignInPage/customProvider.tsx +++ b/packages/core/src/layout/SignInPage/customProvider.tsx @@ -110,7 +110,7 @@ const Component: ProviderComponent = ({ onResult }) => { color="primary" variant="outlined" className={classes.button} - disabled={!formState?.dirty || !isEmpty(errors)} + disabled={!formState?.isDirty || !isEmpty(errors)} > Continue diff --git a/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.tsx b/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.tsx index 1b84b79234..4090b2af9c 100644 --- a/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.tsx +++ b/plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.tsx @@ -49,7 +49,7 @@ const RegisterComponentForm: FC = ({ onSubmit, submitting }) => { }); const classes = useStyles(); const hasErrors = !!errors.componentLocation; - const dirty = formState?.dirty; + const dirty = formState?.isDirty; return submitting ? ( From 6f3b0b8c20e9d1c5309f20470f2c3acc2a1b0ed3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 25 Aug 2020 18:25:56 +0200 Subject: [PATCH 268/656] catalog-backend: initial catalog ingestion rules implementation --- .../src/ingestion/CatalogRules.test.ts | 114 +++++++++++ .../src/ingestion/CatalogRules.ts | 187 ++++++++++++++++++ .../src/ingestion/LocationReaders.ts | 24 ++- 3 files changed, 320 insertions(+), 5 deletions(-) create mode 100644 plugins/catalog-backend/src/ingestion/CatalogRules.test.ts create mode 100644 plugins/catalog-backend/src/ingestion/CatalogRules.ts diff --git a/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts b/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts new file mode 100644 index 0000000000..7f2ccdc254 --- /dev/null +++ b/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts @@ -0,0 +1,114 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { LocationSpec, Entity } from '@backstage/catalog-model'; +import { CatalogRulesEnforcer } from './CatalogRules'; + +const entity = { + user: { + kind: 'User', + } as Entity, + group: { + kind: 'Group', + } as Entity, + component: { + kind: 'component', + } as Entity, +}; + +const location: Record = { + x: { + type: 'github', + target: 'https://github.com/a/b/blob/master/x.yaml', + }, + y: { + type: 'github', + target: 'https://github.com/a/b/blob/master/y.yaml', + }, + z: { + type: 'file', + target: '/root/z.yaml', + }, +}; + +describe('CatalogRulesEnforcer', () => { + it('should allow by default', () => { + const enforcer = new CatalogRulesEnforcer([]); + expect(enforcer.isAllowed(entity.user, location.x)).toBe(true); + expect(enforcer.isAllowed(entity.group, location.y)).toBe(true); + expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); + }); + + it('should deny all', () => { + const enforcer = new CatalogRulesEnforcer([{ allow: [] }]); + expect(enforcer.isAllowed(entity.user, location.x)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); + expect(enforcer.isAllowed(entity.component, location.z)).toBe(false); + }); + + it('should allow all with override', () => { + const enforcer = new CatalogRulesEnforcer([{ allow: [] }, { deny: [] }]); + expect(enforcer.isAllowed(entity.user, location.x)).toBe(true); + expect(enforcer.isAllowed(entity.group, location.y)).toBe(true); + expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); + }); + + it('should deny groups', () => { + const enforcer = new CatalogRulesEnforcer([ + { allow: [], deny: [{ kind: 'Group' }] }, + ]); + expect(enforcer.isAllowed(entity.user, location.x)).toBe(true); + expect(enforcer.isAllowed(entity.group, location.x)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.z)).toBe(false); + expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); + }); + + it('should deny groups from github', () => { + const enforcer = new CatalogRulesEnforcer([ + { allow: [], deny: [{ kind: 'Group' }], locations: [{ type: 'github' }] }, + ]); + expect(enforcer.isAllowed(entity.user, location.x)).toBe(true); + expect(enforcer.isAllowed(entity.group, location.x)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.z)).toBe(true); + expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); + }); + + it('should override to allow groups from files', () => { + const enforcer = new CatalogRulesEnforcer([ + { allow: [], deny: [{ kind: 'Group' }] }, + { allow: [{ kind: 'Group' }], deny: [], locations: [{ type: 'file' }] }, + ]); + expect(enforcer.isAllowed(entity.user, location.x)).toBe(true); + expect(enforcer.isAllowed(entity.group, location.x)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.z)).toBe(true); + expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); + }); + + it('should not be sensitive to kind case', () => { + const enforcer = new CatalogRulesEnforcer([ + { allow: [], deny: [{ kind: 'group' }] }, + { allow: [], deny: [{ kind: 'Component' }] }, + ]); + expect(enforcer.isAllowed(entity.user, location.x)).toBe(true); + expect(enforcer.isAllowed(entity.group, location.x)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.z)).toBe(false); + expect(enforcer.isAllowed(entity.component, location.z)).toBe(false); + }); +}); diff --git a/plugins/catalog-backend/src/ingestion/CatalogRules.ts b/plugins/catalog-backend/src/ingestion/CatalogRules.ts new file mode 100644 index 0000000000..a03d93852a --- /dev/null +++ b/plugins/catalog-backend/src/ingestion/CatalogRules.ts @@ -0,0 +1,187 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { Config } from '@backstage/config'; +import { LocationSpec, Entity } from '@backstage/catalog-model'; + +/** + * A structure for matching entities to a given rule. + */ +type EntityMatcher = { + kind: string; +}; + +/** + * A structure for matching locations to a given rule. + */ +type LocationMatcher = { + target?: string; + type: string; +}; + +/** + * Rules to apply to catalog entities + * + * An undefined list of matchers means match all, an empty list of matchers means match none + */ +type CatalogRule = { + deny?: EntityMatcher[]; + allow?: EntityMatcher[]; + locations?: LocationMatcher[]; +}; + +export class CatalogRulesEnforcer { + /** + * Default rules used by the catalog. + * + * Denies any location from specifying user or group entities. + */ + static readonly defaultRules: CatalogRule[] = [ + { + deny: [{ kind: 'User' }, { kind: 'Group' }], + allow: [], + }, + ]; + + /** + * Loads catalog rules from config. + * + * This reads `catalog.rules` and defaults to the default rules if no value is present. + * The value of the config should be a list of config objects, each with a single `deny` + * field which in turn is a list of entity kind to deny. + * + * It also reads in rules from `catalog.locations`, where each location can have a list + * of allowed entity for the location, specified in an `allow` field. + * + * For example: + * + * ```yaml + * catalog: + * rules: + * - deny: [User, Group, System] + * + * locations: + * - type: github + * target: https://github.com/org/repo/blob/master/users.yaml + * allow: [User, Group] + * - type: github + * target: https://github.com/org/repo/blob/master/systems.yaml + * allow: [System] + * ``` + */ + static fromConfig(config: Config) { + const rules = new Array(); + + if (config.has('catalog.rules')) { + const globalRules = config.getConfigArray('catalog.rules').map(sub => ({ + deny: sub.getStringArray('deny').map(kind => ({ kind })), + allow: [], + })); + rules.push(...globalRules); + } else { + rules.push(...CatalogRulesEnforcer.defaultRules); + } + + if (config.has('catalog.locations')) { + const locationRules = config + .getConfigArray('catalog.locations') + .flatMap(sub => { + if (!sub.has('allow')) { + return []; + } + + return [ + { + deny: [], + allow: sub.getStringArray('allow').map(kind => ({ kind })), + locations: [ + { + type: sub.getString('type'), + target: sub.getString('target'), + }, + ], + }, + ]; + }); + + rules.push(...locationRules); + } + + return new CatalogRulesEnforcer(rules); + } + + constructor(private readonly rules: CatalogRule[]) {} + + /** + * Checks wether a specific entity/location combination is allowed + * according to the configured rules. + */ + isAllowed(entity: Entity, location: LocationSpec) { + let result = true; + + for (const rule of this.rules) { + if (!this.matchLocation(location, rule.locations)) { + continue; + } + + if (this.matchEntity(entity, rule.allow)) { + result = true; + } + if (this.matchEntity(entity, rule.deny)) { + result = false; + } + } + + return result; + } + + private matchLocation( + location: LocationSpec, + matchers?: LocationMatcher[], + ): boolean { + if (!matchers) { + return true; + } + + for (const matcher of matchers) { + if (matcher.type !== location.type) { + continue; + } + if (matcher.target && matcher.target !== location.target) { + continue; + } + return true; + } + + return false; + } + + private matchEntity(entity: Entity, matchers?: EntityMatcher[]): boolean { + if (!matchers) { + return true; + } + + for (const matcher of matchers) { + if (entity.kind.toLowerCase() !== matcher.kind.toLowerCase()) { + continue; + } + + return true; + } + + return false; + } +} diff --git a/plugins/catalog-backend/src/ingestion/LocationReaders.ts b/plugins/catalog-backend/src/ingestion/LocationReaders.ts index 46fa6781f1..bddef6b4de 100644 --- a/plugins/catalog-backend/src/ingestion/LocationReaders.ts +++ b/plugins/catalog-backend/src/ingestion/LocationReaders.ts @@ -47,6 +47,7 @@ import { } from './processors/types'; import { YamlProcessor } from './processors/YamlProcessor'; import { LocationReader, ReadLocationResult } from './types'; +import { CatalogRulesEnforcer } from './CatalogRules'; // The max amount of nesting depth of generated work items const MAX_DEPTH = 10; @@ -63,6 +64,7 @@ type Options = { export class LocationReaders implements LocationReader { private readonly logger: Logger; private readonly processors: LocationProcessor[]; + private readonly rulesEnforcer: CatalogRulesEnforcer; static defaultProcessors(options: { config?: Config; @@ -96,6 +98,9 @@ export class LocationReaders implements LocationReader { }: Options) { this.logger = logger; this.processors = processors; + this.rulesEnforcer = config + ? CatalogRulesEnforcer.fromConfig(config) + : new CatalogRulesEnforcer(CatalogRulesEnforcer.defaultRules); } async read(location: LocationSpec): Promise { @@ -112,11 +117,20 @@ export class LocationReaders implements LocationReader { } else if (item.type === 'data') { await this.handleData(item, emit); } else if (item.type === 'entity') { - const entity = await this.handleEntity(item, emit); - output.entities.push({ - entity, - location: item.location, - }); + if (this.rulesEnforcer.isAllowed(item.entity, item.location)) { + const entity = await this.handleEntity(item, emit); + output.entities.push({ + entity, + location: item.location, + }); + } else { + output.errors.push({ + location: item.location, + error: new Error( + `Entity of kind ${item.entity.kind} is not allowed from location ${item.location.target}:${item.location.type}`, + ), + }); + } } else if (item.type === 'error') { await this.handleError(item, emit); output.errors.push({ From 8d07b541d7eb037cea5a8a79c01135a02b98cab9 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 27 Aug 2020 20:54:56 +0200 Subject: [PATCH 269/656] catalog-backend: switch catalog rules to deny by default --- .../src/ingestion/CatalogRules.test.ts | 42 ++++++++++--------- .../src/ingestion/CatalogRules.ts | 27 +++++------- 2 files changed, 32 insertions(+), 37 deletions(-) diff --git a/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts b/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts index 7f2ccdc254..1168db1080 100644 --- a/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts +++ b/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts @@ -45,11 +45,11 @@ const location: Record = { }; describe('CatalogRulesEnforcer', () => { - it('should allow by default', () => { + it('should deny by default', () => { const enforcer = new CatalogRulesEnforcer([]); - expect(enforcer.isAllowed(entity.user, location.x)).toBe(true); - expect(enforcer.isAllowed(entity.group, location.y)).toBe(true); - expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); + expect(enforcer.isAllowed(entity.user, location.x)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); + expect(enforcer.isAllowed(entity.component, location.z)).toBe(false); }); it('should deny all', () => { @@ -59,8 +59,10 @@ describe('CatalogRulesEnforcer', () => { expect(enforcer.isAllowed(entity.component, location.z)).toBe(false); }); - it('should allow all with override', () => { - const enforcer = new CatalogRulesEnforcer([{ allow: [] }, { deny: [] }]); + it('should allow all', () => { + const enforcer = new CatalogRulesEnforcer([ + { allow: [{ kind: 'User' }, { kind: 'Group' }, { kind: 'Component' }] }, + ]); expect(enforcer.isAllowed(entity.user, location.x)).toBe(true); expect(enforcer.isAllowed(entity.group, location.y)).toBe(true); expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); @@ -68,7 +70,7 @@ describe('CatalogRulesEnforcer', () => { it('should deny groups', () => { const enforcer = new CatalogRulesEnforcer([ - { allow: [], deny: [{ kind: 'Group' }] }, + { allow: [{ kind: 'User' }, { kind: 'Component' }] }, ]); expect(enforcer.isAllowed(entity.user, location.x)).toBe(true); expect(enforcer.isAllowed(entity.group, location.x)).toBe(false); @@ -79,7 +81,8 @@ describe('CatalogRulesEnforcer', () => { it('should deny groups from github', () => { const enforcer = new CatalogRulesEnforcer([ - { allow: [], deny: [{ kind: 'Group' }], locations: [{ type: 'github' }] }, + { allow: [{ kind: 'User' }, { kind: 'Component' }] }, + { allow: [{ kind: 'Group' }], locations: [{ type: 'file' }] }, ]); expect(enforcer.isAllowed(entity.user, location.x)).toBe(true); expect(enforcer.isAllowed(entity.group, location.x)).toBe(false); @@ -88,27 +91,26 @@ describe('CatalogRulesEnforcer', () => { expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); }); - it('should override to allow groups from files', () => { + it('should allow groups from files', () => { const enforcer = new CatalogRulesEnforcer([ - { allow: [], deny: [{ kind: 'Group' }] }, - { allow: [{ kind: 'Group' }], deny: [], locations: [{ type: 'file' }] }, + { allow: [{ kind: 'Group' }], locations: [{ type: 'file' }] }, ]); - expect(enforcer.isAllowed(entity.user, location.x)).toBe(true); + expect(enforcer.isAllowed(entity.user, location.x)).toBe(false); expect(enforcer.isAllowed(entity.group, location.x)).toBe(false); expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); expect(enforcer.isAllowed(entity.group, location.z)).toBe(true); - expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); + expect(enforcer.isAllowed(entity.component, location.z)).toBe(false); }); it('should not be sensitive to kind case', () => { const enforcer = new CatalogRulesEnforcer([ - { allow: [], deny: [{ kind: 'group' }] }, - { allow: [], deny: [{ kind: 'Component' }] }, + { allow: [{ kind: 'group' }] }, + { allow: [{ kind: 'Component' }] }, ]); - expect(enforcer.isAllowed(entity.user, location.x)).toBe(true); - expect(enforcer.isAllowed(entity.group, location.x)).toBe(false); - expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); - expect(enforcer.isAllowed(entity.group, location.z)).toBe(false); - expect(enforcer.isAllowed(entity.component, location.z)).toBe(false); + expect(enforcer.isAllowed(entity.user, location.x)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.x)).toBe(true); + expect(enforcer.isAllowed(entity.group, location.y)).toBe(true); + expect(enforcer.isAllowed(entity.group, location.z)).toBe(true); + expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); }); }); diff --git a/plugins/catalog-backend/src/ingestion/CatalogRules.ts b/plugins/catalog-backend/src/ingestion/CatalogRules.ts index a03d93852a..eda93b552f 100644 --- a/plugins/catalog-backend/src/ingestion/CatalogRules.ts +++ b/plugins/catalog-backend/src/ingestion/CatalogRules.ts @@ -38,8 +38,7 @@ type LocationMatcher = { * An undefined list of matchers means match all, an empty list of matchers means match none */ type CatalogRule = { - deny?: EntityMatcher[]; - allow?: EntityMatcher[]; + allow: EntityMatcher[]; locations?: LocationMatcher[]; }; @@ -51,8 +50,7 @@ export class CatalogRulesEnforcer { */ static readonly defaultRules: CatalogRule[] = [ { - deny: [{ kind: 'User' }, { kind: 'Group' }], - allow: [], + allow: [{ kind: 'Component' }, { kind: 'API' }], }, ]; @@ -60,8 +58,10 @@ export class CatalogRulesEnforcer { * Loads catalog rules from config. * * This reads `catalog.rules` and defaults to the default rules if no value is present. - * The value of the config should be a list of config objects, each with a single `deny` - * field which in turn is a list of entity kind to deny. + * The value of the config should be a list of config objects, each with a single `allow` + * field which in turn is a list of entity kinds to allow. + * + * If there is no matching rule to allow an ingested entity, it will be rejected by the catalog. * * It also reads in rules from `catalog.locations`, where each location can have a list * of allowed entity for the location, specified in an `allow` field. @@ -71,7 +71,7 @@ export class CatalogRulesEnforcer { * ```yaml * catalog: * rules: - * - deny: [User, Group, System] + * - allow: [Component, API] * * locations: * - type: github @@ -87,8 +87,7 @@ export class CatalogRulesEnforcer { if (config.has('catalog.rules')) { const globalRules = config.getConfigArray('catalog.rules').map(sub => ({ - deny: sub.getStringArray('deny').map(kind => ({ kind })), - allow: [], + allow: sub.getStringArray('allow').map(kind => ({ kind })), })); rules.push(...globalRules); } else { @@ -105,7 +104,6 @@ export class CatalogRulesEnforcer { return [ { - deny: [], allow: sub.getStringArray('allow').map(kind => ({ kind })), locations: [ { @@ -130,22 +128,17 @@ export class CatalogRulesEnforcer { * according to the configured rules. */ isAllowed(entity: Entity, location: LocationSpec) { - let result = true; - for (const rule of this.rules) { if (!this.matchLocation(location, rule.locations)) { continue; } if (this.matchEntity(entity, rule.allow)) { - result = true; - } - if (this.matchEntity(entity, rule.deny)) { - result = false; + return true; } } - return result; + return false; } private matchLocation( From 903cbdcfb5120f3414662c51b839e89892404af3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 31 Aug 2020 00:24:18 +0200 Subject: [PATCH 270/656] catalog-backend: add tests for config rules --- .../src/ingestion/CatalogRules.test.ts | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts b/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts index 1168db1080..4a403f8dfa 100644 --- a/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts +++ b/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts @@ -16,6 +16,7 @@ import { LocationSpec, Entity } from '@backstage/catalog-model'; import { CatalogRulesEnforcer } from './CatalogRules'; +import { ConfigReader } from '@backstage/config'; const entity = { user: { @@ -113,4 +114,70 @@ describe('CatalogRulesEnforcer', () => { expect(enforcer.isAllowed(entity.group, location.z)).toBe(true); expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); }); + + describe('fromConfig', () => { + it('should allow components by default', () => { + const enforcer = CatalogRulesEnforcer.fromConfig(new ConfigReader({})); + expect(enforcer.isAllowed(entity.user, location.x)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); + expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); + }); + + it('should deny all', () => { + const enforcer = CatalogRulesEnforcer.fromConfig( + new ConfigReader({ catalog: { rules: [] } }), + ); + expect(enforcer.isAllowed(entity.user, location.x)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); + expect(enforcer.isAllowed(entity.component, location.z)).toBe(false); + }); + + it('should allow all', () => { + const enforcer = CatalogRulesEnforcer.fromConfig( + new ConfigReader({ + catalog: { + rules: [{ allow: ['User', 'Group'] }, { allow: ['Component'] }], + }, + }), + ); + expect(enforcer.isAllowed(entity.user, location.x)).toBe(true); + expect(enforcer.isAllowed(entity.group, location.y)).toBe(true); + expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); + }); + + it('should deny groups', () => { + const enforcer = CatalogRulesEnforcer.fromConfig( + new ConfigReader({ + catalog: { rules: [{ allow: ['User'] }, { allow: ['Component'] }] }, + }), + ); + expect(enforcer.isAllowed(entity.user, location.x)).toBe(true); + expect(enforcer.isAllowed(entity.group, location.x)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.z)).toBe(false); + expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); + }); + + it('should allow groups from a specific github location', () => { + const enforcer = CatalogRulesEnforcer.fromConfig( + new ConfigReader({ + catalog: { + rules: [{ allow: ['user'] }], + locations: [ + { + type: 'github', + target: 'https://github.com/a/b/blob/master/x.yaml', + allow: ['Group'], + }, + ], + }, + }), + ); + expect(enforcer.isAllowed(entity.user, location.x)).toBe(true); + expect(enforcer.isAllowed(entity.group, location.x)).toBe(true); + expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.z)).toBe(false); + expect(enforcer.isAllowed(entity.component, location.z)).toBe(false); + }); + }); }); From f546bb3862893d85a7f3cfdf84005d2fd603065e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 31 Aug 2020 01:05:54 +0200 Subject: [PATCH 271/656] docs: added catalog configuration docs --- .../software-catalog/configuration.md | 60 +++++++++++++++++++ docs/features/software-catalog/index.md | 16 +++++ mkdocs.yml | 1 + 3 files changed, 77 insertions(+) create mode 100644 docs/features/software-catalog/configuration.md diff --git a/docs/features/software-catalog/configuration.md b/docs/features/software-catalog/configuration.md new file mode 100644 index 0000000000..77b630d347 --- /dev/null +++ b/docs/features/software-catalog/configuration.md @@ -0,0 +1,60 @@ +--- +id: software-catalog-configuration +title: Catalog Configuration +--- + +## Static Location Configuration + +To enable declarative catalog setups, it is possible to add locations to the +catalog via [static configuration](../../conf/index.md). Locations are added to +the catalog under the `catalog.locations` key, for example: + +```yaml +catalog: + locations: + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/artist-lookup-component.yaml +``` + +The locations added through static configuration can not be removed through the +catalog locations API. To remove the locations, you have to remove them from the +configuration. + +## Catalog Rules + +By default the catalog will only allow ingestion of entities with the kind +`Component` and `API`. In order to allow entities of other kinds to be added, +you need to add rules to the catalog. Rules are added either in a separate +`catalog.rules` key, or added to statically configured locations. + +For example, given the following configuration: + +```yaml +catalog: + rules: + - allow: [Component, API] + - allow: [System] + locations: + type: github + + locations: + - type: github + target: https://github.com/org/example/blob/master/org-data.yaml + allow: [Group] +``` + +We are able to add entities of kind `Component` or `API` from any location, +entities of kind `System` from any `github` location, and `Group` entities from +the `org-data.yaml`, which will also be read as statically configured location. + +Note that if the `catalog.rules` key is present it will replace the default +value, meaning that you need to add rules for `Component` and `API` kinds if you +want those to be allowed. + +The following configuration will reject any kind of entities from being added to +the catalog: + +```yaml +catalog: + rules: [] +``` diff --git a/docs/features/software-catalog/index.md b/docs/features/software-catalog/index.md index db8c183390..bfc3d53d4d 100644 --- a/docs/features/software-catalog/index.md +++ b/docs/features/software-catalog/index.md @@ -79,6 +79,22 @@ All software created through the [Backstage Software Templates](../software-templates/index.md) are automatically registered in the catalog. +### Static catalog configuration + +In addition to manually registering components, it is also possible to register +components though [static configuration](../../conf/index.md). For example, the +above example can be added using the following configuration: + +```yaml +catalog: + locations: + - type: github + target: https://github.com/spotify/backstage/blob/master/packages/catalog-model/examples/artist-lookup-component.yaml +``` + +More information about catalog configuration can be found +[here](configuration.md). + ### Updating component metadata Teams owning the components are responsible for maintaining the metadata about diff --git a/mkdocs.yml b/mkdocs.yml index 637e45c0f0..b12c8f81c7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -28,6 +28,7 @@ nav: - Overview: 'features/software-catalog/index.md' - System model: 'features/software-catalog/system-model.md' - YAML File Format: 'features/software-catalog/descriptor-format.md' + - Configuration: 'features/software-catalog/configuration.md' - Extending the model: 'features/software-catalog/extending-the-model.md' - External integrations: 'features/software-catalog/external-integrations.md' - API: 'features/software-catalog/api.md' From 74e55ef32f173e2e89656bbe03802426453df5f2 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 31 Aug 2020 13:40:05 +0200 Subject: [PATCH 272/656] catalog-backend: updated docs to not include location in catalog.rules + test --- docs/features/software-catalog/configuration.md | 11 ++++------- .../src/ingestion/CatalogRules.test.ts | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/docs/features/software-catalog/configuration.md b/docs/features/software-catalog/configuration.md index 77b630d347..d4cc7fc0c2 100644 --- a/docs/features/software-catalog/configuration.md +++ b/docs/features/software-catalog/configuration.md @@ -32,10 +32,7 @@ For example, given the following configuration: ```yaml catalog: rules: - - allow: [Component, API] - - allow: [System] - locations: - type: github + - allow: [Component, API, System] locations: - type: github @@ -43,9 +40,9 @@ catalog: allow: [Group] ``` -We are able to add entities of kind `Component` or `API` from any location, -entities of kind `System` from any `github` location, and `Group` entities from -the `org-data.yaml`, which will also be read as statically configured location. +We are able to add entities of kind `Component`, `API`, or `System` from any +location, and `Group` entities from the `org-data.yaml`, which will also be read +as statically configured location. Note that if the `catalog.rules` key is present it will replace the default value, meaning that you need to add rules for `Component` and `API` kinds if you diff --git a/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts b/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts index 4a403f8dfa..34484f6b1e 100644 --- a/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts +++ b/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts @@ -179,5 +179,20 @@ describe('CatalogRulesEnforcer', () => { expect(enforcer.isAllowed(entity.group, location.z)).toBe(false); expect(enforcer.isAllowed(entity.component, location.z)).toBe(false); }); + + it('should not care about location configuration in catalog.rules', () => { + const enforcer = CatalogRulesEnforcer.fromConfig( + new ConfigReader({ + catalog: { + rules: [{ allow: ['Group'], locations: [{ type: 'github' }] }], + }, + }), + ); + expect(enforcer.isAllowed(entity.user, location.x)).toBe(false); + expect(enforcer.isAllowed(entity.group, location.x)).toBe(true); + expect(enforcer.isAllowed(entity.group, location.y)).toBe(true); + expect(enforcer.isAllowed(entity.group, location.z)).toBe(true); + expect(enforcer.isAllowed(entity.component, location.z)).toBe(false); + }); }); }); From 6a22efc31b3994bd04db93fc21f75c82bf6eefe6 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 31 Aug 2020 14:06:10 +0200 Subject: [PATCH 273/656] .github: update issue template to label with enhancement instead of help wanted (#2184) --- .github/ISSUE_TEMPLATE/feature_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/feature_template.md b/.github/ISSUE_TEMPLATE/feature_template.md index 012b8d7a06..d70622bf52 100644 --- a/.github/ISSUE_TEMPLATE/feature_template.md +++ b/.github/ISSUE_TEMPLATE/feature_template.md @@ -1,7 +1,7 @@ --- name: 'Feature Request' about: 'Suggest new features and changes' -labels: help wanted +labels: enhancement --- From b284cb38e345c87fcfd5ccf5a468668cc1fd3e36 Mon Sep 17 00:00:00 2001 From: Iain Billett Date: Mon, 31 Aug 2020 13:30:43 +0100 Subject: [PATCH 274/656] Add Plugins Page to microsite (#2144) * Add Plugins Page to microsite * Updates to microsite Plugins Page * Correct plugin authors and documentation links * Add category to UI * Move documentation from README to the docs website * Use external urls for logos * Updates to microsite Plugins Page * trailing whitespace * Run prettier on new markdown * Updates to microsite Plugins Page * Move plugins link * Clarify category field * Updates to microsite Plugins Page * Add authorUrl field to plugin config * Render author as a muted link like those in the site map * Updates to microsite Plugins Page * Add authorUrl field to example in docs * Updates to microsite Plugins Page * Add npmPackageName field - intended for future use * Updates to microsite Plugins Page * Add npmPackageName field - intended for future use * Updates to microsite Plugins Page * Use correct docs link --- docs/plugins/add-to-marketplace.md | 23 ++++++ microsite/data/plugins/rollbar.yaml | 10 +++ microsite/data/plugins/sentry.yaml | 10 +++ microsite/data/plugins/travis-ci.yaml | 10 +++ microsite/i18n/en.json | 4 + microsite/package.json | 3 +- microsite/pages/en/plugins.js | 84 +++++++++++++++++++ microsite/sidebars.json | 2 +- microsite/siteConfig.js | 4 + microsite/static/css/plugins.css | 111 ++++++++++++++++++++++++++ 10 files changed, 259 insertions(+), 2 deletions(-) create mode 100644 docs/plugins/add-to-marketplace.md create mode 100644 microsite/data/plugins/rollbar.yaml create mode 100644 microsite/data/plugins/sentry.yaml create mode 100644 microsite/data/plugins/travis-ci.yaml create mode 100644 microsite/pages/en/plugins.js create mode 100644 microsite/static/css/plugins.css diff --git a/docs/plugins/add-to-marketplace.md b/docs/plugins/add-to-marketplace.md new file mode 100644 index 0000000000..23cfecd5d0 --- /dev/null +++ b/docs/plugins/add-to-marketplace.md @@ -0,0 +1,23 @@ +--- +id: add-to-marketplace +title: Add to Marketplace +--- + +## Adding a Plugin to the Marketplace + +To add a new plugin to the [plugin marketplace](https://backstage.io/plugins) +create a file in `data/plugins` with your plugin's information. Example: + +```yaml +--- +title: Your Plugin +author: Your Name +authorUrl: # A link to information about the author E.g. Company url, github user profile, etc +category: Monitoring # A single category e.g. CI, Machine Learning, Services, Monitoring +description: A brief description of the plugin. # Max 170 characters +documentation: # A link to your documentation E.g. Your github README +iconUrl: # Used as the src attribute for your logo. +# You can provide an external url or add your logo under static/img and provide a path +# relative to static/ e.g. img/my-logo.png +npmPackageName: # Your npm package name E.g. '@backstage/plugin-' quotes are required +``` diff --git a/microsite/data/plugins/rollbar.yaml b/microsite/data/plugins/rollbar.yaml new file mode 100644 index 0000000000..0118fab391 --- /dev/null +++ b/microsite/data/plugins/rollbar.yaml @@ -0,0 +1,10 @@ +--- +title: Rollbar +author: '@andrewthauer' +authorUrl: https://github.com/andrewthauer +category: Monitoring +description: View Rollbar errors for your services in Backstage. +documentation: https://github.com/spotify/backstage/tree/master/plugins/rollbar +iconUrl: https://rollbar.com/assets/media/rollbar-mark-color.png +npmPackageName: '@backstage/plugin-rollbar' + diff --git a/microsite/data/plugins/sentry.yaml b/microsite/data/plugins/sentry.yaml new file mode 100644 index 0000000000..7ca291acea --- /dev/null +++ b/microsite/data/plugins/sentry.yaml @@ -0,0 +1,10 @@ +--- +title: Sentry +author: Spotify +authorUrl: https://www.spotify.com/ +category: Monitoring +description: View Sentry issues in Backstage. +documentation: https://github.com/spotify/backstage/tree/master/plugins/sentry +iconUrl: https://sentry-brand.storage.googleapis.com/sentry-glyph-white.png +npmPackageName: '@backstage/plugin-sentry' + diff --git a/microsite/data/plugins/travis-ci.yaml b/microsite/data/plugins/travis-ci.yaml new file mode 100644 index 0000000000..48c0a4cb86 --- /dev/null +++ b/microsite/data/plugins/travis-ci.yaml @@ -0,0 +1,10 @@ +--- +title: Travis CI +author: roadie.io +authorUrl: https://roadie.io/ +category: CI +description: View Travis CI builds for your service in Backstage. +documentation: https://roadie.io/backstage/plugins/travis-ci +iconUrl: https://roadie.io/static/af2941eaf0af675facb281d566f42e14/45f2b/travis-ci-mascot-200x200.png +npmPackageName: '@roadiehq/backstage-plugin-travis-ci' + diff --git a/microsite/i18n/en.json b/microsite/i18n/en.json index 9d83dfcef9..f61442e938 100644 --- a/microsite/i18n/en.json +++ b/microsite/i18n/en.json @@ -199,6 +199,9 @@ "overview/what-is-backstage": { "title": "What is Backstage?" }, + "plugins/add-to-marketplace": { + "title": "Add to Marketplace" + }, "plugins/backend-plugin": { "title": "Backend plugin" }, @@ -295,6 +298,7 @@ "Docs": "Docs", "Blog": "Blog", "Demos": "Demos", + "Plugins": "Plugins", "Newsletter": "Newsletter" }, "categories": { diff --git a/microsite/package.json b/microsite/package.json index 035c7438a4..baaf9ccaf4 100644 --- a/microsite/package.json +++ b/microsite/package.json @@ -13,6 +13,7 @@ "rename-version": "docusaurus-rename-version" }, "devDependencies": { - "docusaurus": "^2.0.0-alpha.61" + "docusaurus": "^2.0.0-alpha.61", + "js-yaml": "^3.14.0" } } diff --git a/microsite/pages/en/plugins.js b/microsite/pages/en/plugins.js new file mode 100644 index 0000000000..916f34c21e --- /dev/null +++ b/microsite/pages/en/plugins.js @@ -0,0 +1,84 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +const fs = require('fs'); +const yaml = require('js-yaml'); +const React = require('react'); +const Components = require(`${process.cwd()}/core/Components.js`); +const { + Block: { Container }, + BulletLine, +} = Components; + +const pluginsDirectory = require('path').join(process.cwd(), 'data/plugins'); +const pluginMetadata = fs + .readdirSync(pluginsDirectory) + .map(file => + yaml.safeLoad(fs.readFileSync(`./data/plugins/${file}`, 'utf8')), + ); +const truncate = text => + text.length > 170 ? text.substr(0, 170) + '...' : text; + +const addPluginDocsLink = '/docs/plugins/add-to-marketplace'; +const defaultIconUrl = 'img/logo-gradient-on-dark.svg'; + +const Plugins = () => ( +
+); + +module.exports = Plugins; diff --git a/microsite/sidebars.json b/microsite/sidebars.json index 72a9388818..5d8952ac41 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -91,7 +91,7 @@ { "type": "subcategory", "label": "Publishing", - "ids": ["plugins/publishing", "plugins/publish-private"] + "ids": ["plugins/publishing", "plugins/publish-private", "plugins/add-to-marketplace"] } ], "Configuration": [ diff --git a/microsite/siteConfig.js b/microsite/siteConfig.js index 73852d6ddd..cc5ad89e09 100644 --- a/microsite/siteConfig.js +++ b/microsite/siteConfig.js @@ -38,6 +38,10 @@ const siteConfig = { href: '/docs', label: 'Docs', }, + { + page: 'plugins', + label: 'Plugins', + }, { page: 'blog', blog: true, diff --git a/microsite/static/css/plugins.css b/microsite/static/css/plugins.css new file mode 100644 index 0000000000..042e2954e1 --- /dev/null +++ b/microsite/static/css/plugins.css @@ -0,0 +1,111 @@ +.PluginCard { + background-color: #272822; + height: 100%; + padding: 16px; + display: flex; + flex-direction: column; +} + +.grid { + display: grid; + grid-gap: 1rem; + grid-template-columns: repeat(4, 1fr); + grid-auto-rows: 1fr; + padding-top: 32px; +} + +@media (max-width: 1200px) { + .grid { + grid-template-columns: repeat(3, 1fr); + } +} + +@media only screen and (max-width: 815px) { + .grid { + grid-template-columns: repeat(2, 1fr); + } +} + +.PluginCard img { + float: left; + margin: 0px 16px 8px 0px; + height: 100px; + width: 100px; +} + +.PluginCardHeader { + max-height: fit-content; + min-height: fit-content; +} + +.PluginCardTitle { + color: white; + vertical-align: top; + margin: 8px 0px 0px 16px; +} + +.PluginAddNewButton { + position: absolute; + bottom: 16px; + right: 0px; +} + +.ButtonFilled { + padding: 4px 8px; + border-radius: 4px; + background-color: #36BAA2; + color: white; + margin-top: 36px; +} + +.ButtonFilled:hover { + border: 1px solid #36BAA2; + background-color: transparent; +} + +.ChipOutlined { + font-size: small; + border-radius: 16px; + padding: 2px 8px; + border: 1px solid #36BAA2; + color: #36BAA2; +} + +.PluginCardLink { + padding: 2px 8px; + position: absolute; + bottom: 0; + right: 0; +} + +.PluginPageLayout { + margin: auto; + max-width: 1430px; + padding: 20px; +} + +.PluginPageHeader { + position: relative; +} + +.PluginPageHeader h2 { + display: inline-block; +} + +.PluginCardBody { + padding-top: 8px; +} + +.PluginCardFooter { + position: relative; + min-height: 2em; +} + +.Author, .Author a { + margin-bottom: 0.25em; + color: rgba(255,255,255, 0.6); +} + + .Author a:hover { + color: white; +} From b602a7b729f8a3a388a8f6b8d61336bcbc0a6e82 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Mon, 31 Aug 2020 15:13:42 +0200 Subject: [PATCH 275/656] Remove WIP (#2185) --- packages/techdocs-container/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/techdocs-container/README.md b/packages/techdocs-container/README.md index 2bfa9a1d26..aa1bf15974 100644 --- a/packages/techdocs-container/README.md +++ b/packages/techdocs-container/README.md @@ -2,8 +2,6 @@ This is the Docker container that powers the creation of static documentation sites that are supported by [TechDocs](https://github.com/spotify/backstage/blob/master/plugins/techdocs). -**WIP: This is a work in progress. It is not ready for use yet. Follow our progress on [the Backstage Discord](https://discord.gg/MUpMjP2) under #docs-like-code or on [our GitHub Milestone](https://github.com/spotify/backstage/milestone/15).** - ## Getting Started Using the TechDocs CLI, we can invoke the latest version of `techdocs-container` via Docker Hub: From 0c29e3d410472c40ab939e1b73a934bebb410a3f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 31 Aug 2020 14:51:34 +0200 Subject: [PATCH 276/656] workflows: add discord notification --- .github/workflows/master.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 04b50c3e60..354838037e 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -74,3 +74,11 @@ jobs: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" package_root: "packages/core" tag_prefix: "v" + + - name: Discord notification + if: ${{ failure() }} + uses: Ilshidur/action-discord@0.2.0 + env: + DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} + with: + args: 'Master build failed https://github.com/{{GITHUB_REPOSITORY}}/actions/runs/{{GITHUB_RUN_ID}}' From 43ac2c0af7f32c80188fd44468bbae279bf08069 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Mon, 31 Aug 2020 14:30:01 +0200 Subject: [PATCH 277/656] feat(catalog, app): new api 4 plugins integration --- packages/app/package.json | 1 + packages/app/src/App.tsx | 7 +- packages/app/src/apis.ts | 5 +- .../app/src/components/catalog/Component.tsx | 82 ------- .../app/src/components/catalog/EntityPage.tsx | 89 +++++++ plugins/catalog/src/Router.tsx | 164 +++---------- .../{EntityPageTabs => CatalogPage}/index.ts | 2 +- .../components/EntityPage/EntityPage.test.tsx | 100 -------- .../src/components/EntityPage/EntityPage.tsx | 231 ------------------ .../EntityPageLayout/EntityPageLayout.tsx | 147 +++++++++++ .../EntityPageLayout/Tabbed/Tabbed.tsx | 98 ++++++++ .../EntityPageLayout/Tabbed/index.ts | 16 ++ .../src/components/EntityPageLayout/index.ts | 16 ++ .../EntityPageTabs/EntityPageTabs.tsx | 98 -------- .../EntityProvider/EntityProvider.tsx | 21 +- .../src/components/EntityProvider/index.ts | 16 ++ plugins/catalog/src/hooks/useEntity.ts | 32 ++- plugins/catalog/src/index.ts | 3 +- plugins/catalog/src/plugin.ts | 8 - plugins/catalog/src/routes.ts | 2 +- plugins/github-actions/src/Router.tsx | 37 ++- plugins/github-actions/src/index.ts | 2 +- plugins/github-actions/src/plugin.ts | 1 - 23 files changed, 492 insertions(+), 686 deletions(-) delete mode 100644 packages/app/src/components/catalog/Component.tsx create mode 100644 packages/app/src/components/catalog/EntityPage.tsx rename plugins/catalog/src/components/{EntityPageTabs => CatalogPage}/index.ts (92%) delete mode 100644 plugins/catalog/src/components/EntityPage/EntityPage.test.tsx delete mode 100644 plugins/catalog/src/components/EntityPage/EntityPage.tsx create mode 100644 plugins/catalog/src/components/EntityPageLayout/EntityPageLayout.tsx create mode 100644 plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx create mode 100644 plugins/catalog/src/components/EntityPageLayout/Tabbed/index.ts create mode 100644 plugins/catalog/src/components/EntityPageLayout/index.ts delete mode 100644 plugins/catalog/src/components/EntityPageTabs/EntityPageTabs.tsx rename packages/app/src/components/catalog/index.tsx => plugins/catalog/src/components/EntityProvider/EntityProvider.tsx (60%) create mode 100644 plugins/catalog/src/components/EntityProvider/index.ts diff --git a/packages/app/package.json b/packages/app/package.json index d6598b9954..4b9b40466b 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -5,6 +5,7 @@ "dependencies": { "@backstage/cli": "^0.1.1-alpha.19", "@backstage/core": "^0.1.1-alpha.19", + "@backstage/catalog-model": "^0.1.1-alpha.19", "@backstage/plugin-api-docs": "^0.1.1-alpha.19", "@backstage/plugin-catalog": "^0.1.1-alpha.19", "@backstage/plugin-circleci": "^0.1.1-alpha.19", diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index cb0853a013..5abc058920 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -26,11 +26,11 @@ import * as plugins from './plugins'; import { apis } from './apis'; import { hot } from 'react-hot-loader/root'; import { providers } from './identityProviders'; -import { CatalogPlugin } from '@backstage/plugin-catalog'; +import { CatalogRouter } from '@backstage/plugin-catalog'; // import { ExplorePlugin } from '@backstage/plugin-explore'; import { Route, Routes } from 'react-router'; -import { EntityPage } from './components/catalog'; +import { EntityPage } from './components/catalog/EntityPage'; const app = createApp({ apis, @@ -56,11 +56,12 @@ const AppRoutes = () => ( } + element={} /> {/* } /> */} ); + const App: FC<{}> = () => ( diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index df023b80cb..f8a28ca85a 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -74,7 +74,10 @@ import { TravisCIApi, travisCIApiRef, } from '@roadiehq/backstage-plugin-travis-ci'; -import { GithubPullRequestsClient, githubPullRequestsApiRef } from '@roadiehq/backstage-plugin-github-pull-requests'; +import { + GithubPullRequestsClient, + githubPullRequestsApiRef, +} from '@roadiehq/backstage-plugin-github-pull-requests'; export const apis = (config: ConfigApi) => { // eslint-disable-next-line no-console diff --git a/packages/app/src/components/catalog/Component.tsx b/packages/app/src/components/catalog/Component.tsx deleted file mode 100644 index 2d2aef9f79..0000000000 --- a/packages/app/src/components/catalog/Component.tsx +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { - GitHubActionsPlugin, - GITHUB_ACTIONS_ANNOTATION, -} from '@backstage/plugin-github-actions'; -import { - useEntity, - EntityPageTabs as Tabs, - EntityMetadataCard, -} from '@backstage/plugin-catalog'; -import { Grid } from '@material-ui/core'; - -const OverviewPage = () => { - const entity = useEntity(); - return ( - - - - ); -}; - -// Just for illustration purposes, gonna live in plugin-circle-ci -const CIRCLE_CI_ANNOTATION = 'circle-ci-slug-dummy'; - -const DefaultEntity = () => { - const entity = useEntity(); - - const isCIAvailable = [ - entity!.metadata!.annotations?.[GITHUB_ACTIONS_ANNOTATION], - entity!.metadata!.annotations?.[CIRCLE_CI_ANNOTATION], - ].some(Boolean); - - return ( - - - - - {isCIAvailable && ( - - {entity!.metadata!.annotations?.[GITHUB_ACTIONS_ANNOTATION] && ( - - )} - - )} - - {/* eslint-disable-next-line no-console */} -
{console.log('was here /docs')}Docs tab contents
-
-
- ); -}; - -const Service = () => ; -const Website = () => ; -const UnkownEntity = () =>
Unknown entity!
; - -export const ComponentEntity = () => { - const entity = useEntity(); - switch (entity.spec!.type) { - case 'service': - return ; - case 'website': - return ; - default: - return ; - } -}; diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx new file mode 100644 index 0000000000..4368d8e26b --- /dev/null +++ b/packages/app/src/components/catalog/EntityPage.tsx @@ -0,0 +1,89 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { GitHubActionsPage } from '@backstage/plugin-github-actions'; +import React from 'react'; +import { + EntityPageLayout, + useEntity, + EntityMetadataCard, +} from '@backstage/plugin-catalog'; +import { Entity } from '@backstage/catalog-model'; + +export const OverviewPage = ({ entity }: { entity: Entity }) => ( + +); + +const ServiceEntityPage = ({ entity }: { entity: Entity }) => ( + + } + /> + } + /> + Much docs, such wow ({entity.metadata.name})ðŸ¶
+
+ + + + {pluginMetadata.map( + ({ + iconUrl, + title, + description, + author, + authorUrl, + documentation, + category, + }) => ( +
+
+ {title} +

{title}

+

+ by {author} +

+ {category} +
+
+

{truncate(description)}

+
+ + + + docs + + + +
+ ), + )} +
+
+
} + /> + +); + +const WebsiteEntityPage = ({ entity }: { entity: Entity }) => ( + + } + /> + } + /> + Much docs, such wow ({entity.metadata.name})ðŸ¶
} + /> + +); + +const DefaultEntityPage = ({ entity }: { entity: Entity }) => ( + + } + /> + +); + +export const EntityPage = () => { + const { entity } = useEntity(); + switch (entity?.spec?.type) { + case 'service': + return ; + case 'website': + return ; + default: + return ; + } +}; diff --git a/plugins/catalog/src/Router.tsx b/plugins/catalog/src/Router.tsx index 701b9d1045..161536c714 100644 --- a/plugins/catalog/src/Router.tsx +++ b/plugins/catalog/src/Router.tsx @@ -13,152 +13,58 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React, { FC, useState } from 'react'; -import { CatalogPage } from './components/CatalogPage/CatalogPage'; -// import { EntityPage } from './components/EntityPage/EntityPage'; -import { Route, Routes, useParams, useNavigate } from 'react-router'; +import React, { ComponentType } from 'react'; +import { CatalogPage } from './components/CatalogPage'; +import { EntityPageLayout } from './components/EntityPageLayout'; +import { Route, Routes } from 'react-router'; import { entityRoute, rootRoute, entityRouteDefault } from './routes'; -import { useEntityFromUrl, EntityContext, useEntity } from './hooks/useEntity'; -import { - pageTheme, - PageTheme, - Page, - Header, - HeaderLabel, - Content, - Progress, -} from '@backstage/core'; -import { Entity } from '@backstage/catalog-model'; -import { FavouriteEntity } from './components/FavouriteEntity/FavouriteEntity'; -import { Box } from '@material-ui/core'; -import { EntityContextMenu } from './components/EntityContextMenu/EntityContextMenu'; -import { UnregisterEntityDialog } from './components/UnregisterEntityDialog/UnregisterEntityDialog'; -import { Alert } from '@material-ui/lab'; -// const EntityContext = React.createContext(null); -export const getPageTheme = (entity?: Entity): PageTheme => { - const themeKey = entity?.spec?.type?.toString() ?? 'home'; - return pageTheme[themeKey] ?? pageTheme.home; -}; +import { Content } from '@backstage/core'; +import { Typography, Link } from '@material-ui/core'; +import { EntityProvider } from './components/EntityProvider'; -const EntityPageTitle = ({ - entity, - title, -}: { - title: string; - entity: Entity | undefined; -}) => ( - - {title} - {entity && } - +const DefaultEntityPage = () => ( + + + This is default entity page. + + To override this component with your custom implementation, read + docs on{' '} + + backstage.io/docs + + + + } + /> + ); -function headerProps( - kind: string, - namespace: string | undefined, - name: string, - entity: Entity | undefined, -): { headerTitle: string; headerType: string } { - return { - headerTitle: `${name}${namespace ? ` in ${namespace}` : ''}`, - headerType: (() => { - let t = kind.toLowerCase(); - if (entity && entity.spec && 'type' in entity.spec) { - t += ' — '; - t += (entity.spec as { type: string }).type.toLowerCase(); - } - return t; - })(), - }; -} -const EntityPageLayout = ({ children }: { children: React.ReactNode }) => { - const { entity, loading, error } = useEntityFromUrl(); - const { optionalNamespaceAndName, kind } = useParams() as { - optionalNamespaceAndName: string; - kind: string; - }; - const [name, namespace] = optionalNamespaceAndName.split(':').reverse(); - - const { headerTitle, headerType } = headerProps( - kind, - namespace, - name, - entity!, - ); - - const [confirmationDialogOpen, setConfirmationDialogOpen] = useState(false); - const navigate = useNavigate(); - const cleanUpAfterRemoval = async () => { - setConfirmationDialogOpen(false); - navigate('/'); - }; - - const showRemovalDialog = () => setConfirmationDialogOpen(true); - - return ( - -
} - pageTitleOverride={headerTitle} - type={headerType} - > - {entity && ( - <> - - - - - )} -
- - {loading && } - - {entity && ( - - {children} - - )} - {error && ( - - {error.toString()} - - )} - setConfirmationDialogOpen(false)} - /> -
- ); -}; - -export const CatalogPlugin = ({ EntityPage }) => ( +export const CatalogRouter = ({ + EntityPage = DefaultEntityPage, +}: { + EntityPage?: ComponentType; +}) => ( } /> + - + } /> + - + } /> ); - -export { EntityMetadataCard } from './components/EntityMetadataCard/EntityMetadataCard'; diff --git a/plugins/catalog/src/components/EntityPageTabs/index.ts b/plugins/catalog/src/components/CatalogPage/index.ts similarity index 92% rename from plugins/catalog/src/components/EntityPageTabs/index.ts rename to plugins/catalog/src/components/CatalogPage/index.ts index 83fc3d1095..1adb8866c8 100644 --- a/plugins/catalog/src/components/EntityPageTabs/index.ts +++ b/plugins/catalog/src/components/CatalogPage/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { EntityPageTabs } from './EntityPageTabs'; +export { CatalogPage } from './CatalogPage'; diff --git a/plugins/catalog/src/components/EntityPage/EntityPage.test.tsx b/plugins/catalog/src/components/EntityPage/EntityPage.test.tsx deleted file mode 100644 index 1b966c0bde..0000000000 --- a/plugins/catalog/src/components/EntityPage/EntityPage.test.tsx +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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. - */ - -jest.mock('react-router-dom', () => { - const actual = jest.requireActual('react-router-dom'); - const mockNavigate = jest.fn(); - return { - ...actual, - useNavigate: jest.fn(() => mockNavigate), - useParams: jest.fn(), - }; -}); - -import { ApiProvider, ApiRegistry, errorApiRef } from '@backstage/core'; -import { Entity } from '@backstage/catalog-model'; -import { wrapInTestApp } from '@backstage/test-utils'; -import { render, waitFor } from '@testing-library/react'; -import * as React from 'react'; -import { CatalogApi, catalogApiRef } from '../../api/types'; -import { EntityPage, getPageTheme } from './EntityPage'; - -const { - useParams, - useNavigate, -}: { useParams: jest.Mock; useNavigate: () => jest.Mock } = jest.requireMock( - 'react-router-dom', -); - -const errorApi = { post: () => {} }; - -describe('EntityPage', () => { - it('should redirect to catalog page when name is not provided', async () => { - useParams.mockReturnValue({ - kind: 'Component', - optionalNamespaceAndName: '', - }); - - render( - wrapInTestApp( - ) as CatalogApi, - ], - ])} - > - - , - ), - ); - - await waitFor(() => expect(useNavigate()).toHaveBeenCalledWith('/catalog')); - }); -}); - -describe('getPageTheme', () => { - const defaultPageTheme = getPageTheme(); - it.each(['service', 'app', 'library', 'tool', 'documentation', 'website'])( - 'should select right theme for predefined type: %p ̰ ', - type => { - const theme = getPageTheme(({ - spec: { - type, - }, - } as any) as Entity); - expect(theme).toBeDefined(); - expect(theme).not.toBe(defaultPageTheme); - }, - ); - - it('should select default theme for unknown/unspecified types', () => { - const theme1 = getPageTheme(({ - spec: { - type: 'unknown-type', - }, - } as any) as Entity); - const theme2 = getPageTheme(({ - spec: {}, - } as any) as Entity); - expect(theme1).toBe(defaultPageTheme); - expect(theme2).toBe(defaultPageTheme); - }); -}); diff --git a/plugins/catalog/src/components/EntityPage/EntityPage.tsx b/plugins/catalog/src/components/EntityPage/EntityPage.tsx deleted file mode 100644 index adbc758067..0000000000 --- a/plugins/catalog/src/components/EntityPage/EntityPage.tsx +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { Entity } from '@backstage/catalog-model'; -import { - Content, - errorApiRef, - Header, - HeaderLabel, - Page, - pageTheme, - PageTheme, - Progress, - useApi, - HeaderTabs, -} from '@backstage/core'; -import { Box } from '@material-ui/core'; -import { Alert } from '@material-ui/lab'; -import React, { FC, useEffect, useState } from 'react'; -import { useNavigate, useParams } from 'react-router-dom'; -import { useAsync } from 'react-use'; -import { catalogApiRef } from '../..'; -import { EntityContextMenu } from '../EntityContextMenu/EntityContextMenu'; -import { EntityPageDocs } from '../EntityPageDocs/EntityDocsPage'; -import { EntityPageApi } from '../EntityPageApi/EntityPageApi'; -import { EntityPageOverview } from '../EntityPageOverview/EntityPageOverview'; -import { FavouriteEntity } from '../FavouriteEntity/FavouriteEntity'; -import { UnregisterEntityDialog } from '../UnregisterEntityDialog/UnregisterEntityDialog'; - -const REDIRECT_DELAY = 1000; -function headerProps( - kind: string, - namespace: string | undefined, - name: string, - entity: Entity | undefined, -): { headerTitle: string; headerType: string } { - return { - headerTitle: `${name}${namespace ? ` in ${namespace}` : ''}`, - headerType: (() => { - let t = kind.toLowerCase(); - if (entity && entity.spec && 'type' in entity.spec) { - t += ' — '; - t += (entity.spec as { type: string }).type.toLowerCase(); - } - return t; - })(), - }; -} - -export const getPageTheme = (entity?: Entity): PageTheme => { - const themeKey = entity?.spec?.type?.toString() ?? 'home'; - return pageTheme[themeKey] ?? pageTheme.home; -}; - -const EntityPageTitle: FC<{ title: string; entity: Entity | undefined }> = ({ - entity, - title, -}) => ( - - {title} - {entity && } - -); - -export const EntityPage: FC<{}> = () => { - const { - optionalNamespaceAndName, - kind, - selectedTabId = 'overview', - } = useParams() as { - optionalNamespaceAndName: string; - kind: string; - selectedTabId: string; - }; - const navigate = useNavigate(); - - const [name, namespace] = optionalNamespaceAndName.split(':').reverse(); - - const errorApi = useApi(errorApiRef); - const catalogApi = useApi(catalogApiRef); - - const [confirmationDialogOpen, setConfirmationDialogOpen] = useState(false); - const { value: entity, error, loading } = useAsync( - () => catalogApi.getEntityByName({ kind, namespace, name }), - [catalogApi, kind, namespace, name], - ); - - useEffect(() => { - if (!error && !loading && !entity) { - errorApi.post(new Error('Entity not found!')); - setTimeout(() => { - navigate('/'); - }, REDIRECT_DELAY); - } - }, [errorApi, navigate, error, loading, entity]); - - if (!name) { - navigate('/catalog'); - return null; - } - - const cleanUpAfterRemoval = async () => { - setConfirmationDialogOpen(false); - navigate('/'); - }; - - const showRemovalDialog = () => setConfirmationDialogOpen(true); - - // TODO - Replace with proper tabs implementation - const tabs = [ - { - id: 'overview', - label: 'Overview', - content: (e: Entity) => , - }, - { - id: 'ci', - label: 'CI/CD', - }, - { - id: 'tests', - label: 'Tests', - }, - { - id: 'api', - label: 'API', - show: (e: Entity) => !!e?.spec?.implementsApis, - content: (e: Entity) => , - }, - { - id: 'monitoring', - label: 'Monitoring', - }, - { - id: 'quality', - label: 'Quality', - }, - { - id: 'docs', - label: 'Docs', - show: (e: Entity) => - !!e.metadata.annotations?.['backstage.io/techdocs-ref'], - content: (e: Entity) => , - }, - ]; - - const { headerTitle, headerType } = headerProps( - kind, - namespace, - name, - entity, - ); - - const selectedTab = tabs.find(tab => tab.id === selectedTabId); - - const filteredHeaderTabs = entity - ? tabs.filter(tab => (tab.show ? tab.show(entity) : true)) - : []; - - return ( - -
} - pageTitleOverride={headerTitle} - type={headerType} - > - {entity && ( - <> - - - - - )} -
- - {loading && } - - {error && ( - - {error.toString()} - - )} - - {entity && ( - <> - { - navigate( - `/catalog/${kind}/${optionalNamespaceAndName}/${filteredHeaderTabs[idx].id}`, - ); - }} - selectedIndex={filteredHeaderTabs.findIndex( - tab => tab.id === selectedTabId, - )} - /> - - {selectedTab && selectedTab.content - ? selectedTab.content(entity) - : null} - - setConfirmationDialogOpen(false)} - /> - - )} -
- ); -}; diff --git a/plugins/catalog/src/components/EntityPageLayout/EntityPageLayout.tsx b/plugins/catalog/src/components/EntityPageLayout/EntityPageLayout.tsx new file mode 100644 index 0000000000..532a9e3b0b --- /dev/null +++ b/plugins/catalog/src/components/EntityPageLayout/EntityPageLayout.tsx @@ -0,0 +1,147 @@ +/* + * Copyright 2020 Spotify AB + * + * 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, { useState } from 'react'; +import { useParams, useNavigate } from 'react-router'; + +import { + useEntityFromUrl, + EntityContext, + useEntity, +} from '../../hooks/useEntity'; +import { + pageTheme, + PageTheme, + Page, + Header, + HeaderLabel, + Content, + Progress, +} from '@backstage/core'; +import { Entity } from '@backstage/catalog-model'; +import { FavouriteEntity } from '../FavouriteEntity/FavouriteEntity'; +import { Box } from '@material-ui/core'; +import { EntityContextMenu } from '../EntityContextMenu/EntityContextMenu'; +import { UnregisterEntityDialog } from '../UnregisterEntityDialog/UnregisterEntityDialog'; +import { Alert } from '@material-ui/lab'; +import { Tabbed } from './Tabbed'; + +const getPageTheme = (entity?: Entity): PageTheme => { + const themeKey = entity?.spec?.type?.toString() ?? 'home'; + return pageTheme[themeKey] ?? pageTheme.home; +}; + +const EntityPageTitle = ({ + entity, + title, +}: { + title: string; + entity: Entity | undefined; +}) => ( + + {title} + {entity && } + +); + +function headerProps( + kind: string, + namespace: string | undefined, + name: string, + entity: Entity | undefined, +): { headerTitle: string; headerType: string } { + return { + headerTitle: `${name}${namespace ? ` in ${namespace}` : ''}`, + headerType: (() => { + let t = kind.toLowerCase(); + if (entity && entity.spec && 'type' in entity.spec) { + t += ' — '; + t += (entity.spec as { type: string }).type.toLowerCase(); + } + return t; + })(), + }; +} + +export const EntityPageLayout = ({ + children, +}: { + children: React.ReactNode; +}) => { + const { optionalNamespaceAndName, kind } = useParams() as { + optionalNamespaceAndName: string; + kind: string; + }; + const [name, namespace] = optionalNamespaceAndName.split(':').reverse(); + + const { entity, loading, error } = useEntity(); + const { headerTitle, headerType } = headerProps( + kind, + namespace, + name, + entity!, + ); + + const [confirmationDialogOpen, setConfirmationDialogOpen] = useState(false); + const navigate = useNavigate(); + const cleanUpAfterRemoval = async () => { + setConfirmationDialogOpen(false); + navigate('/'); + }; + + const showRemovalDialog = () => setConfirmationDialogOpen(true); + + return ( + +
} + pageTitleOverride={headerTitle} + type={headerType} + > + {entity && ( + <> + + + + + )} +
+ + {loading && } + + {entity && {children}} + + {error && ( + + {error.toString()} + + )} + setConfirmationDialogOpen(false)} + /> +
+ ); +}; + +EntityPageLayout.Content = Tabbed.Content; diff --git a/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx b/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx new file mode 100644 index 0000000000..6e32dd1c80 --- /dev/null +++ b/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx @@ -0,0 +1,98 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { + useParams, + useNavigate, + PartialRouteObject, + matchRoutes, + RouteObject, + useRoutes, + Navigate, + RouteMatch, +} from 'react-router'; +import { Tab, HeaderTabs, Content } from '@backstage/core'; +import { Grid } from '@material-ui/core'; +import { Helmet } from 'react-helmet'; + +const getSelectedIndex = (matchedRoute: RouteMatch, tabs: Tab[]) => { + if (!matchedRoute) return 0; + const tabIndex = tabs.findIndex(t => t.id === matchedRoute.route.path); + return ~tabIndex ? tabIndex : 0; +}; + +export const Tabbed = { + Layout: ({ children }: { children: React.ReactNode }) => { + const routes: PartialRouteObject[] = []; + const tabs: Tab[] = []; + const params = useParams(); + const navigate = useNavigate(); + + React.Children.forEach(children, child => { + if (!React.isValidElement(child)) { + // Skip conditionals resolved to falses/nulls/undefineds etc + return; + } + const pathAndId = (child as JSX.Element).props.path; + + // Child here must be then always a functional component without any wrappers + tabs.push({ + id: pathAndId, + label: (child as JSX.Element).props.title, + }); + + routes.push({ + path: pathAndId, + element: child.props.element, + }); + }); + + // Add catch-all for incorrect sub-routes + routes.push({ + path: '/*', + element: , + }); + + const [matchedRoute] = + matchRoutes(routes as RouteObject[], `/${params['*']}`) ?? []; + const selectedIndex = getSelectedIndex(matchedRoute, tabs); + const currentTab = tabs[selectedIndex]; + const title = currentTab.label; + + const onTabChange = (index: number) => + navigate(tabs[index].id.slice(1, -2)); + + const currentRouteElement = useRoutes(routes); + + return ( + <> + + + + + {currentRouteElement} + + + + ); + }, + Content: (_props: { path: string; title: string; element: JSX.Element }) => + null, +}; diff --git a/plugins/catalog/src/components/EntityPageLayout/Tabbed/index.ts b/plugins/catalog/src/components/EntityPageLayout/Tabbed/index.ts new file mode 100644 index 0000000000..d58cd626ba --- /dev/null +++ b/plugins/catalog/src/components/EntityPageLayout/Tabbed/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { Tabbed } from './Tabbed'; diff --git a/plugins/catalog/src/components/EntityPageLayout/index.ts b/plugins/catalog/src/components/EntityPageLayout/index.ts new file mode 100644 index 0000000000..acf6f948f1 --- /dev/null +++ b/plugins/catalog/src/components/EntityPageLayout/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { EntityPageLayout } from './EntityPageLayout'; diff --git a/plugins/catalog/src/components/EntityPageTabs/EntityPageTabs.tsx b/plugins/catalog/src/components/EntityPageTabs/EntityPageTabs.tsx deleted file mode 100644 index 2053c05b91..0000000000 --- a/plugins/catalog/src/components/EntityPageTabs/EntityPageTabs.tsx +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { - useParams, - useNavigate, - PartialRouteObject, - matchRoutes, - RouteObject, - useRoutes, - Navigate, - RouteMatch, -} from 'react-router'; -import { Tab, HeaderTabs, Content } from '@backstage/core'; -import { Grid } from '@material-ui/core'; -import { Helmet } from 'react-helmet'; - -const getSelectedIndex = (matchedRoute: RouteMatch, tabs: Tab[]) => { - if (!matchedRoute) return 0; - const tabIndex = tabs.findIndex(t => t.id === matchedRoute.route.path); - return ~tabIndex ? tabIndex : 0; -}; -export const EntityPageTabs = ({ children }: { children: React.ReactNode }) => { - const routes: PartialRouteObject[] = []; - const tabs: Tab[] = []; - const params = useParams(); - const navigate = useNavigate(); - - React.Children.forEach(children, child => { - if (!React.isValidElement(child)) { - // Skip conditionals resolved to falses/nulls/undefineds etc - return; - } - const pathAndId = - (child as JSX.Element).props.path + - ((child as JSX.Element).props.exact ? '' : '/*'); - routes.push({ - path: pathAndId, - element: (child as JSX.Element).props.children, - }); - tabs.push({ - id: pathAndId, - label: (child as JSX.Element).props.title, - }); - }); - - // Add catch-all for incorrect sub-routes - routes.push({ - path: '/*', - element: , - }); - - const [matchedRoute] = - matchRoutes(routes as RouteObject[], `/${params['*']}`) ?? []; - const selectedIndex = getSelectedIndex(matchedRoute, tabs); - const currentTab = tabs[selectedIndex]; - const title = currentTab.label; - - const onTabChange = (index: number) => navigate(tabs[index].id.slice(1, -2)); - - const currentRouteElement = useRoutes(routes); - - return ( - <> - - - - - {currentRouteElement} - - - - ); -}; -type TabProps = { - children: React.ReactNode; - title: string; - path: string; - exact?: boolean; -}; -EntityPageTabs.Tab = (_props: TabProps) => null; diff --git a/packages/app/src/components/catalog/index.tsx b/plugins/catalog/src/components/EntityProvider/EntityProvider.tsx similarity index 60% rename from packages/app/src/components/catalog/index.tsx rename to plugins/catalog/src/components/EntityProvider/EntityProvider.tsx index 9aaf1a568b..e328b64d44 100644 --- a/packages/app/src/components/catalog/index.tsx +++ b/plugins/catalog/src/components/EntityProvider/EntityProvider.tsx @@ -13,18 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React from 'react'; -import { useEntity } from '@backstage/plugin-catalog'; -import { ComponentEntity } from './Component'; +import React, { ReactNode } from 'react'; +import { useEntityFromUrl, EntityContext } from '../../hooks/useEntity'; -const UnkownEntityKind = () =>
Unknown entity kind!
; +export const EntityProvider = ({ children }: { children: ReactNode }) => { + const { entity, loading, error } = useEntityFromUrl(); -export const EntityPage = () => { - const entity = useEntity(); - switch (entity.kind) { - case 'Component': - return ; - default: - return ; - } + return ( + + {children} + + ); }; diff --git a/plugins/catalog/src/components/EntityProvider/index.ts b/plugins/catalog/src/components/EntityProvider/index.ts new file mode 100644 index 0000000000..01eae4737f --- /dev/null +++ b/plugins/catalog/src/components/EntityProvider/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { EntityProvider } from './EntityProvider'; diff --git a/plugins/catalog/src/hooks/useEntity.ts b/plugins/catalog/src/hooks/useEntity.ts index 022be1126f..ede45efeef 100644 --- a/plugins/catalog/src/hooks/useEntity.ts +++ b/plugins/catalog/src/hooks/useEntity.ts @@ -22,8 +22,19 @@ import { Entity } from '@backstage/catalog-model'; const REDIRECT_DELAY = 2000; -export const EntityContext = createContext((null as any) as Entity); -export const useEntityFromUrl = () => { +type EntityLoadingStatus = { + entity?: Entity; + loading: boolean | null; + error?: Error; +}; + +export const EntityContext = createContext({ + entity: undefined as any, + loading: null, + error: undefined, +}); + +export const useEntityFromUrl = (): EntityLoadingStatus => { const { optionalNamespaceAndName, kind } = useParams(); const [name, namespace] = optionalNamespaceAndName.split(':').reverse(); const navigate = useNavigate(); @@ -36,7 +47,7 @@ export const useEntityFromUrl = () => { ); useEffect(() => { - if (!error && !loading && !entity) { + if (error || (!loading && !entity)) { errorApi.post(new Error('Entity not found!')); setTimeout(() => { navigate('/'); @@ -46,10 +57,21 @@ export const useEntityFromUrl = () => { if (!name) { navigate('/catalog'); - return { entity: null, loading: null, error: new Error('No name in url') }; + return { + entity: undefined, + loading: null, + error: new Error('No name in url'), + } as never; } return { entity, loading, error }; }; -export const useEntity = () => useContext(EntityContext); +/** + * Always going to return an entity, or throw an error if not a descendant of a EntityProvider. + * Otherwise the useEntityFromUrl will take care of the `undefined` entity + */ +export const useEntity = () => + useContext & { entity: Entity }>( + EntityContext as any, + ); diff --git a/plugins/catalog/src/index.ts b/plugins/catalog/src/index.ts index ba8826aaa9..d0e9778a00 100644 --- a/plugins/catalog/src/index.ts +++ b/plugins/catalog/src/index.ts @@ -21,4 +21,5 @@ export * from './routes'; export { useEntityCompoundName } from './components/useEntityCompoundName'; export * from './Router'; export { useEntity } from './hooks/useEntity'; -export { EntityPageTabs } from './components/EntityPageTabs'; +export { EntityMetadataCard } from './components/EntityMetadataCard/EntityMetadataCard'; +export { EntityPageLayout } from './components/EntityPageLayout'; diff --git a/plugins/catalog/src/plugin.ts b/plugins/catalog/src/plugin.ts index 483e1f8464..4bfbf2453b 100644 --- a/plugins/catalog/src/plugin.ts +++ b/plugins/catalog/src/plugin.ts @@ -15,15 +15,7 @@ */ import { createPlugin } from '@backstage/core'; -import { CatalogPage } from './components/CatalogPage/CatalogPage'; -import { EntityPage } from './components/EntityPage/EntityPage'; -import { entityRoute, rootRoute, entityRouteDefault } from './routes'; export const plugin = createPlugin({ id: 'catalog', - register({ router }) { - router.addRoute(rootRoute, CatalogPage); - router.addRoute(entityRoute, EntityPage); - router.addRoute(entityRouteDefault, EntityPage); - }, }); diff --git a/plugins/catalog/src/routes.ts b/plugins/catalog/src/routes.ts index c3fd97564a..a9606760fb 100644 --- a/plugins/catalog/src/routes.ts +++ b/plugins/catalog/src/routes.ts @@ -30,6 +30,6 @@ export const entityRoute = createRouteRef({ }); export const entityRouteDefault = createRouteRef({ icon: NoIcon, - path: ':kind/:optionalNamespaceAndName', + path: ':kind/:optionalNamespaceAndName/*', title: 'Entity', }); diff --git a/plugins/github-actions/src/Router.tsx b/plugins/github-actions/src/Router.tsx index b843c594b9..c508302e6d 100644 --- a/plugins/github-actions/src/Router.tsx +++ b/plugins/github-actions/src/Router.tsx @@ -19,16 +19,29 @@ import { Routes, Route } from 'react-router'; import { rootRouteRef, buildRouteRef } from './plugin'; import { WorkflowRunDetails } from './components/WorkflowRunDetails'; import { WorkflowRunsTable } from './components/WorkflowRunsTable'; +import { GITHUB_ACTIONS_ANNOTATION } from './components/useProjectName'; +import { WarningPanel } from '@backstage/core'; -export const GitHubActionsPlugin = ({ entity }: { entity: Entity }) => ( - - } - /> - } - /> - -); +const isPluginApplicableToEntity = (entity: Entity) => + Boolean(entity?.metadata?.annotations?.[GITHUB_ACTIONS_ANNOTATION]) && + entity?.metadata?.annotations?.[GITHUB_ACTIONS_ANNOTATION] !== ''; + +export const GitHubActionsPage = ({ entity }: { entity: Entity }) => + !isPluginApplicableToEntity(entity) ? ( + + `entity.metadata.annotations[' + {GITHUB_ACTIONS_ANNOTATION}']` key is missing on the entity.{' '} + + ) : ( + + } + /> + } + /> + ) + + ); diff --git a/plugins/github-actions/src/index.ts b/plugins/github-actions/src/index.ts index f500685507..0bb5862d8b 100644 --- a/plugins/github-actions/src/index.ts +++ b/plugins/github-actions/src/index.ts @@ -17,5 +17,5 @@ export { plugin } from './plugin'; export * from './api'; export { Widget } from './components/Widget'; -export { GitHubActionsPlugin } from './Router'; +export { GitHubActionsPage } from './Router'; export { GITHUB_ACTIONS_ANNOTATION } from './components/useProjectName'; diff --git a/plugins/github-actions/src/plugin.ts b/plugins/github-actions/src/plugin.ts index ead33b7959..7e08229d6d 100644 --- a/plugins/github-actions/src/plugin.ts +++ b/plugins/github-actions/src/plugin.ts @@ -29,5 +29,4 @@ export const buildRouteRef = createRouteRef({ export const plugin = createPlugin({ id: 'github-actions', - register() {}, }); From f14ebd6d186b85311347feda95df1f7ef9cbc7a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Mon, 31 Aug 2020 17:29:29 +0200 Subject: [PATCH 278/656] Add more plugins to Marketplace (#2192) --- microsite/data/plugins/circleci.yaml | 9 +++++++++ microsite/data/plugins/gitops-cluster.yaml | 14 ++++++++++++++ microsite/data/plugins/graphiql.yaml | 13 +++++++++++++ microsite/data/plugins/lighthouse.yaml | 14 ++++++++++++++ microsite/data/plugins/new-relic.yaml | 14 ++++++++++++++ microsite/data/plugins/tech-radar.yaml | 9 +++++++++ microsite/i18n/en.json | 2 +- 7 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 microsite/data/plugins/circleci.yaml create mode 100644 microsite/data/plugins/gitops-cluster.yaml create mode 100644 microsite/data/plugins/graphiql.yaml create mode 100644 microsite/data/plugins/lighthouse.yaml create mode 100644 microsite/data/plugins/new-relic.yaml create mode 100644 microsite/data/plugins/tech-radar.yaml diff --git a/microsite/data/plugins/circleci.yaml b/microsite/data/plugins/circleci.yaml new file mode 100644 index 0000000000..c8a3677614 --- /dev/null +++ b/microsite/data/plugins/circleci.yaml @@ -0,0 +1,9 @@ +--- +title: CircleCI +author: Spotify +authorUrl: https://www.spotify.com/ +category: CI +description: Automate your development process with CI hosted in the cloud or on a private server. +documentation: https://github.com/spotify/backstage/tree/master/plugins/circleci +iconUrl: https://d3r49iyjzglexf.cloudfront.net/logo-wordmark-26f8eaea9b0f6e13b90d3f4a8fd8fda31490f5af41daab98bbede45037682576.svg +npmPackageName: '@backstage/plugin-circleci' diff --git a/microsite/data/plugins/gitops-cluster.yaml b/microsite/data/plugins/gitops-cluster.yaml new file mode 100644 index 0000000000..6f8ab6b097 --- /dev/null +++ b/microsite/data/plugins/gitops-cluster.yaml @@ -0,0 +1,14 @@ +--- +title: GitOps Clusters +author: Weaveworks +authorUrl: https://www.weave.works/ +category: Kubernetes +description: Create GitOps-managed Kubernetes clusters. Currently, it supports provisioning EKS clusters on GitHub via GitHub Actions. +documentation: https://github.com/spotify/backstage/tree/master/plugins/gitops-profiles +iconUrl: https://res-5.cloudinary.com/crunchbase-production/image/upload/c_lpad,h_256,w_256,f_auto,q_auto:eco/v1462316670/i9d3delzvx1erzjhmcws.png +npmPackageName: '@backstage/plugin-gitops-profiles' +tags: + - kubernetes + - gitops + - github + - eks diff --git a/microsite/data/plugins/graphiql.yaml b/microsite/data/plugins/graphiql.yaml new file mode 100644 index 0000000000..73733c84fd --- /dev/null +++ b/microsite/data/plugins/graphiql.yaml @@ -0,0 +1,13 @@ +--- +title: GraphiQL +author: Spotify +authorUrl: https://www.spotify.com/ +category: Debugging +description: Integrates GraphiQL as a tool to browse GraphiQL endpoints inside Backstage. +documentation: https://github.com/spotify/backstage/tree/master/plugins/lighthouse +iconUrl: https://upload.wikimedia.org/wikipedia/commons/thumb/1/17/GraphQL_Logo.svg/1024px-GraphQL_Logo.svg.png +npmPackageName: '@backstage/plugin-graphiql' +tags: + - graphql + - github + - gitlab diff --git a/microsite/data/plugins/lighthouse.yaml b/microsite/data/plugins/lighthouse.yaml new file mode 100644 index 0000000000..15a650f0bd --- /dev/null +++ b/microsite/data/plugins/lighthouse.yaml @@ -0,0 +1,14 @@ +--- +title: Lighthouse +author: Spotify +authorUrl: https://www.spotify.com/ +category: Accessibility +description: Google's Lighthouse tool is a great resource for benchmarking and improving the accessibility, performance, SEO, and best practices of your website. +documentation: https://github.com/spotify/backstage/tree/master/plugins/lighthouse +iconUrl: https://seeklogo.com/images/G/google-lighthouse-logo-1C7FA08580-seeklogo.com.png +npmPackageName: '@backstage/plugin-lighthouse' +tags: + - web + - seo + - accessibility + - performance diff --git a/microsite/data/plugins/new-relic.yaml b/microsite/data/plugins/new-relic.yaml new file mode 100644 index 0000000000..e3ddf18652 --- /dev/null +++ b/microsite/data/plugins/new-relic.yaml @@ -0,0 +1,14 @@ +--- +title: New Relic +author: '@timwheelercom' +authorUrl: https://github.com/timwheelercom +category: Monitoring +description: Observability platform built to help engineers create and monitor their software. +documentation: https://github.com/spotify/backstage/tree/master/plugins/newrelic +iconUrl: https://www.mulesoft.com/sites/default/files/2018-10/New_relic.png +npmPackageName: '@backstage/plugin-newrelic' +tags: + - performance + - monitoring + - errors + - alerting diff --git a/microsite/data/plugins/tech-radar.yaml b/microsite/data/plugins/tech-radar.yaml new file mode 100644 index 0000000000..a20667e8f0 --- /dev/null +++ b/microsite/data/plugins/tech-radar.yaml @@ -0,0 +1,9 @@ +--- +title: Tech Radar +author: Spotify +authorUrl: https://www.spotify.com/ +category: Discovery +description: Visualize the your company's official guidelines of different areas of software development. +documentation: https://github.com/spotify/backstage/tree/master/plugins/tech-radar +iconUrl: https://github.com/spotify/backstage/raw/master/plugins/tech-radar/docs/screenshot.png +npmPackageName: '@backstage/plugin-tech-radar' diff --git a/microsite/i18n/en.json b/microsite/i18n/en.json index f61442e938..96ffb780dc 100644 --- a/microsite/i18n/en.json +++ b/microsite/i18n/en.json @@ -296,9 +296,9 @@ "links": { "GitHub": "GitHub", "Docs": "Docs", + "Plugins": "Plugins", "Blog": "Blog", "Demos": "Demos", - "Plugins": "Plugins", "Newsletter": "Newsletter" }, "categories": { From 0d40a302ff0410c84bff96a9d8136db8e6058bdb Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 31 Aug 2020 17:30:47 +0200 Subject: [PATCH 279/656] cli: define BUILD_INFO in builds --- packages/cli/src/lib/bundler/bundle.ts | 2 +- packages/cli/src/lib/bundler/config.ts | 45 ++++++++++++++++++++++++-- packages/cli/src/lib/bundler/server.ts | 2 +- 3 files changed, 45 insertions(+), 4 deletions(-) diff --git a/packages/cli/src/lib/bundler/bundle.ts b/packages/cli/src/lib/bundler/bundle.ts index 1193ed505e..8746c807e7 100644 --- a/packages/cli/src/lib/bundler/bundle.ts +++ b/packages/cli/src/lib/bundler/bundle.ts @@ -36,7 +36,7 @@ export async function buildBundle(options: BuildOptions) { const { statsJsonEnabled } = options; const paths = resolveBundlingPaths(options); - const config = createConfig(paths, { + const config = await createConfig(paths, { ...options, checksEnabled: false, isDev: false, diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index d432d6b64e..61f4448dd9 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import fs from 'fs-extra'; import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin'; import HtmlWebpackPlugin from 'html-webpack-plugin'; import ModuleScopePlugin from 'react-dev-utils/ModuleScopePlugin'; @@ -25,6 +26,9 @@ import { Config } from '@backstage/config'; import { BundlingPaths } from './paths'; import { transforms } from './transforms'; import { BundlingOptions, BackendBundlingOptions } from './types'; +import { version } from '../../lib/version'; +import { paths as cliPaths } from '../../lib/paths'; +import { runPlain } from '../run'; export function resolveBaseUrl(config: Config): URL { const baseUrl = config.getString('app.baseUrl'); @@ -35,10 +39,40 @@ export function resolveBaseUrl(config: Config): URL { } } -export function createConfig( +async function readBuildInfo() { + const timestamp = Date.now(); + + let commit = 'unknown'; + try { + commit = await runPlain('git', 'rev-parse', 'HEAD'); + } catch (error) { + console.warn(`WARNING: Failed to read git commit, ${error}`); + } + + let gitVersion = 'unknown'; + try { + gitVersion = await runPlain('git', 'describe', '--always'); + } catch (error) { + console.warn(`WARNING: Failed to describe git version, ${error}`); + } + + const { version: packageVersion } = await fs.readJson( + cliPaths.resolveTarget('package.json'), + ); + + return { + cliVersion: version, + gitVersion, + packageVersion, + timestamp, + commit, + }; +} + +export async function createConfig( paths: BundlingPaths, options: BundlingOptions, -): webpack.Configuration { +): Promise { const { checksEnabled, isDev } = options; const { plugins, loaders } = transforms(options); @@ -81,6 +115,13 @@ export function createConfig( }), ); + const buildInfo = await readBuildInfo(); + plugins.push( + new webpack.DefinePlugin({ + 'process.env.BUILD_INFO': JSON.stringify(buildInfo), + }), + ); + return { mode: isDev ? 'development' : 'production', profile: false, diff --git a/packages/cli/src/lib/bundler/server.ts b/packages/cli/src/lib/bundler/server.ts index c7bacc0c7d..4c4a424d08 100644 --- a/packages/cli/src/lib/bundler/server.ts +++ b/packages/cli/src/lib/bundler/server.ts @@ -30,7 +30,7 @@ export async function serveBundle(options: ServeOptions) { const paths = resolveBundlingPaths(options); const pkgPath = paths.targetPackageJson; const pkg = await fs.readJson(pkgPath); - const config = createConfig(paths, { + const config = await createConfig(paths, { ...options, isDev: true, baseUrl: url, From 4788ee073ac4ebeef288ffb9d3b16e1fe25d20a3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 31 Aug 2020 20:36:05 +0200 Subject: [PATCH 280/656] cli: use regexps to match paths for rollup plugins --- packages/cli/src/lib/builder/config.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/packages/cli/src/lib/builder/config.ts b/packages/cli/src/lib/builder/config.ts index e62e1fc6cd..bc689a3eb0 100644 --- a/packages/cli/src/lib/builder/config.ts +++ b/packages/cli/src/lib/builder/config.ts @@ -88,15 +88,25 @@ export const makeConfigs = async ( }), resolve({ mainFields }), commonjs({ - include: ['node_modules/**', '../../node_modules/**'], - exclude: ['**/*.stories.*', '**/*.test.*'], + include: /node_modules/, + exclude: [/\/[^/]+\.(?:stories|test)\.[^/]+$/], }), postcss(), - imageFiles({ exclude: '**/*.icon.svg' }), + imageFiles({ + exclude: /\.icon\.svg$/, + include: [ + /\.css$/, + /\.svg$/, + /\.png$/, + /\.gif$/, + /\.jpg$/, + /\.jpeg$/, + ], + }), json(), yaml(), svgr({ - include: '**/*.icon.svg', + include: /\.icon\.svg$/, template: svgrTemplate, }), esbuild({ From e57798cd882131feda647c7a4ec2f796535e574e Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Mon, 31 Aug 2020 18:01:43 +0200 Subject: [PATCH 281/656] test(catalog): test Tabbed implementation --- .../EntityPageLayout/Tabbed/Tabbed.test.tsx | 183 ++++++++++++++++++ .../EntityPageLayout/Tabbed/Tabbed.tsx | 19 +- 2 files changed, 201 insertions(+), 1 deletion(-) create mode 100644 plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.test.tsx diff --git a/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.test.tsx b/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.test.tsx new file mode 100644 index 0000000000..3eccafbf7a --- /dev/null +++ b/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.test.tsx @@ -0,0 +1,183 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { Tabbed } from './Tabbed'; +import { renderInTestApp } from '@backstage/test-utils'; +import { fireEvent } from '@testing-library/react'; +import { act } from 'react-dom/test-utils'; +import { Routes, Route } from 'react-router'; + +describe('Tabbed layout', () => { + it('renders simplest case', async () => { + const rendered = await renderInTestApp( + + tabbed-test-content
} + /> + , + ); + + expect(rendered.getByText('tabbed-test-title')).toBeInTheDocument(); + expect(rendered.getByText('tabbed-test-content')).toBeInTheDocument(); + }); + + it('navigates when user clicks different tab', async () => { + const rendered = await renderInTestApp( + + + tabbed-test-content
} + /> + + } + /> + , + ); + + const secondTab = rendered.queryAllByRole('tab')[1]; + act(() => { + fireEvent.click(secondTab); + }); + + expect(rendered.getByText('tabbed-test-title')).toBeInTheDocument(); + expect(rendered.queryByText('tabbed-test-content')).not.toBeInTheDocument(); + + expect(rendered.getByText('tabbed-test-title-2')).toBeInTheDocument(); + expect(rendered.queryByText('tabbed-test-content-2')).toBeInTheDocument(); + }); + + describe('correctly delegates nested links', () => { + const renderRoute = (route: string) => + renderInTestApp( + + + tabbed-test-content} + /> + + tabbed-test-content-2 + + tabbed-test-nested-content-2} + /> + + + } + /> + + } + /> + , + { routeEntries: [route] }, + ); + + it('works for nested content', async () => { + const rendered = await renderRoute('/some-other-path/nested'); + + expect( + rendered.queryByText('tabbed-test-content'), + ).not.toBeInTheDocument(); + expect(rendered.queryByText('tabbed-test-content-2')).toBeInTheDocument(); + expect( + rendered.queryByText('tabbed-test-nested-content-2'), + ).toBeInTheDocument(); + }); + + it('works for non-nested content', async () => { + const rendered = await renderRoute('/some-other-path/'); + + expect( + rendered.queryByText('tabbed-test-content'), + ).not.toBeInTheDocument(); + expect(rendered.queryByText('tabbed-test-content-2')).toBeInTheDocument(); + expect( + rendered.queryByText('tabbed-test-nested-content-2'), + ).not.toBeInTheDocument(); + }); + }); + + it('shows only one tab contents at a time', async () => { + const rendered = await renderInTestApp( + + tabbed-test-content} + /> + tabbed-test-content-2} + /> + , + { routeEntries: ['/some-other-path'] }, + ); + + expect(rendered.getByText('tabbed-test-title')).toBeInTheDocument(); + expect(rendered.queryByText('tabbed-test-content')).not.toBeInTheDocument(); + + expect(rendered.getByText('tabbed-test-title-2')).toBeInTheDocument(); + expect(rendered.queryByText('tabbed-test-content-2')).toBeInTheDocument(); + }); + + it('redirects to the top level when no route is matching the url', async () => { + const rendered = await renderInTestApp( + + tabbed-test-content} + /> + tabbed-test-content-2} + /> + , + { routeEntries: ['/non-existing-path'] }, + ); + + expect(rendered.getByText('tabbed-test-title')).toBeInTheDocument(); + expect(rendered.getByText('tabbed-test-content')).toBeInTheDocument(); + expect(rendered.getByText('tabbed-test-title-2')).toBeInTheDocument(); + + expect( + rendered.queryByText('tabbed-test-content-2'), + ).not.toBeInTheDocument(); + }); +}); diff --git a/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx b/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx index 6e32dd1c80..6f3e5e1fcf 100644 --- a/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx +++ b/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx @@ -34,6 +34,23 @@ const getSelectedIndex = (matchedRoute: RouteMatch, tabs: Tab[]) => { return ~tabIndex ? tabIndex : 0; }; +/** + * Compound component, which allows you to define layout + * for EntityPage using Tabs as a subnavigation mechanism + * Constists of 2 parts: Tabbed.Layout and Tabbed.Content. + * Takes care of: tabs, routes, document titles, spacing around content + * + * @example + * ```jsx + * + * This is rendered under /example/anything-here route} + * /> + * + * ``` + */ export const Tabbed = { Layout: ({ children }: { children: React.ReactNode }) => { const routes: PartialRouteObject[] = []; @@ -73,7 +90,7 @@ export const Tabbed = { const title = currentTab.label; const onTabChange = (index: number) => - navigate(tabs[index].id.slice(1, -2)); + navigate(tabs[index].id.replace(/\/\*$/g, '')); const currentRouteElement = useRoutes(routes); From 660de68e7e41b4c855ee084973ceabf96583fc0f Mon Sep 17 00:00:00 2001 From: nikek Date: Mon, 31 Aug 2020 23:01:40 +0200 Subject: [PATCH 282/656] Add AboutCard component to EntityPageOverview --- packages/core/src/layout/Header/Header.tsx | 2 +- .../components/AboutCard/AboutCard.test.tsx | 46 +++++ .../src/components/AboutCard/AboutCard.tsx | 182 ++++++++++++++++++ .../IconLinkVertical/IconLinkVertical.tsx | 53 +++++ .../IconLinkVertical/index.ts} | 14 +- .../index.ts} | 17 +- .../EntityPageOverview/EntityPageOverview.tsx | 4 +- 7 files changed, 286 insertions(+), 32 deletions(-) create mode 100644 plugins/catalog/src/components/AboutCard/AboutCard.test.tsx create mode 100644 plugins/catalog/src/components/AboutCard/AboutCard.tsx create mode 100644 plugins/catalog/src/components/AboutCard/IconLinkVertical/IconLinkVertical.tsx rename plugins/catalog/src/components/{EntityMetadataCard/EntityMetadataCard.tsx => AboutCard/IconLinkVertical/index.ts} (61%) rename plugins/catalog/src/components/{EntityMetadataCard/EntityMetadataCard.test.tsx => AboutCard/index.ts} (50%) diff --git a/packages/core/src/layout/Header/Header.tsx b/packages/core/src/layout/Header/Header.tsx index 7aafc2730e..6b9ea05245 100644 --- a/packages/core/src/layout/Header/Header.tsx +++ b/packages/core/src/layout/Header/Header.tsx @@ -38,7 +38,7 @@ const useStyles = makeStyles( alignItems: 'center', backgroundImage: props => props.backgroundImage, backgroundPosition: 'center', - backgroundSize: '100% 400px', + backgroundSize: 'cover', }, leftItemsBox: { flex: '1 1 auto', diff --git a/plugins/catalog/src/components/AboutCard/AboutCard.test.tsx b/plugins/catalog/src/components/AboutCard/AboutCard.test.tsx new file mode 100644 index 0000000000..bf69818995 --- /dev/null +++ b/plugins/catalog/src/components/AboutCard/AboutCard.test.tsx @@ -0,0 +1,46 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { render } from '@testing-library/react'; +import { AboutCard } from './AboutCard'; + +describe('', () => { + it('renders info and "view source" link', () => { + const entity = { + apiVersion: 'v1', + kind: 'Component', + metadata: { + name: 'software', + annotations: { + 'backstage.io/managed-by-location': + 'github:https://github.com/spotify/backstage/blob/master/software.yaml', + }, + }, + spec: { + owner: 'guest', + type: 'service', + lifecycle: 'production', + }, + }; + const { getByText } = render(); + expect(getByText('service')).toBeInTheDocument(); + expect(getByText('View Source').closest('a')).toHaveAttribute( + 'href', + 'https://github.com/spotify/backstage/blob/master/software.yaml', + ); + }); +}); diff --git a/plugins/catalog/src/components/AboutCard/AboutCard.tsx b/plugins/catalog/src/components/AboutCard/AboutCard.tsx new file mode 100644 index 0000000000..d27175fcf3 --- /dev/null +++ b/plugins/catalog/src/components/AboutCard/AboutCard.tsx @@ -0,0 +1,182 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { + Grid, + Typography, + makeStyles, + Chip, + IconButton, + Card, + CardContent, + CardHeader, + Divider, +} from '@material-ui/core'; +import { Entity } from '@backstage/catalog-model'; + +import GitHubIcon from '@material-ui/icons/GitHub'; +import { IconLinkVertical } from './IconLinkVertical'; +import EditIcon from '@material-ui/icons/Edit'; +import DocsIcon from '@material-ui/icons/Description'; + +const useStyles = makeStyles(theme => ({ + links: { + margin: theme.spacing(2, 0, 2), + display: 'grid', + gridAutoFlow: 'column', + gridAutoColumns: 'min-content', + gridGap: theme.spacing(2), + }, + label: { + color: '#9e9e9e', + textTransform: 'uppercase', + fontSize: '12px', + fontWeight: 'bold', + overflow: 'hidden', + whiteSpace: 'nowrap', + }, + value: { + fontWeight: 'bold', + overflow: 'hidden', + lineHeight: '24px', + wordBreak: 'break-word', + }, + description: { + wordBreak: 'break-word', + }, +})); + +const iconMap: Record = { + github: , +}; + +type CodeLinkInfo = { icon?: React.ReactNode; href?: string }; + +function getCodeLinkInfo(entity: Entity): CodeLinkInfo { + const location = + entity?.metadata?.annotations?.['backstage.io/managed-by-location']; + + if (location) { + // split by first `:` + // e.g. "github:https://github.com/spotify/backstage/blob/master/software.yaml" + const [type, target] = location.split(/:(.+)/); + + return { icon: iconMap[type], href: target }; + } + return {}; +} + +type AboutCardProps = { + entity: Entity; +}; + +export function AboutCard({ entity }: AboutCardProps) { + const classes = useStyles(); + const codeLink = getCodeLinkInfo(entity); + + return ( + + + + + } + subheader={ + + } + /> + + + + + + {entity?.metadata?.description || 'No description'} + + + + + + + {(entity?.metadata?.tags || []).map(t => ( + + ))} + + + + + ); +} + +function AboutField({ + label, + value, + gridSizes, + children, +}: { + label: string; + value?: string; + gridSizes?: Record; + children?: React.ReactNode; +}) { + const classes = useStyles(); + + // Content is either children or a string prop `value` + const content = React.Children.count(children) ? ( + children + ) : ( + + {value || `unknown`} + + ); + return ( + + + {label} + + {content} + + ); +} diff --git a/plugins/catalog/src/components/AboutCard/IconLinkVertical/IconLinkVertical.tsx b/plugins/catalog/src/components/AboutCard/IconLinkVertical/IconLinkVertical.tsx new file mode 100644 index 0000000000..91a5211925 --- /dev/null +++ b/plugins/catalog/src/components/AboutCard/IconLinkVertical/IconLinkVertical.tsx @@ -0,0 +1,53 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 * as React from 'react'; +import { makeStyles, Link } from '@material-ui/core'; +import LinkIcon from '@material-ui/icons/Link'; + +export type IconLinkVerticalProps = { + icon?: React.ReactNode; + href?: string; + label: string; +}; + +const useIconStyles = makeStyles({ + link: { + display: 'grid', + justifyItems: 'center', + gridGap: 4, + textAlign: 'center', + }, + label: { + fontSize: '0.7rem', + textTransform: 'uppercase', + fontWeight: 600, + letterSpacing: 1.2, + }, +}); + +export function IconLinkVertical({ + icon = , + href = '#', + ...props +}: IconLinkVerticalProps) { + const classes = useIconStyles(); + return ( + + {icon} + {props.label} + + ); +} diff --git a/plugins/catalog/src/components/EntityMetadataCard/EntityMetadataCard.tsx b/plugins/catalog/src/components/AboutCard/IconLinkVertical/index.ts similarity index 61% rename from plugins/catalog/src/components/EntityMetadataCard/EntityMetadataCard.tsx rename to plugins/catalog/src/components/AboutCard/IconLinkVertical/index.ts index 57082a9c91..ddc146dbd8 100644 --- a/plugins/catalog/src/components/EntityMetadataCard/EntityMetadataCard.tsx +++ b/plugins/catalog/src/components/AboutCard/IconLinkVertical/index.ts @@ -14,16 +14,4 @@ * limitations under the License. */ -import { Entity } from '@backstage/catalog-model'; -import { InfoCard, StructuredMetadataTable } from '@backstage/core'; -import React, { FC } from 'react'; - -type Props = { - entity: Entity; -}; - -export const EntityMetadataCard: FC = ({ entity }) => ( - - - -); +export { IconLinkVertical } from './IconLinkVertical'; diff --git a/plugins/catalog/src/components/EntityMetadataCard/EntityMetadataCard.test.tsx b/plugins/catalog/src/components/AboutCard/index.ts similarity index 50% rename from plugins/catalog/src/components/EntityMetadataCard/EntityMetadataCard.test.tsx rename to plugins/catalog/src/components/AboutCard/index.ts index 4bb64f221d..93765ff942 100644 --- a/plugins/catalog/src/components/EntityMetadataCard/EntityMetadataCard.test.tsx +++ b/plugins/catalog/src/components/AboutCard/index.ts @@ -14,19 +14,4 @@ * limitations under the License. */ -import { Entity } from '@backstage/catalog-model'; -import { render } from '@testing-library/react'; -import React from 'react'; -import { EntityMetadataCard } from './EntityMetadataCard'; - -describe('EntityMetadataCard component', () => { - it('should display entity name if provided', async () => { - const testEntity: Entity = { - apiVersion: 'backstage.io/v1alpha1', - kind: 'Component', - metadata: { name: 'test' }, - }; - const rendered = await render(); - expect(await rendered.findByText('test')).toBeInTheDocument(); - }); -}); +export { AboutCard } from './AboutCard'; diff --git a/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx b/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx index 45a62198c7..4067fef29a 100644 --- a/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx +++ b/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx @@ -24,14 +24,14 @@ import { } from '@backstage/plugin-jenkins'; import { Grid } from '@material-ui/core'; import React, { FC } from 'react'; -import { EntityMetadataCard } from '../EntityMetadataCard/EntityMetadataCard'; +import { AboutCard } from '../AboutCard'; export const EntityPageOverview: FC<{ entity: Entity }> = ({ entity }) => { return ( - + {entity.metadata?.annotations?.[ 'backstage.io/jenkins-github-folder' From 0ff78005cd23e9d54e313b95548c0b7138b0dd5c Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Mon, 31 Aug 2020 23:07:16 +0200 Subject: [PATCH 283/656] fix(docs): code block background --- microsite/static/css/custom.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/static/css/custom.css b/microsite/static/css/custom.css index 3c0184a07b..5e078582cc 100644 --- a/microsite/static/css/custom.css +++ b/microsite/static/css/custom.css @@ -216,7 +216,7 @@ td { code { font-family: IBM Plex Mono, Menlo, Monaco, Consolas, Courier New, monospace; font-weight: 500; - background-color: #0e0e0e; + background-color: #272822; } /* .stripe { From 713060d1f320280300dbf9742c5a8cbe22941cdd Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Mon, 31 Aug 2020 23:18:06 +0200 Subject: [PATCH 284/656] docs: plugin integration into catalog --- docs/plugins/index.md | 7 + ...integrating-plugin-into-service-catalog.md | 125 ++++++++++++++++++ microsite/i18n/en.json | 5 +- microsite/sidebars.json | 1 + .../app/src/components/catalog/EntityPage.tsx | 20 +-- .../EntityPageLayout/Tabbed/Tabbed.tsx | 9 +- .../src/{ => components}/Router.tsx | 11 +- plugins/github-actions/src/index.ts | 3 +- 8 files changed, 154 insertions(+), 27 deletions(-) create mode 100644 docs/plugins/integrating-plugin-into-service-catalog.md rename plugins/github-actions/src/{ => components}/Router.tsx (80%) diff --git a/docs/plugins/index.md b/docs/plugins/index.md index bb8951f959..857b8f7fcf 100644 --- a/docs/plugins/index.md +++ b/docs/plugins/index.md @@ -26,3 +26,10 @@ This helps the community know what plugins are in development. You can also use this process if you have an idea for a good plugin but you hope that someone else will pick up the work. + +## Integrate into the catalog service + +If your plugin isn't supposed to live as a standalone page, but rather needs to +be presented as a part of a catalog service (e.g. a separate tab or a card on an +"Overview" tab), then check out +[the instruction](integrating-plugin-into-service-catalog.md). on how to do it. diff --git a/docs/plugins/integrating-plugin-into-service-catalog.md b/docs/plugins/integrating-plugin-into-service-catalog.md new file mode 100644 index 0000000000..7819737c52 --- /dev/null +++ b/docs/plugins/integrating-plugin-into-service-catalog.md @@ -0,0 +1,125 @@ +--- +id: integrating-plugin-into-service-catalog +title: Integrate into the catalog service +--- + +> This is an advanced use case and currently is an experimental feature. Expect +> API to change over time + +## Steps + +1. [Create a plugin](#create-a-plugin) +1. [Export a router with relative routes](#export-a-router) +1. [Import and use router in the APP](#import-and-use-router-in-the-app) + +### Create a plugin + +Follow the [same process](create-a-plugin.md) as for standalone plugin. You +should have a separate package in a folder, which represents your plugin. + +Example: + +``` +$ yarn create-plugin +> ? Enter an ID for the plugin [required] my-plugin +> ? Enter the owner(s) of the plugin. If specified, this will be added to CODEOWNERS for the plugin path. [optional] + +Creating the plugin... +``` + +### Export a router + +Now in the plugin you have a `Router.tsx` file in the `src` folder. By default +it contains only one example route. Create a routing structure needed for your +plugin, keeping in mind that the whole set of routes defined here are going to +be mounted under some different route in the App. + +Example: + +`my-plugin` consists of 2 different views - `/me` and `/about`. I envision +people integrating it into plugin catalog as a tab named "MyPlugin". Then, my +`Routes.tsx` for the plugin is going to look like: + +```tsx + + } /> + } /> + +``` + +(where MePage and AboutPage are 2 components defined in your plugin and imported +accordingly inside `Router.tsx`) + +> Pay attention, if your `MePage` references the `AboutPage` it needs to do it +> through link to `about`, not `/about`. This allows react-router v6 to enable +> its relative routing mechanism. Read more - +> https://reacttraining.com/blog/react-router-v6-pre/#relative-route-path-and-link-to + +### Import and use router in the APP + +In the `app/src/components/catalog/EntityPage.tsx` (app === your folder, +containing backstage app) import your created Router: + +```tsx +import { Router as MyPluginRouter } from '@backstage/plugin-my-plugin; +``` + +Now, you need to mount `MyPluginRouter` onto some route, for example if you had: + +```tsx +const DefaultEntityPage = ({ entity }: { entity: Entity }) => ( + + } + /> + +); +``` + +after you add your code it becomes: + +```tsx +const DefaultEntityPage = ({ entity }: { entity: Entity }) => ( + + } + /> + } + /> + +); +``` + +All of magic happens thanks to the `EntityPageLayout` component, which comes as +an export from `@backstage/plugin-catalog` package. + +```tsx +type EntityPageLayoutContentProps = { + /** + * Going to be transformed into react-router v6 + * path under the hood. Read more at https://reacttraining.com/blog/react-router-v6-pre + */ + path: string; + /** + * Gets transformed into the title for the tab + */ + title: string; + /** + * Element that is rendered when the location + * matches the path provided + */ + element: JSX.Element; +}; +``` + +> The recommended pattern is to get the `entity` in the App and then pass it to +> the plugin's Router component as a prop. However if it inconvenient for you, +> use `useEntity` hook from `@backstage/plugin-catalog` directly inside your +> plugin. diff --git a/microsite/i18n/en.json b/microsite/i18n/en.json index d2593a13ce..1f04f7430b 100644 --- a/microsite/i18n/en.json +++ b/microsite/i18n/en.json @@ -199,7 +199,7 @@ "title": "Backend plugin" }, "plugins/call-existing-api": { - "title": "Call existing API" + "title": "Call Existing API" }, "plugins/create-a-plugin": { "title": "Create a Backstage Plugin" @@ -210,6 +210,9 @@ "plugins/index": { "title": "Intro" }, + "plugins/integrating-plugin-into-service-catalog": { + "title": "Integrate into the catalog service" + }, "plugins/plugin-development": { "title": "Plugin Development in Backstage" }, diff --git a/microsite/sidebars.json b/microsite/sidebars.json index b07f326086..7576296b7a 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -73,6 +73,7 @@ "plugins/create-a-plugin", "plugins/plugin-development", "plugins/structure-of-a-plugin", + "plugins/integrating-plugin-into-service-catalog", { "type": "subcategory", "label": "Backends and APIs", diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx index 4368d8e26b..1c7a08e362 100644 --- a/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/app/src/components/catalog/EntityPage.tsx @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { GitHubActionsPage } from '@backstage/plugin-github-actions'; +import { Router as GitHubActionsRouter } from '@backstage/plugin-github-actions'; import React from 'react'; import { EntityPageLayout, @@ -22,7 +22,7 @@ import { } from '@backstage/plugin-catalog'; import { Entity } from '@backstage/catalog-model'; -export const OverviewPage = ({ entity }: { entity: Entity }) => ( +const OverviewPage = ({ entity }: { entity: Entity }) => ( ); @@ -36,12 +36,7 @@ const ServiceEntityPage = ({ entity }: { entity: Entity }) => ( } - /> - Much docs, such wow ({entity.metadata.name})ðŸ¶} + element={} /> ); @@ -56,12 +51,7 @@ const WebsiteEntityPage = ({ entity }: { entity: Entity }) => ( } - /> - Much docs, such wow ({entity.metadata.name})ðŸ¶} + element={} /> ); @@ -69,7 +59,7 @@ const WebsiteEntityPage = ({ entity }: { entity: Entity }) => ( const DefaultEntityPage = ({ entity }: { entity: Entity }) => ( } /> diff --git a/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx b/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx index 6f3e5e1fcf..ad0b9d067c 100644 --- a/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx +++ b/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx @@ -78,10 +78,11 @@ export const Tabbed = { }); // Add catch-all for incorrect sub-routes - routes.push({ - path: '/*', - element: , - }); + if ((routes?.[0]?.path ?? '') !== '') + routes.push({ + path: '/*', + element: , + }); const [matchedRoute] = matchRoutes(routes as RouteObject[], `/${params['*']}`) ?? []; diff --git a/plugins/github-actions/src/Router.tsx b/plugins/github-actions/src/components/Router.tsx similarity index 80% rename from plugins/github-actions/src/Router.tsx rename to plugins/github-actions/src/components/Router.tsx index c508302e6d..80637b75f0 100644 --- a/plugins/github-actions/src/Router.tsx +++ b/plugins/github-actions/src/components/Router.tsx @@ -16,17 +16,18 @@ import React from 'react'; import { Entity } from '@backstage/catalog-model'; import { Routes, Route } from 'react-router'; -import { rootRouteRef, buildRouteRef } from './plugin'; -import { WorkflowRunDetails } from './components/WorkflowRunDetails'; -import { WorkflowRunsTable } from './components/WorkflowRunsTable'; -import { GITHUB_ACTIONS_ANNOTATION } from './components/useProjectName'; +import { rootRouteRef, buildRouteRef } from '../plugin'; +import { WorkflowRunDetails } from './WorkflowRunDetails'; +import { WorkflowRunsTable } from './WorkflowRunsTable'; +import { GITHUB_ACTIONS_ANNOTATION } from './useProjectName'; import { WarningPanel } from '@backstage/core'; const isPluginApplicableToEntity = (entity: Entity) => Boolean(entity?.metadata?.annotations?.[GITHUB_ACTIONS_ANNOTATION]) && entity?.metadata?.annotations?.[GITHUB_ACTIONS_ANNOTATION] !== ''; -export const GitHubActionsPage = ({ entity }: { entity: Entity }) => +export const Router = ({ entity }: { entity: Entity }) => + // TODO(shmidt-i): move warning to a separate standardized component !isPluginApplicableToEntity(entity) ? ( `entity.metadata.annotations[' diff --git a/plugins/github-actions/src/index.ts b/plugins/github-actions/src/index.ts index 0bb5862d8b..7f8b968c16 100644 --- a/plugins/github-actions/src/index.ts +++ b/plugins/github-actions/src/index.ts @@ -16,6 +16,5 @@ export { plugin } from './plugin'; export * from './api'; -export { Widget } from './components/Widget'; -export { GitHubActionsPage } from './Router'; +export { Router } from './components/Router'; export { GITHUB_ACTIONS_ANNOTATION } from './components/useProjectName'; From e8259d15150b8fc1f0a1fb9fc4ffdfc7406e97c5 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Mon, 31 Aug 2020 23:34:32 +0200 Subject: [PATCH 285/656] fix: adjust code after rebasing --- packages/app/src/App.tsx | 3 +- .../EntityPageLayout/Tabbed/Tabbed.tsx | 18 ++++++--- yarn.lock | 37 +++++++++++++++++-- 3 files changed, 48 insertions(+), 10 deletions(-) diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 5abc058920..642eb7b004 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -28,7 +28,7 @@ import { hot } from 'react-hot-loader/root'; import { providers } from './identityProviders'; import { CatalogRouter } from '@backstage/plugin-catalog'; // import { ExplorePlugin } from '@backstage/plugin-explore'; -import { Route, Routes } from 'react-router'; +import { Route, Routes, Navigate } from 'react-router'; import { EntityPage } from './components/catalog/EntityPage'; @@ -58,6 +58,7 @@ const AppRoutes = () => ( path="/catalog/*" element={} /> + } /> {/* } /> */} ); diff --git a/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx b/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx index ad0b9d067c..693ee10c78 100644 --- a/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx +++ b/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx @@ -28,10 +28,14 @@ import { Tab, HeaderTabs, Content } from '@backstage/core'; import { Grid } from '@material-ui/core'; import { Helmet } from 'react-helmet'; -const getSelectedIndex = (matchedRoute: RouteMatch, tabs: Tab[]) => { - if (!matchedRoute) return 0; +const getSelectedIndexOrDefault = ( + matchedRoute: RouteMatch, + tabs: Tab[], + defaultIndex = 0, +) => { + if (!matchedRoute) return defaultIndex; const tabIndex = tabs.findIndex(t => t.id === matchedRoute.route.path); - return ~tabIndex ? tabIndex : 0; + return ~tabIndex ? tabIndex : defaultIndex; }; /** @@ -86,12 +90,16 @@ export const Tabbed = { const [matchedRoute] = matchRoutes(routes as RouteObject[], `/${params['*']}`) ?? []; - const selectedIndex = getSelectedIndex(matchedRoute, tabs); + const selectedIndex = getSelectedIndexOrDefault(matchedRoute, tabs); const currentTab = tabs[selectedIndex]; const title = currentTab.label; const onTabChange = (index: number) => - navigate(tabs[index].id.replace(/\/\*$/g, '')); + // Remove trailing /* + // And remove leading / for relative navigation + // Note! route resolves relative to the position in the React tree, + // not relative to current location + navigate(tabs[index].id.replace(/\/\*$/, '').replace(/^\//, '')); const currentRouteElement = useRoutes(routes); diff --git a/yarn.lock b/yarn.lock index d90056f47d..aa85370465 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2724,7 +2724,7 @@ dependencies: "@types/node" ">= 8" -"@open-draft/until@^1.0.3": +"@open-draft/until@^1.0.0", "@open-draft/until@^1.0.3": version "1.0.3" resolved "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz#db9cc719191a62e7d9200f6e7bab21c5b848adca" integrity sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q== @@ -4106,6 +4106,11 @@ dependencies: "@types/express" "*" +"@types/cookie@^0.3.3": + version "0.3.3" + resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz#85bc74ba782fb7aa3a514d11767832b0e3bc6803" + integrity sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow== + "@types/cookie@^0.4.0": version "0.4.0" resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz#14f854c0f93d326e39da6e3b6f34f7d37513d108" @@ -11650,7 +11655,7 @@ graphql-upload@^8.0.2: http-errors "^1.7.3" object-path "^0.11.4" -graphql@15.3.0, graphql@^15.3.0: +graphql@15.3.0, graphql@^15.0.0, graphql@^15.3.0: version "15.3.0" resolved "https://registry.npmjs.org/graphql/-/graphql-15.3.0.tgz#3ad2b0caab0d110e3be4a5a9b2aa281e362b5278" integrity sha512-GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w== @@ -11858,7 +11863,7 @@ he@^1.2.0: resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -headers-utils@^1.2.0: +headers-utils@^1.1.9, headers-utils@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/headers-utils/-/headers-utils-1.2.0.tgz#5e10d1bc9d2bccf789547afca5b991a3167241e8" integrity sha512-4/BMXcWrJErw7JpM87gF8MNEXcIMLzepYZjNRv/P9ctgupl2Ywa3u1PgHtNhSRq84bHH9Ndlkdy7bSi+bZ9I9A== @@ -15561,6 +15566,22 @@ ms@^2.0.0, ms@^2.1.1: resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +msw@^0.19.5: + version "0.19.5" + resolved "https://registry.npmjs.org/msw/-/msw-0.19.5.tgz#7d2a1a852ccf1644d3db6735d69fff6777aac33f" + integrity sha512-J5eQ++gDVZoHPC8gVXtWcakLjgmPipvFj/sEnlRV/WViXuiq2CamSqO3Wbh6H8bAmj+k2vUWCfcVT1HjMdKB2Q== + dependencies: + "@open-draft/until" "^1.0.0" + "@types/cookie" "^0.3.3" + chalk "^4.0.0" + cookie "^0.4.1" + graphql "^15.0.0" + headers-utils "^1.1.9" + node-match-path "^0.4.2" + node-request-interceptor "^0.2.5" + statuses "^2.0.0" + yargs "^15.3.1" + msw@^0.20.5: version "0.20.5" resolved "https://registry.npmjs.org/msw/-/msw-0.20.5.tgz#b6141080c0d8b17c451d9ca36c28cc47b4ac487a" @@ -15807,7 +15828,7 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-match-path@^0.4.4: +node-match-path@^0.4.2, node-match-path@^0.4.4: version "0.4.4" resolved "https://registry.npmjs.org/node-match-path/-/node-match-path-0.4.4.tgz#516a10926093c0cc6f237d020685b593b19baebb" integrity sha512-pBq9gp7TG0r0VXuy/oeZmQsjBSnYQo7G886Ly/B3azRwZuEtHCY155dzmfoKWcDPGgyfIGD8WKVC7h3+6y7yTg== @@ -15866,6 +15887,14 @@ node-releases@^1.1.29, node-releases@^1.1.52, node-releases@^1.1.58: resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== +node-request-interceptor@^0.2.5: + version "0.2.6" + resolved "https://registry.npmjs.org/node-request-interceptor/-/node-request-interceptor-0.2.6.tgz#541278d7033bb6a8befb5dd793f83428cf6446a2" + integrity sha512-aJW1tPSM7nzuZFRe+C/KSz22GJO3CVFMxHHmMGX8Z+tjP7TCIVbzeckLFVfJG68BdVgrdOOP7Ejc57ag820eyA== + dependencies: + debug "^4.1.1" + headers-utils "^1.2.0" + node-request-interceptor@^0.3.5: version "0.3.5" resolved "https://registry.npmjs.org/node-request-interceptor/-/node-request-interceptor-0.3.5.tgz#4b26159617829c9a70643012c0fdc3ae4c78ae43" From 8539b14a7e9b9099f131d8dfcd57d45ac488c53c Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Mon, 31 Aug 2020 23:44:33 +0200 Subject: [PATCH 286/656] refactor: simplify optional chaining --- plugins/github-actions/src/components/Router.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/github-actions/src/components/Router.tsx b/plugins/github-actions/src/components/Router.tsx index 80637b75f0..d0745f67d4 100644 --- a/plugins/github-actions/src/components/Router.tsx +++ b/plugins/github-actions/src/components/Router.tsx @@ -23,8 +23,8 @@ import { GITHUB_ACTIONS_ANNOTATION } from './useProjectName'; import { WarningPanel } from '@backstage/core'; const isPluginApplicableToEntity = (entity: Entity) => - Boolean(entity?.metadata?.annotations?.[GITHUB_ACTIONS_ANNOTATION]) && - entity?.metadata?.annotations?.[GITHUB_ACTIONS_ANNOTATION] !== ''; + Boolean(entity.metadata.annotations?.[GITHUB_ACTIONS_ANNOTATION]) && + entity.metadata.annotations?.[GITHUB_ACTIONS_ANNOTATION] !== ''; export const Router = ({ entity }: { entity: Entity }) => // TODO(shmidt-i): move warning to a separate standardized component From 5127da1f68facd2409dd2b566133a8885691ec30 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Tue, 1 Sep 2020 00:13:46 +0200 Subject: [PATCH 287/656] fix(github-actions): cards --- .../components/EntityPageCi/EntityPageCi.tsx | 5 +- .../EntityPageLayout/EntityPageLayout.tsx | 6 +-- .../EntityPageOverview/EntityPageOverview.tsx | 7 +-- .../{Widget/Widget.tsx => Cards/Cards.tsx} | 50 +++---------------- .../src/components/{Widget => Cards}/index.ts | 2 +- .../WorkflowRunsTable/WorkflowRunsTable.tsx | 10 +++- plugins/github-actions/src/index.ts | 1 + 7 files changed, 22 insertions(+), 59 deletions(-) rename plugins/github-actions/src/components/{Widget/Widget.tsx => Cards/Cards.tsx} (75%) rename plugins/github-actions/src/components/{Widget => Cards}/index.ts (88%) diff --git a/plugins/catalog/src/components/EntityPageCi/EntityPageCi.tsx b/plugins/catalog/src/components/EntityPageCi/EntityPageCi.tsx index d39617da25..3261764d11 100644 --- a/plugins/catalog/src/components/EntityPageCi/EntityPageCi.tsx +++ b/plugins/catalog/src/components/EntityPageCi/EntityPageCi.tsx @@ -14,9 +14,10 @@ * limitations under the License. */ +// TODO(shmidt-i): move to the app import { Entity } from '@backstage/catalog-model'; import { Content } from '@backstage/core'; -import { RecentWorkflowRunsCard as GithubActionsListWidget } from '@backstage/plugin-github-actions'; +import { LatestWorkflowsForBranchCard } from '@backstage/plugin-github-actions'; import { Grid } from '@material-ui/core'; import React, { FC } from 'react'; @@ -26,7 +27,7 @@ export const EntityPageCi: FC<{ entity: Entity }> = ({ entity }) => { {entity.metadata?.annotations?.['backstage.io/github-actions-id'] && ( - + )} diff --git a/plugins/catalog/src/components/EntityPageLayout/EntityPageLayout.tsx b/plugins/catalog/src/components/EntityPageLayout/EntityPageLayout.tsx index 532a9e3b0b..17f9f46830 100644 --- a/plugins/catalog/src/components/EntityPageLayout/EntityPageLayout.tsx +++ b/plugins/catalog/src/components/EntityPageLayout/EntityPageLayout.tsx @@ -16,11 +16,7 @@ import React, { useState } from 'react'; import { useParams, useNavigate } from 'react-router'; -import { - useEntityFromUrl, - EntityContext, - useEntity, -} from '../../hooks/useEntity'; +import { useEntity } from '../../hooks/useEntity'; import { pageTheme, PageTheme, diff --git a/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx b/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx index 45a62198c7..26a1e08d42 100644 --- a/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx +++ b/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx @@ -14,10 +14,10 @@ * limitations under the License. */ +// TODO(shmidt-i): move to the app import { Entity } from '@backstage/catalog-model'; import { Content } from '@backstage/core'; import { SentryIssuesWidget } from '@backstage/plugin-sentry'; -import { Widget as GithubActionsWidget } from '@backstage/plugin-github-actions'; import { JenkinsBuildsWidget, JenkinsLastBuildWidget, @@ -47,11 +47,6 @@ export const EntityPageOverview: FC<{ entity: Entity }> = ({ entity }) => { )} - {entity.metadata?.annotations?.['backstage.io/github-actions-id'] && ( - - - - )} { - if (error) return Couldn't fetch {branch} runs; - if (loading) return ; - return ; -}; - -export const RecentWorkflowRunsCard = ({ +export const LatestWorkflowsForBranchCard = ({ entity, branch = 'master', }: { entity: Entity; branch: string; -}) => { - const errorApi = useApi(errorApiRef); - const [owner, repo] = ( - entity?.metadata.annotations?.['backstage.io/github-actions-id'] ?? '/' - ).split('/'); - const [{ loading, error }] = useWorkflowRuns({ - owner, - repo, - branch, - }); - - useEffect(() => { - if (error) { - errorApi.post(error); - } - }, [error, errorApi]); - - return ( - - - - ); -}; +}) => ( + + + +); diff --git a/plugins/github-actions/src/components/Widget/index.ts b/plugins/github-actions/src/components/Cards/index.ts similarity index 88% rename from plugins/github-actions/src/components/Widget/index.ts rename to plugins/github-actions/src/components/Cards/index.ts index 0bd5dad98a..8c987ea1d5 100644 --- a/plugins/github-actions/src/components/Widget/index.ts +++ b/plugins/github-actions/src/components/Cards/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { Widget, RecentWorkflowRunsCard } from './Widget'; +export { LatestWorkflowRunCard, LatestWorkflowsForBranchCard } from './Cards'; diff --git a/plugins/github-actions/src/components/WorkflowRunsTable/WorkflowRunsTable.tsx b/plugins/github-actions/src/components/WorkflowRunsTable/WorkflowRunsTable.tsx index 7e971118fc..cc834f09ee 100644 --- a/plugins/github-actions/src/components/WorkflowRunsTable/WorkflowRunsTable.tsx +++ b/plugins/github-actions/src/components/WorkflowRunsTable/WorkflowRunsTable.tsx @@ -23,7 +23,6 @@ import { useWorkflowRuns } from '../useWorkflowRuns'; import { WorkflowRunStatus } from '../WorkflowRunStatus'; import SyncIcon from '@material-ui/icons/Sync'; import { buildRouteRef } from '../../plugin'; -import { useEntityCompoundName } from '@backstage/plugin-catalog'; import { useProjectName } from '../useProjectName'; import { Entity } from '@backstage/catalog-model'; @@ -148,12 +147,19 @@ export const WorkflowRunsTableView: FC = ({ ); }; -export const WorkflowRunsTable = ({ entity }: { entity: Entity }) => { +export const WorkflowRunsTable = ({ + entity, + branch, +}: { + entity: Entity; + branch?: string; +}) => { const { value: projectName, loading } = useProjectName(entity); const [owner, repo] = (projectName ?? '/').split('/'); const [tableProps, { retry, setPage, setPageSize }] = useWorkflowRuns({ owner, repo, + branch, }); return ( diff --git a/plugins/github-actions/src/index.ts b/plugins/github-actions/src/index.ts index 7f8b968c16..17c1fa2dd7 100644 --- a/plugins/github-actions/src/index.ts +++ b/plugins/github-actions/src/index.ts @@ -17,4 +17,5 @@ export { plugin } from './plugin'; export * from './api'; export { Router } from './components/Router'; +export * from './components/Cards'; export { GITHUB_ACTIONS_ANNOTATION } from './components/useProjectName'; From 8a67a8df844d234fc1bcb007c2fa1b21b0674257 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Tue, 1 Sep 2020 00:21:25 +0200 Subject: [PATCH 288/656] fix(docs): add i18n to gitignore to avoid lerna errors in master --- .gitignore | 1 + microsite/i18n/en.json | 3 +++ 2 files changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 743561c3b6..aee80f4c10 100644 --- a/.gitignore +++ b/.gitignore @@ -92,6 +92,7 @@ dist # Microsite build output microsite/build +microsite/i18n # Gatsby files .cache/ diff --git a/microsite/i18n/en.json b/microsite/i18n/en.json index 96ffb780dc..e9f63d5737 100644 --- a/microsite/i18n/en.json +++ b/microsite/i18n/en.json @@ -92,6 +92,9 @@ "features/software-catalog/software-catalog-api": { "title": "API" }, + "features/software-catalog/software-catalog-configuration": { + "title": "Catalog Configuration" + }, "features/software-catalog/descriptor-format": { "title": "Descriptor Format of Catalog Entities", "sidebar_label": "YAML File Format" From 329b663c93e28003b999271b4b35a044eddc2a01 Mon Sep 17 00:00:00 2001 From: Andrew Thauer <6507159+andrewthauer@users.noreply.github.com> Date: Sat, 29 Aug 2020 16:59:14 -0400 Subject: [PATCH 289/656] refactor: cleanup & renames to common db code --- .../src/database/connection.test.ts | 16 +- .../backend-common/src/database/connection.ts | 26 ++- .../src/database/postgres.test.ts | 176 ++++++++++-------- .../backend-common/src/database/postgres.ts | 45 +++-- .../src/database/sqlite3.test.ts | 17 +- .../backend-common/src/database/sqlite3.ts | 12 +- packages/backend/src/index.ts | 13 +- .../default-app/packages/backend/src/index.ts | 13 +- 8 files changed, 184 insertions(+), 134 deletions(-) diff --git a/packages/backend-common/src/database/connection.test.ts b/packages/backend-common/src/database/connection.test.ts index 814503fda1..2cc3a54e06 100644 --- a/packages/backend-common/src/database/connection.test.ts +++ b/packages/backend-common/src/database/connection.test.ts @@ -15,7 +15,7 @@ */ import { ConfigReader } from '@backstage/config'; -import { createDatabase } from './connection'; +import { createDatabaseClient } from './connection'; describe('database connection', () => { const createConfig = (data: any) => @@ -26,10 +26,10 @@ describe('database connection', () => { }, ]); - describe(createDatabase, () => { + describe(createDatabaseClient, () => { it('returns a postgres connection', () => { expect( - createDatabase( + createDatabaseClient( createConfig({ client: 'pg', connection: { @@ -45,7 +45,7 @@ describe('database connection', () => { it('returns an sqlite connection', () => { expect( - createDatabase( + createDatabaseClient( createConfig({ client: 'sqlite3', connection: ':memory:', @@ -56,7 +56,7 @@ describe('database connection', () => { it('tries to create a mysql connection as a passthrough', () => { expect(() => - createDatabase( + createDatabaseClient( createConfig({ client: 'mysql', connection: { @@ -72,7 +72,7 @@ describe('database connection', () => { it('accepts overrides', () => { expect( - createDatabase( + createDatabaseClient( createConfig({ client: 'pg', connection: { @@ -93,7 +93,7 @@ describe('database connection', () => { it('throws an error without a client', () => { expect(() => - createDatabase( + createDatabaseClient( createConfig({ connection: '', }), @@ -103,7 +103,7 @@ describe('database connection', () => { it('throws an error without a connection', () => { expect(() => - createDatabase( + createDatabaseClient( createConfig({ client: 'pg', }), diff --git a/packages/backend-common/src/database/connection.ts b/packages/backend-common/src/database/connection.ts index d968275482..009a85239f 100644 --- a/packages/backend-common/src/database/connection.ts +++ b/packages/backend-common/src/database/connection.ts @@ -15,30 +15,36 @@ */ import knex from 'knex'; -import { ConfigReader } from '@backstage/config'; +import { Config } from '@backstage/config'; import { mergeDatabaseConfig } from './config'; -import { createPgDatabase } from './postgres'; -import { createSqlite3Database } from './sqlite3'; +import { createPgDatabaseClient } from './postgres'; +import { createSqliteDatabaseClient } from './sqlite3'; type DatabaseClient = 'pg' | 'sqlite3' | string; /** * Creates a knex database connection * - * @param config The database config + * @param dbConfig The database config * @param overrides Additional options to merge with the config */ -export function createDatabase( - config: ConfigReader, +export function createDatabaseClient( + dbConfig: Config, overrides?: Partial, ) { - const client: DatabaseClient = config.getString('client'); + const client: DatabaseClient = dbConfig.getString('client'); if (client === 'pg') { - return createPgDatabase(config, overrides); + return createPgDatabaseClient(dbConfig, overrides); } else if (client === 'sqlite3') { - return createSqlite3Database(config); + return createSqliteDatabaseClient(dbConfig); } - return knex(mergeDatabaseConfig(config.get(), overrides)); + return knex(mergeDatabaseConfig(dbConfig.get(), overrides)); } + +/** + * Alias for createDatabaseClient + * @deprecated Use createDatabaseClient instead + */ +export const createDatabase = createDatabaseClient; diff --git a/packages/backend-common/src/database/postgres.test.ts b/packages/backend-common/src/database/postgres.test.ts index 8edfc2c15d..82161dc53c 100644 --- a/packages/backend-common/src/database/postgres.test.ts +++ b/packages/backend-common/src/database/postgres.test.ts @@ -14,15 +14,26 @@ * limitations under the License. */ -import { ConfigReader } from '@backstage/config'; +import { Config, ConfigReader } from '@backstage/config'; import { - parsePgConnectionString, + createPgDatabaseClient, buildPgDatabaseConfig, - createPgDatabase, + getPgConnectionConfig, + parsePgConnectionString, } from './postgres'; describe('postgres', () => { - const createConfig = (connection: any) => + const createMockConnection = () => ({ + host: 'acme', + user: 'foo', + password: 'bar', + database: 'foodb', + }); + + const createMockConnectionString = () => + 'postgresql://foo:bar@acme:5432/foodb'; + + const createConfig = (connection: any): Config => ConfigReader.fromConfigs([ { context: '', @@ -35,86 +46,58 @@ describe('postgres', () => { describe(buildPgDatabaseConfig, () => { it('builds a postgres config', () => { - expect( - buildPgDatabaseConfig( - createConfig({ - host: 'acme', - user: 'foo', - password: 'bar', - port: '5432', - database: 'foodb', - }), - ), - ).toEqual({ + const mockConnection = createMockConnection(); + + expect(buildPgDatabaseConfig(createConfig(mockConnection))).toEqual({ client: 'pg', - connection: { - host: 'acme', - user: 'foo', - password: 'bar', - port: '5432', - database: 'foodb', - }, + connection: mockConnection, useNullAsDefault: true, }); }); it('builds a connection string config', () => { - expect( - buildPgDatabaseConfig( - createConfig('postgresql://foo:bar@acme:5432/foodb'), - ), - ).toEqual({ - client: 'pg', - connection: 'postgresql://foo:bar@acme:5432/foodb', - useNullAsDefault: true, - }); + const mockConnectionString = createMockConnectionString(); + + expect(buildPgDatabaseConfig(createConfig(mockConnectionString))).toEqual( + { + client: 'pg', + connection: mockConnectionString, + useNullAsDefault: true, + }, + ); }); it('overrides the database name', () => { + const mockConnection = createMockConnection(); + expect( - buildPgDatabaseConfig( - createConfig({ - host: 'somehost', - user: 'postgres', - password: 'pass', - database: 'foo', - }), - { connection: { database: 'foodb' } }, - ), + buildPgDatabaseConfig(createConfig(mockConnection), { + connection: { database: 'other_db' }, + }), ).toEqual({ client: 'pg', connection: { - host: 'somehost', - user: 'postgres', - password: 'pass', - database: 'foodb', + ...mockConnection, + database: 'other_db', }, useNullAsDefault: true, }); }); it('adds additional config settings', () => { + const mockConnection = createMockConnection(); + expect( - buildPgDatabaseConfig( - createConfig({ - host: 'somehost', - user: 'postgres', - password: 'pass', - database: 'foo', - }), - { - connection: { database: 'foodb' }, - pool: { min: 0, max: 7 }, - debug: true, - }, - ), + buildPgDatabaseConfig(createConfig(mockConnection), { + connection: { database: 'other_db' }, + pool: { min: 0, max: 7 }, + debug: true, + }), ).toEqual({ client: 'pg', connection: { - host: 'somehost', - user: 'postgres', - password: 'pass', - database: 'foodb', + ...mockConnection, + database: 'other_db', }, useNullAsDefault: true, pool: { min: 0, max: 7 }, @@ -123,37 +106,72 @@ describe('postgres', () => { }); it('overrides the database from connection string', () => { + const mockConnectionString = createMockConnectionString(); + const mockConnection = createMockConnection(); + expect( - buildPgDatabaseConfig( - createConfig('postgresql://postgres:pass@localhost:5432/dbname'), - { connection: { database: 'foodb' } }, - ), + buildPgDatabaseConfig(createConfig(mockConnectionString), { + connection: { database: 'other_db' }, + }), ).toEqual({ client: 'pg', connection: { - host: 'localhost', - user: 'postgres', - password: 'pass', + ...mockConnection, port: '5432', - database: 'foodb', + database: 'other_db', }, useNullAsDefault: true, }); }); }); - describe(createPgDatabase, () => { + describe(getPgConnectionConfig, () => { + it('returns the connection object back', () => { + const mockConnection = createMockConnection(); + const config = createConfig(mockConnection); + + expect(getPgConnectionConfig(config)).toEqual(mockConnection); + }); + + it('does not parse the connection string', () => { + const mockConnection = createMockConnection(); + const config = createConfig(mockConnection); + + expect(getPgConnectionConfig(config, true)).toEqual(mockConnection); + }); + + it('automatically parses the connection string', () => { + const mockConnection = createMockConnection(); + const mockConnectionString = createMockConnectionString(); + const config = createConfig(mockConnectionString); + + expect(getPgConnectionConfig(config)).toEqual({ + ...mockConnection, + port: '5432', + }); + }); + + it('parses the connection string', () => { + const mockConnection = createMockConnection(); + const mockConnectionString = createMockConnectionString(); + const config = createConfig(mockConnectionString); + + expect(getPgConnectionConfig(config, true)).toEqual({ + ...mockConnection, + port: '5432', + }); + }); + }); + + describe(createPgDatabaseClient, () => { it('creates a postgres knex instance', () => { expect( - createPgDatabase( + createPgDatabaseClient( createConfig({ - client: 'pg', - connection: { - host: 'acme', - user: 'foo', - password: 'bar', - database: 'foodb', - }, + host: 'acme', + user: 'foo', + password: 'bar', + database: 'foodb', }), ), ).toBeTruthy(); @@ -161,7 +179,7 @@ describe('postgres', () => { it('attempts to read an ssl cert', () => { expect(() => - createPgDatabase( + createPgDatabaseClient( createConfig( 'postgresql://postgres:pass@localhost:5432/dbname?sslrootcert=/path/to/file', ), diff --git a/packages/backend-common/src/database/postgres.ts b/packages/backend-common/src/database/postgres.ts index 09b6d0653b..03a74156c7 100644 --- a/packages/backend-common/src/database/postgres.ts +++ b/packages/backend-common/src/database/postgres.ts @@ -14,18 +14,18 @@ * limitations under the License. */ -import knex from 'knex'; -import { ConfigReader } from '@backstage/config'; +import knex, { PgConnectionConfig } from 'knex'; +import { Config } from '@backstage/config'; import { mergeDatabaseConfig } from './config'; /** - * Creates a knex sqlite3 database connection + * Creates a knex postgres database connection * * @param dbConfig The database config * @param overrides Additional options to merge with the config */ -export function createPgDatabase( - dbConfig: ConfigReader, +export function createPgDatabaseClient( + dbConfig: Config, overrides?: knex.Config, ) { const knexConfig = buildPgDatabaseConfig(dbConfig, overrides); @@ -40,26 +40,43 @@ export function createPgDatabase( * @param overrides Additional options to merge with the config */ export function buildPgDatabaseConfig( - dbConfig: ConfigReader, + dbConfig: Config, overrides?: knex.Config, ) { - const connection = dbConfig.get('connection') as any; - return mergeDatabaseConfig( dbConfig.get(), { - // Only parse the connection string when overrides are provided - connection: - overrides && - (typeof connection === 'string' || connection instanceof String) - ? parsePgConnectionString(connection as string) - : connection, + connection: getPgConnectionConfig(dbConfig, !!overrides), useNullAsDefault: true, }, overrides, ); } +/** + * Gets the postgres connection config + * + * @param dbConfig The database config + * @param parseConnectionString Flag to explictly control connection string parsing + */ +export function getPgConnectionConfig( + dbConfig: Config, + parseConnectionString?: boolean, +): PgConnectionConfig | string { + const connection = dbConfig.get('connection') as any; + const isConnectionString = + typeof connection === 'string' || connection instanceof String; + const autoParse = typeof parseConnectionString !== 'boolean'; + + const shouldParseConnectionString = autoParse + ? isConnectionString + : parseConnectionString && isConnectionString; + + return shouldParseConnectionString + ? parsePgConnectionString(connection as string) + : connection; +} + /** * Parses a connection string using pg-connection-string * diff --git a/packages/backend-common/src/database/sqlite3.test.ts b/packages/backend-common/src/database/sqlite3.test.ts index a25720b81c..dbff5ee354 100644 --- a/packages/backend-common/src/database/sqlite3.test.ts +++ b/packages/backend-common/src/database/sqlite3.test.ts @@ -15,7 +15,10 @@ */ import { ConfigReader } from '@backstage/config'; -import { buildSqlite3DatabaseConfig, createSqlite3Database } from './sqlite3'; +import { + buildSqliteDatabaseConfig, + createSqliteDatabaseClient, +} from './sqlite3'; describe('sqlite3', () => { const createConfig = (connection: any) => @@ -29,9 +32,9 @@ describe('sqlite3', () => { }, ]); - describe(buildSqlite3DatabaseConfig, () => { + describe(buildSqliteDatabaseConfig, () => { it('buidls a string connection', () => { - expect(buildSqlite3DatabaseConfig(createConfig(':memory:'))).toEqual({ + expect(buildSqliteDatabaseConfig(createConfig(':memory:'))).toEqual({ client: 'sqlite3', connection: ':memory:', useNullAsDefault: true, @@ -40,7 +43,7 @@ describe('sqlite3', () => { it('builds a filename connection', () => { expect( - buildSqlite3DatabaseConfig( + buildSqliteDatabaseConfig( createConfig({ filename: '/path/to/foo', }), @@ -56,7 +59,7 @@ describe('sqlite3', () => { it('replaces the connection with an override', () => { expect( - buildSqlite3DatabaseConfig(createConfig(':memory:'), { + buildSqliteDatabaseConfig(createConfig(':memory:'), { connection: { filename: '/path/to/foo' }, }), ).toEqual({ @@ -69,10 +72,10 @@ describe('sqlite3', () => { }); }); - describe(createSqlite3Database, () => { + describe(createSqliteDatabaseClient, () => { it('creates an in memory knex instance', () => { expect( - createSqlite3Database( + createSqliteDatabaseClient( createConfig({ client: 'sqlite3', connection: ':memory:', diff --git a/packages/backend-common/src/database/sqlite3.ts b/packages/backend-common/src/database/sqlite3.ts index 6249394d05..7bdc4380a1 100644 --- a/packages/backend-common/src/database/sqlite3.ts +++ b/packages/backend-common/src/database/sqlite3.ts @@ -15,7 +15,7 @@ */ import knex from 'knex'; -import { ConfigReader } from '@backstage/config'; +import { Config } from '@backstage/config'; import { mergeDatabaseConfig } from './config'; /** @@ -24,11 +24,11 @@ import { mergeDatabaseConfig } from './config'; * @param dbConfig The database config * @param overrides Additional options to merge with the config */ -export function createSqlite3Database( - dbConfig: ConfigReader, +export function createSqliteDatabaseClient( + dbConfig: Config, overrides?: knex.Config, ) { - const knexConfig = buildSqlite3DatabaseConfig(dbConfig, overrides); + const knexConfig = buildSqliteDatabaseConfig(dbConfig, overrides); const database = knex(knexConfig); database.client.pool.on('createSuccess', (_eventId: any, resource: any) => { @@ -44,8 +44,8 @@ export function createSqlite3Database( * @param dbConfig The database config * @param overrides Additional options to merge with the config */ -export function buildSqlite3DatabaseConfig( - dbConfig: ConfigReader, +export function buildSqliteDatabaseConfig( + dbConfig: Config, overrides?: knex.Config, ) { return mergeDatabaseConfig( diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts index 6df593182d..0423047cf7 100644 --- a/packages/backend/src/index.ts +++ b/packages/backend/src/index.ts @@ -23,7 +23,7 @@ */ import { - createDatabase, + createDatabaseClient, createServiceBuilder, loadBackendConfig, getRootLogger, @@ -48,11 +48,14 @@ function makeCreateEnv(loadedConfigs: AppConfig[]) { return (plugin: string): PluginEnvironment => { const logger = getRootLogger().child({ type: 'plugin', plugin }); - const database = createDatabase(config.getConfig('backend.database'), { - connection: { - database: `backstage_plugin_${plugin}`, + const database = createDatabaseClient( + config.getConfig('backend.database'), + { + connection: { + database: `backstage_plugin_${plugin}`, + }, }, - }); + ); return { logger, database, config }; }; } diff --git a/packages/create-app/templates/default-app/packages/backend/src/index.ts b/packages/create-app/templates/default-app/packages/backend/src/index.ts index d6fba2478a..6a014727e9 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/index.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/index.ts @@ -7,7 +7,7 @@ */ import { - createDatabase, + createDatabaseClient, createServiceBuilder, loadBackendConfig, getRootLogger, @@ -27,11 +27,14 @@ function makeCreateEnv(loadedConfigs: AppConfig[]) { return (plugin: string): PluginEnvironment => { const logger = getRootLogger().child({ type: 'plugin', plugin }); - const database = createDatabase(config.getConfig('backend.database'), { - connection: { - database: `backstage_plugin_${plugin}`, + const database = createDatabaseClient( + config.getConfig('backend.database'), + { + connection: { + database: `backstage_plugin_${plugin}`, + }, }, - }); + ); return { logger, database, config }; }; } From 6b1e63c2fc0a0f5b37a52b8edea8a41f4818e08c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20DOREAU?= Date: Sun, 23 Aug 2020 00:32:20 +0200 Subject: [PATCH 290/656] feat(create-app): add missing plugins --- .../default-app/packages/app/package.json.hbs | 6 +++ .../default-app/packages/app/src/apis.ts | 38 ++++++++++++++++++- .../default-app/packages/app/src/plugins.ts | 6 +++ .../default-app/packages/app/src/sidebar.tsx | 9 +++++ 4 files changed, 57 insertions(+), 2 deletions(-) diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index 7d34a94c7b..704b04ceca 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -11,6 +11,12 @@ "@backstage/plugin-register-component": "^{{version}}", "@backstage/plugin-scaffolder": "^{{version}}", "@backstage/plugin-techdocs": "^{{version}}", + "@backstage/plugin-circleci": "^{{version}}", + "@backstage/plugin-explore": "^{{version}}", + "@backstage/plugin-lighthouse": "^{{version}}", + "@backstage/plugin-tech-radar": "^{{version}}", + "@backstage/plugin-github-actions": "^{{version}}", + "@backstage/plugin-sentry": "^{{version}}", "@backstage/test-utils": "^{{version}}", "@backstage/theme": "^{{version}}", "history": "^5.0.0", diff --git a/packages/create-app/templates/default-app/packages/app/src/apis.ts b/packages/create-app/templates/default-app/packages/app/src/apis.ts index 7fc59cc9d7..02b5898884 100644 --- a/packages/create-app/templates/default-app/packages/app/src/apis.ts +++ b/packages/create-app/templates/default-app/packages/app/src/apis.ts @@ -14,15 +14,33 @@ import { WebStorage, } from '@backstage/core'; -import { catalogApiRef, CatalogClient } from '@backstage/plugin-catalog'; +import { + lighthouseApiRef, + LighthouseRestApi, +} from '@backstage/plugin-lighthouse'; -import { scaffolderApiRef, ScaffolderApi } from '@backstage/plugin-scaffolder'; +import { + GithubActionsClient, + githubActionsApiRef, +} from '@backstage/plugin-github-actions'; import { techdocsStorageApiRef, TechDocsStorageApi, + + techdocsStorageApiRef, + TechDocsStorageApi, } from '@backstage/plugin-techdocs'; +import { techRadarApiRef, TechRadar } from '@backstage/plugin-tech-radar'; + +import { catalogApiRef, CatalogClient } from '@backstage/plugin-catalog'; +import { CircleCIApi, circleCIApiRef } from '@backstage/plugin-circleci'; + +import { scaffolderApiRef, ScaffolderApi } from '@backstage/plugin-scaffolder'; + + + export const apis = (config: ConfigApi) => { // eslint-disable-next-line no-console console.log(`Creating APIs for ${config.getString('app.title')}`); @@ -46,9 +64,25 @@ export const apis = (config: ConfigApi) => { builder.add(oauthRequestApiRef, new OAuthRequestManager()); builder.add(catalogApiRef, new CatalogClient({ discoveryApi })); + builder.add(githubActionsApiRef, new GithubActionsClient()); + + builder.add(lighthouseApiRef, new LighthouseRestApi('http://localhost:3003')); + + builder.add( + circleCIApiRef, + new CircleCIApi(`${backendUrl}/proxy/circleci/api`), + ); builder.add(scaffolderApiRef, new ScaffolderApi({ discoveryApi })); + builder.add( + techRadarApiRef, + new TechRadar({ + width: 1500, + height: 800, + }), + ); + builder.add( techdocsStorageApiRef, new TechDocsStorageApi({ apiOrigin: techdocsStorageUrl }), diff --git a/packages/create-app/templates/default-app/packages/app/src/plugins.ts b/packages/create-app/templates/default-app/packages/app/src/plugins.ts index f6bef70188..0d54c55649 100644 --- a/packages/create-app/templates/default-app/packages/app/src/plugins.ts +++ b/packages/create-app/templates/default-app/packages/app/src/plugins.ts @@ -2,3 +2,9 @@ export { plugin as CatalogPlugin } from '@backstage/plugin-catalog'; export { plugin as RegisterComponent } from '@backstage/plugin-register-component'; export { plugin as ScaffolderPlugin } from '@backstage/plugin-scaffolder'; export { plugin as TechDocsPlugin } from '@backstage/plugin-techdocs'; +export { plugin as Explore } from '@backstage/plugin-explore'; +export { plugin as Circleci } from '@backstage/plugin-circleci'; +export { plugin as LighthousePlugin } from '@backstage/plugin-lighthouse'; +export { plugin as TechRadar } from '@backstage/plugin-tech-radar'; +export { plugin as GithubActions } from '@backstage/plugin-github-actions'; +export { plugin as Sentry } from '@backstage/plugin-sentry'; diff --git a/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx index 6520dfbe6e..28a43b2fb7 100644 --- a/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx @@ -2,6 +2,10 @@ import React from 'react'; import HomeIcon from '@material-ui/icons/Home'; import LibraryBooks from '@material-ui/icons/LibraryBooks'; import CreateComponentIcon from '@material-ui/icons/AddCircleOutline'; +import ExploreIcon from '@material-ui/icons/Explore'; +import BuildIcon from '@material-ui/icons/BuildRounded'; +import RuleIcon from '@material-ui/icons/AssignmentTurnedIn'; +import MapIcon from '@material-ui/icons/MyLocation'; import { Sidebar, SidebarItem, @@ -20,6 +24,11 @@ export const AppSidebar = () => ( + + + + + {/* End global nav */} From 1637987b2a88e1b1e3c47cf83d097ed1a82f7d75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20DOREAU?= Date: Sun, 23 Aug 2020 13:28:27 +0200 Subject: [PATCH 291/656] feat(create-app): add tech-docs plugin --- .../templates/default-app/packages/app/package.json.hbs | 1 + .../templates/default-app/packages/app/src/sidebar.tsx | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index 704b04ceca..8ea7d44f76 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -16,6 +16,7 @@ "@backstage/plugin-lighthouse": "^{{version}}", "@backstage/plugin-tech-radar": "^{{version}}", "@backstage/plugin-github-actions": "^{{version}}", + "@backstage/plugin-techdocs": "^{{version}}", "@backstage/plugin-sentry": "^{{version}}", "@backstage/test-utils": "^{{version}}", "@backstage/theme": "^{{version}}", diff --git a/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx index 28a43b2fb7..fa9a397751 100644 --- a/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx @@ -6,6 +6,7 @@ import ExploreIcon from '@material-ui/icons/Explore'; import BuildIcon from '@material-ui/icons/BuildRounded'; import RuleIcon from '@material-ui/icons/AssignmentTurnedIn'; import MapIcon from '@material-ui/icons/MyLocation'; + import { Sidebar, SidebarItem, @@ -22,9 +23,9 @@ export const AppSidebar = () => ( {/* Global nav, not org-specific */} + - From bb92d909ea70fde11f1cc72c91e1510fa91ac296 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20DOREAU?= Date: Tue, 1 Sep 2020 08:19:10 +0200 Subject: [PATCH 292/656] feat(create-app): sentry backend + lighthouse config --- .../templates/default-app/app-config.yaml.hbs | 6 +++++ .../default-app/packages/backend/src/index.ts | 3 +++ .../packages/backend/src/plugins/sentry.ts | 22 +++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 packages/create-app/templates/default-app/packages/backend/src/plugins/sentry.ts diff --git a/packages/create-app/templates/default-app/app-config.yaml.hbs b/packages/create-app/templates/default-app/app-config.yaml.hbs index aff375ad29..33f7f5dc60 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -44,6 +44,12 @@ proxy: techdocs: storageUrl: http://localhost:7000/techdocs/static/docs +sentry: + organization: spotify + +lighthouse: + baseUrl: http://localhost:3003 + auth: providers: {} diff --git a/packages/create-app/templates/default-app/packages/backend/src/index.ts b/packages/create-app/templates/default-app/packages/backend/src/index.ts index 6a014727e9..6ba6c4dc8e 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/index.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/index.ts @@ -20,6 +20,7 @@ import identity from './plugins/identity'; import scaffolder from './plugins/scaffolder'; import proxy from './plugins/proxy'; import techdocs from './plugins/techdocs'; +import sentry from './plugins/sentry'; import { PluginEnvironment } from './types'; function makeCreateEnv(loadedConfigs: AppConfig[]) { @@ -50,11 +51,13 @@ async function main() { const identityEnv = useHotMemoize(module, () => createEnv('identity')); const proxyEnv = useHotMemoize(module, () => createEnv('proxy')); const techdocsEnv = useHotMemoize(module, () => createEnv('techdocs')); + const sentryEnv = useHotMemoize(module, () => createEnv('sentry')); const service = createServiceBuilder(module) .loadConfig(configReader) .addRouter('/catalog', await catalog(catalogEnv)) .addRouter('/scaffolder', await scaffolder(scaffolderEnv)) + .addRouter('/sentry', await sentry(sentryEnv)) .addRouter('/auth', await auth(authEnv)) .addRouter('/identity', await identity(identityEnv)) .addRouter('/techdocs', await techdocs(techdocsEnv)) diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/sentry.ts b/packages/create-app/templates/default-app/packages/backend/src/plugins/sentry.ts new file mode 100644 index 0000000000..5cd0e55761 --- /dev/null +++ b/packages/create-app/templates/default-app/packages/backend/src/plugins/sentry.ts @@ -0,0 +1,22 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { createRouter } from '@backstage/plugin-sentry-backend'; +import type { PluginEnvironment } from '../types'; + +export default async function createPlugin({ logger }: PluginEnvironment) { + return await createRouter(logger); +} From 055b8baa6de8c5c5208f6d016510934b823c068f Mon Sep 17 00:00:00 2001 From: Iain Billett Date: Tue, 1 Sep 2020 07:55:31 +0100 Subject: [PATCH 293/656] Add Pull Request Plugin to the marketplace (#2190) * Add Pull Request Plugin to the marketplace * Add Pull Request Plugin to the marketplace * typo --- microsite/data/plugins/github-pull-requests.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 microsite/data/plugins/github-pull-requests.yaml diff --git a/microsite/data/plugins/github-pull-requests.yaml b/microsite/data/plugins/github-pull-requests.yaml new file mode 100644 index 0000000000..917198a221 --- /dev/null +++ b/microsite/data/plugins/github-pull-requests.yaml @@ -0,0 +1,10 @@ +--- +title: GitHub Pull Requests +author: roadie.io +authorUrl: https://roadie.io/ +category: CI +description: View GitHub pull requests for your service in Backstage. +documentation: https://roadie.io/backstage/plugins/github-pull-requests +iconUrl: https://roadie.io/static/7f13bb8d861d8dedc5112fb939d215f9/351f2/GitHub-Mark-Light-120px-plus.png +npmPackageName: '@roadiehq/backstage-plugin-github-pull-requests' + From 94da78133f16b1a5a346be445426633e07492870 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 1 Sep 2020 09:03:44 +0200 Subject: [PATCH 294/656] fix(deps): yarn.lock update again --- yarn.lock | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index d90056f47d..aa85370465 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2724,7 +2724,7 @@ dependencies: "@types/node" ">= 8" -"@open-draft/until@^1.0.3": +"@open-draft/until@^1.0.0", "@open-draft/until@^1.0.3": version "1.0.3" resolved "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz#db9cc719191a62e7d9200f6e7bab21c5b848adca" integrity sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q== @@ -4106,6 +4106,11 @@ dependencies: "@types/express" "*" +"@types/cookie@^0.3.3": + version "0.3.3" + resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz#85bc74ba782fb7aa3a514d11767832b0e3bc6803" + integrity sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow== + "@types/cookie@^0.4.0": version "0.4.0" resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz#14f854c0f93d326e39da6e3b6f34f7d37513d108" @@ -11650,7 +11655,7 @@ graphql-upload@^8.0.2: http-errors "^1.7.3" object-path "^0.11.4" -graphql@15.3.0, graphql@^15.3.0: +graphql@15.3.0, graphql@^15.0.0, graphql@^15.3.0: version "15.3.0" resolved "https://registry.npmjs.org/graphql/-/graphql-15.3.0.tgz#3ad2b0caab0d110e3be4a5a9b2aa281e362b5278" integrity sha512-GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w== @@ -11858,7 +11863,7 @@ he@^1.2.0: resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -headers-utils@^1.2.0: +headers-utils@^1.1.9, headers-utils@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/headers-utils/-/headers-utils-1.2.0.tgz#5e10d1bc9d2bccf789547afca5b991a3167241e8" integrity sha512-4/BMXcWrJErw7JpM87gF8MNEXcIMLzepYZjNRv/P9ctgupl2Ywa3u1PgHtNhSRq84bHH9Ndlkdy7bSi+bZ9I9A== @@ -15561,6 +15566,22 @@ ms@^2.0.0, ms@^2.1.1: resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +msw@^0.19.5: + version "0.19.5" + resolved "https://registry.npmjs.org/msw/-/msw-0.19.5.tgz#7d2a1a852ccf1644d3db6735d69fff6777aac33f" + integrity sha512-J5eQ++gDVZoHPC8gVXtWcakLjgmPipvFj/sEnlRV/WViXuiq2CamSqO3Wbh6H8bAmj+k2vUWCfcVT1HjMdKB2Q== + dependencies: + "@open-draft/until" "^1.0.0" + "@types/cookie" "^0.3.3" + chalk "^4.0.0" + cookie "^0.4.1" + graphql "^15.0.0" + headers-utils "^1.1.9" + node-match-path "^0.4.2" + node-request-interceptor "^0.2.5" + statuses "^2.0.0" + yargs "^15.3.1" + msw@^0.20.5: version "0.20.5" resolved "https://registry.npmjs.org/msw/-/msw-0.20.5.tgz#b6141080c0d8b17c451d9ca36c28cc47b4ac487a" @@ -15807,7 +15828,7 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-match-path@^0.4.4: +node-match-path@^0.4.2, node-match-path@^0.4.4: version "0.4.4" resolved "https://registry.npmjs.org/node-match-path/-/node-match-path-0.4.4.tgz#516a10926093c0cc6f237d020685b593b19baebb" integrity sha512-pBq9gp7TG0r0VXuy/oeZmQsjBSnYQo7G886Ly/B3azRwZuEtHCY155dzmfoKWcDPGgyfIGD8WKVC7h3+6y7yTg== @@ -15866,6 +15887,14 @@ node-releases@^1.1.29, node-releases@^1.1.52, node-releases@^1.1.58: resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== +node-request-interceptor@^0.2.5: + version "0.2.6" + resolved "https://registry.npmjs.org/node-request-interceptor/-/node-request-interceptor-0.2.6.tgz#541278d7033bb6a8befb5dd793f83428cf6446a2" + integrity sha512-aJW1tPSM7nzuZFRe+C/KSz22GJO3CVFMxHHmMGX8Z+tjP7TCIVbzeckLFVfJG68BdVgrdOOP7Ejc57ag820eyA== + dependencies: + debug "^4.1.1" + headers-utils "^1.2.0" + node-request-interceptor@^0.3.5: version "0.3.5" resolved "https://registry.npmjs.org/node-request-interceptor/-/node-request-interceptor-0.3.5.tgz#4b26159617829c9a70643012c0fdc3ae4c78ae43" From 0627c246373f9073883a6808817e262e98fbaad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Tue, 1 Sep 2020 09:26:21 +0200 Subject: [PATCH 295/656] Change templates to use Home theme (#2202) * Change templates to use Home theme * Update docs URL --- .../src/components/ScaffolderPage/ScaffolderPage.tsx | 4 ++-- .../scaffolder/src/components/TemplatePage/TemplatePage.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx b/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx index 12b3e303dd..6f8bf0d550 100644 --- a/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx +++ b/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx @@ -64,7 +64,7 @@ export const ScaffolderPage: React.FC<{}> = () => { }, [error, errorApi]); return ( - +
= () => { Shoot! Looks like you don't have any templates. Check out the documentation{' '} - + here! diff --git a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx index 05cc249e41..3c22e8d50c 100644 --- a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx +++ b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx @@ -136,7 +136,7 @@ export const TemplatePage = () => { } return ( - +
Date: Tue, 1 Sep 2020 09:44:22 +0200 Subject: [PATCH 296/656] chore: remove gitignored files --- microsite/i18n/en.json | 328 ----------------------------------------- 1 file changed, 328 deletions(-) delete mode 100644 microsite/i18n/en.json diff --git a/microsite/i18n/en.json b/microsite/i18n/en.json deleted file mode 100644 index e9f63d5737..0000000000 --- a/microsite/i18n/en.json +++ /dev/null @@ -1,328 +0,0 @@ -{ - "_comment": "This file is auto-generated by write-translations.js", - "localized-strings": { - "next": "Next", - "previous": "Previous", - "tagline": "An open platform for building developer portals", - "docs": { - "api/backend": { - "title": "Backend" - }, - "api/utility-apis": { - "title": "Utility APIs" - }, - "architecture-decisions/adrs-adr001": { - "title": "ADR001: Architecture Decision Record (ADR) log", - "sidebar_label": "ADR001" - }, - "architecture-decisions/adrs-adr002": { - "title": "ADR002: Default Software Catalog File Format", - "sidebar_label": "ADR002" - }, - "architecture-decisions/adrs-adr003": { - "title": "ADR003: Avoid Default Exports and Prefer Named Exports", - "sidebar_label": "ADR003" - }, - "architecture-decisions/adrs-adr004": { - "title": "ADR004: Module Export Structure", - "sidebar_label": "ADR004" - }, - "architecture-decisions/adrs-adr005": { - "title": "ADR005: Catalog Core Entities", - "sidebar_label": "ADR005" - }, - "architecture-decisions/adrs-adr006": { - "title": "ADR006: Avoid React.FC and React.SFC", - "sidebar_label": "ADR006" - }, - "architecture-decisions/adrs-adr007": { - "title": "ADR007: Use MSW to mock http requests", - "sidebar_label": "ADR007" - }, - "architecture-decisions/adrs-adr008": { - "title": "ADR008: Default Catalog File Name", - "sidebar_label": "ADR008" - }, - "architecture-decisions/adrs-overview": { - "title": "Architecture Decision Records (ADR)", - "sidebar_label": "Overview" - }, - "auth/add-auth-provider": { - "title": "Adding authentication providers" - }, - "auth/auth-backend-classes": { - "title": "Auth backend classes" - }, - "auth/auth-backend": { - "title": "Auth backend" - }, - "auth/glossary": { - "title": "Glossary" - }, - "auth/index": { - "title": "User Authentication and Authorization in Backstage" - }, - "auth/oauth": { - "title": "OAuth and OpenID Connect" - }, - "conf/defining": { - "title": "Defining Configuration for your Plugin" - }, - "conf/index": { - "title": "Static Configuration in Backstage" - }, - "conf/reading": { - "title": "Reading Backstage Configuration" - }, - "conf/writing": { - "title": "Writing Backstage Configuration Files" - }, - "dls/contributing-to-storybook": { - "title": "Contributing to Storybook" - }, - "dls/design": { - "title": "Design" - }, - "dls/figma": { - "title": "Figma" - }, - "FAQ": { - "title": "FAQ" - }, - "features/software-catalog/software-catalog-api": { - "title": "API" - }, - "features/software-catalog/software-catalog-configuration": { - "title": "Catalog Configuration" - }, - "features/software-catalog/descriptor-format": { - "title": "Descriptor Format of Catalog Entities", - "sidebar_label": "YAML File Format" - }, - "features/software-catalog/extending-the-model": { - "title": "Extending the model" - }, - "features/software-catalog/external-integrations": { - "title": "External integrations" - }, - "features/software-catalog/software-catalog-overview": { - "title": "Backstage Service Catalog (alpha)", - "sidebar_label": "Backstage Service Catalog" - }, - "features/software-catalog/installation": { - "title": "features/software-catalog/installation" - }, - "features/software-catalog/system-model": { - "title": "System Model" - }, - "features/software-templates/adding-templates": { - "title": "Adding your own Templates" - }, - "features/software-templates/extending/extending-preparer": { - "title": "Create your own Preparer" - }, - "features/software-templates/extending/extending-publisher": { - "title": "Create your own Publisher" - }, - "features/software-templates/extending/extending-templater": { - "title": "Creating your own Templater" - }, - "features/software-templates/extending/extending-index": { - "title": "Extending the Scaffolder" - }, - "features/software-templates/software-templates-index": { - "title": "Software Templates" - }, - "features/software-templates/installation": { - "title": "features/software-templates/installation" - }, - "features/techdocs/concepts": { - "title": "Concepts" - }, - "features/techdocs/creating-and-publishing": { - "title": "Creating and publishing your docs", - "sidebar_label": "Creating and Publishing Documentation" - }, - "features/techdocs/faqs": { - "title": "TechDocs FAQ", - "sidebar_label": "FAQ" - }, - "features/techdocs/getting-started": { - "title": "Getting Started" - }, - "features/techdocs/techdocs-overview": { - "title": "TechDocs Documentation", - "sidebar_label": "Overview" - }, - "getting-started/app-custom-theme": { - "title": "Customize the look-and-feel of your App" - }, - "getting-started/configure-app-with-plugins": { - "title": "Configuring App with plugins" - }, - "getting-started/create-an-app": { - "title": "Create an App" - }, - "getting-started/deployment-k8s": { - "title": "Kubernetes" - }, - "getting-started/deployment-other": { - "title": "Other" - }, - "getting-started/development-environment": { - "title": "Development Environment" - }, - "getting-started/index": { - "title": "Running Backstage Locally" - }, - "getting-started/installation": { - "title": "Installation" - }, - "overview/adopting": { - "title": "Strategies for adopting" - }, - "overview/architecture-overview": { - "title": "Architecture overview" - }, - "overview/architecture-terminology": { - "title": "Architecture terminology" - }, - "overview/background": { - "title": "The Spotify Story" - }, - "overview/roadmap": { - "title": "Project roadmap" - }, - "overview/support": { - "title": "Support and community" - }, - "overview/vision": { - "title": "Vision" - }, - "overview/what-is-backstage": { - "title": "What is Backstage?" - }, - "plugins/add-to-marketplace": { - "title": "Add to Marketplace" - }, - "plugins/backend-plugin": { - "title": "Backend plugin" - }, - "plugins/call-existing-api": { - "title": "Call Existing API" - }, - "plugins/create-a-plugin": { - "title": "Create a Backstage Plugin" - }, - "plugins/existing-plugins": { - "title": "Existing plugins" - }, - "plugins/index": { - "title": "Intro to plugins" - }, - "plugins/plugin-development": { - "title": "Plugin Development" - }, - "plugins/proxying": { - "title": "Proxying" - }, - "plugins/publish-private": { - "title": "Publish private" - }, - "plugins/publishing": { - "title": "Publishing" - }, - "plugins/structure-of-a-plugin": { - "title": "Structure of a Plugin" - }, - "plugins/testing": { - "title": "Testing with Jest" - }, - "README": { - "title": "README" - }, - "reference/createPlugin-feature-flags": { - "title": "createPlugin - feature flags" - }, - "reference/createPlugin-router": { - "title": "createPlugin - router" - }, - "reference/createPlugin": { - "title": "createPlugin" - }, - "reference/utility-apis/AlertApi": { - "title": "reference/utility-apis/AlertApi" - }, - "reference/utility-apis/AppThemeApi": { - "title": "reference/utility-apis/AppThemeApi" - }, - "reference/utility-apis/BackstageIdentityApi": { - "title": "reference/utility-apis/BackstageIdentityApi" - }, - "reference/utility-apis/Config": { - "title": "reference/utility-apis/Config" - }, - "reference/utility-apis/ErrorApi": { - "title": "reference/utility-apis/ErrorApi" - }, - "reference/utility-apis/FeatureFlagsApi": { - "title": "reference/utility-apis/FeatureFlagsApi" - }, - "reference/utility-apis/IdentityApi": { - "title": "reference/utility-apis/IdentityApi" - }, - "reference/utility-apis/OAuthApi": { - "title": "reference/utility-apis/OAuthApi" - }, - "reference/utility-apis/OAuthRequestApi": { - "title": "reference/utility-apis/OAuthRequestApi" - }, - "reference/utility-apis/OpenIdConnectApi": { - "title": "reference/utility-apis/OpenIdConnectApi" - }, - "reference/utility-apis/ProfileInfoApi": { - "title": "reference/utility-apis/ProfileInfoApi" - }, - "reference/utility-apis/README": { - "title": "Utility API References" - }, - "reference/utility-apis/SessionStateApi": { - "title": "reference/utility-apis/SessionStateApi" - }, - "reference/utility-apis/StorageApi": { - "title": "reference/utility-apis/StorageApi" - }, - "tutorials/journey": { - "title": "Future developer journey" - } - }, - "links": { - "GitHub": "GitHub", - "Docs": "Docs", - "Plugins": "Plugins", - "Blog": "Blog", - "Demos": "Demos", - "Newsletter": "Newsletter" - }, - "categories": { - "Overview": "Overview", - "Getting Started": "Getting Started", - "Features": "Features", - "Plugins": "Plugins", - "Configuration": "Configuration", - "Auth and identity": "Auth and identity", - "Designing for Backstage": "Designing for Backstage", - "API references": "API references", - "Tutorials": "Tutorials", - "Architecture Decision Records (ADRs)": "Architecture Decision Records (ADRs)", - "Contribute": "Contribute", - "Support": "Support", - "FAQ": "FAQ" - } - }, - "pages-strings": { - "Help Translate|recruit community translators for your project": "Help Translate", - "Edit this Doc|recruitment message asking to edit the doc source": "Edit", - "Translate this Doc|recruitment message asking to translate the docs": "Translate" - } -} From bcbeb0b657945b55965260c67524621c17fb823e Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Tue, 1 Sep 2020 09:46:46 +0200 Subject: [PATCH 297/656] Add api-docs to marketplace (#2204) * docs: improve documentation about adding plugins to the marketplace The relative path is misleading as one has to come from root. * docs: add api-docs plugin to marketplace --- docs/plugins/add-to-marketplace.md | 4 +++- microsite/data/plugins/api-docs.yaml | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 microsite/data/plugins/api-docs.yaml diff --git a/docs/plugins/add-to-marketplace.md b/docs/plugins/add-to-marketplace.md index 23cfecd5d0..d85807a226 100644 --- a/docs/plugins/add-to-marketplace.md +++ b/docs/plugins/add-to-marketplace.md @@ -6,7 +6,9 @@ title: Add to Marketplace ## Adding a Plugin to the Marketplace To add a new plugin to the [plugin marketplace](https://backstage.io/plugins) -create a file in `data/plugins` with your plugin's information. Example: +create a file in +[`microsite/data/plugins`](https://github.com/spotify/backstage/tree/master/microsite/data/plugins) +with your plugin's information. Example: ```yaml --- diff --git a/microsite/data/plugins/api-docs.yaml b/microsite/data/plugins/api-docs.yaml new file mode 100644 index 0000000000..b7f85b62b3 --- /dev/null +++ b/microsite/data/plugins/api-docs.yaml @@ -0,0 +1,9 @@ +--- +title: API Docs +author: SDA SE +authorUrl: https://sda.se/ +category: Discovery +description: Components to discover and display API entities as an extension to the catalog plugin. +documentation: https://github.com/spotify/backstage/blob/master/plugins/api-docs/README.md +iconUrl: https://github.com/spotify/backstage/raw/master/plugins/api-docs/docs/entity_tab_api.png +npmPackageName: '@backstage/plugin-api-docs' From b9ed0d3088a6c3634d16a08d7bce4c992b4477dd Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Tue, 1 Sep 2020 09:51:00 +0200 Subject: [PATCH 298/656] feat(catalog): change the tags in the entity list to be gray (#2205) --- .../catalog/src/components/CatalogTable/CatalogTable.tsx | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx b/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx index c68eb10e66..cd4df13775 100644 --- a/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx +++ b/plugins/catalog/src/components/CatalogTable/CatalogTable.tsx @@ -75,12 +75,7 @@ const columns: TableColumn[] = [ <> {entity.metadata.tags && entity.metadata.tags.map(t => ( - + ))} ), From ff5da01280cc79a7792b58a18de5bd604db431e1 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Tue, 1 Sep 2020 09:54:05 +0200 Subject: [PATCH 299/656] TechDocs: techdocs backend tests (#2196) * add tests for generators class * add tests for helpers * renaming * fixup --- .../stages/generate/generators.test.ts | 47 ++++++++ .../techdocs/stages/generate/generators.ts | 53 +++++---- .../techdocs/stages/generate/helpers.test.ts | 103 ++++++++++++++++++ 3 files changed, 175 insertions(+), 28 deletions(-) create mode 100644 plugins/techdocs-backend/src/techdocs/stages/generate/generators.test.ts create mode 100644 plugins/techdocs-backend/src/techdocs/stages/generate/helpers.test.ts diff --git a/plugins/techdocs-backend/src/techdocs/stages/generate/generators.test.ts b/plugins/techdocs-backend/src/techdocs/stages/generate/generators.test.ts new file mode 100644 index 0000000000..b339aef9f8 --- /dev/null +++ b/plugins/techdocs-backend/src/techdocs/stages/generate/generators.test.ts @@ -0,0 +1,47 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { Generators, TechdocsGenerator } from './'; +import { getVoidLogger } from '@backstage/backend-common'; + +const logger = getVoidLogger(); + +const mockEntity = { + apiVersion: 'version', + kind: 'TestKind', + metadata: { + name: 'testName', + }, +}; + +describe('generators', () => { + it('should return error if no generator is registered', async () => { + const generators = new Generators(); + + expect(() => generators.get(mockEntity)).toThrowError( + 'No generator registered for entity: "techdocs"', + ); + }); + + it('should return correct registered generator', async () => { + const generators = new Generators(); + const techdocs = new TechdocsGenerator(logger); + + generators.register('techdocs', techdocs); + + expect(generators.get(mockEntity)).toBe(techdocs); + }); +}); diff --git a/plugins/techdocs-backend/src/techdocs/stages/generate/generators.ts b/plugins/techdocs-backend/src/techdocs/stages/generate/generators.ts index da9d3c418b..f28a169942 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/generate/generators.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/generate/generators.ts @@ -15,32 +15,29 @@ */ import { - GeneratorBase, - SupportedGeneratorKey, - GeneratorBuilder, - } from './types'; - - import { Entity } from '@backstage/catalog-model'; - import { getGeneratorKey } from './helpers'; - - export class Generators implements GeneratorBuilder { - private generatorMap = new Map(); - - register(templaterKey: SupportedGeneratorKey, templater: GeneratorBase) { - this.generatorMap.set(templaterKey, templater); - } - - get(entity: Entity): GeneratorBase { - const generatorKey = getGeneratorKey(entity); - const generator = this.generatorMap.get(generatorKey); - - if (!generator) { - throw new Error( - `No generator registered for entity: "${generatorKey}"`, - ); - } - - return generator; - } + GeneratorBase, + SupportedGeneratorKey, + GeneratorBuilder, +} from './types'; + +import { Entity } from '@backstage/catalog-model'; +import { getGeneratorKey } from './helpers'; + +export class Generators implements GeneratorBuilder { + private generatorMap = new Map(); + + register(generatorKey: SupportedGeneratorKey, generator: GeneratorBase) { + this.generatorMap.set(generatorKey, generator); } - \ No newline at end of file + + get(entity: Entity): GeneratorBase { + const generatorKey = getGeneratorKey(entity); + const generator = this.generatorMap.get(generatorKey); + + if (!generator) { + throw new Error(`No generator registered for entity: "${generatorKey}"`); + } + + return generator; + } +} diff --git a/plugins/techdocs-backend/src/techdocs/stages/generate/helpers.test.ts b/plugins/techdocs-backend/src/techdocs/stages/generate/helpers.test.ts new file mode 100644 index 0000000000..799e79ef67 --- /dev/null +++ b/plugins/techdocs-backend/src/techdocs/stages/generate/helpers.test.ts @@ -0,0 +1,103 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 Stream, { PassThrough } from 'stream'; +import os from 'os'; +import Docker from 'dockerode'; +import { runDockerContainer, getGeneratorKey } from './helpers'; + +const mockEntity = { + apiVersion: 'version', + kind: 'TestKind', + metadata: { + name: 'testName', + }, +}; + +const mockDocker = new Docker() as jest.Mocked; + +describe('helpers', () => { + describe('getGeneratorKey', () => { + it('should return techdocs as the only generator key', () => { + const key = getGeneratorKey(mockEntity); + expect(key).toBe('techdocs'); + }); + }); + + describe('runDockerContainer', () => { + beforeEach(() => { + jest.spyOn(mockDocker, 'pull').mockImplementation((async ( + _image: string, + _something: any, + handler: (err: Error | undefined, stream: PassThrough) => void, + ) => { + const mockStream = new PassThrough(); + handler(undefined, mockStream); + mockStream.end(); + }) as any); + + jest + .spyOn(mockDocker, 'run') + .mockResolvedValue([{ Error: null, StatusCode: 0 }]); + }); + + const imageName = 'spotify/techdocs'; + const args = ['build', '-d', '/result']; + const docsDir = os.tmpdir(); + const resultDir = os.tmpdir(); + + it('should pull the techdocs docker container', async () => { + await runDockerContainer({ + imageName, + args, + docsDir, + resultDir, + dockerClient: mockDocker, + }); + + expect(mockDocker.pull).toHaveBeenCalledWith( + imageName, + {}, + expect.any(Function), + ); + }); + + it('should run the techdocs docker container', async () => { + await runDockerContainer({ + imageName, + args, + docsDir, + resultDir, + dockerClient: mockDocker, + }); + + expect(mockDocker.run).toHaveBeenCalledWith( + imageName, + args, + expect.any(Stream), + { + Volumes: { + '/content': {}, + '/result': {}, + }, + WorkingDir: '/content', + HostConfig: { + Binds: [`${docsDir}:/content`, `${resultDir}:/result`], + }, + }, + ); + }); + }); +}); From f7ac665b75ef63951a60be700dbede728806d6aa Mon Sep 17 00:00:00 2001 From: nikek Date: Tue, 1 Sep 2020 10:26:16 +0200 Subject: [PATCH 300/656] Add semantic color to AboutCard field titles --- plugins/catalog/src/components/AboutCard/AboutCard.tsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/catalog/src/components/AboutCard/AboutCard.tsx b/plugins/catalog/src/components/AboutCard/AboutCard.tsx index d27175fcf3..d83beaedb5 100644 --- a/plugins/catalog/src/components/AboutCard/AboutCard.tsx +++ b/plugins/catalog/src/components/AboutCard/AboutCard.tsx @@ -35,17 +35,18 @@ import DocsIcon from '@material-ui/icons/Description'; const useStyles = makeStyles(theme => ({ links: { - margin: theme.spacing(2, 0, 2), + margin: theme.spacing(2, 0), display: 'grid', gridAutoFlow: 'column', gridAutoColumns: 'min-content', - gridGap: theme.spacing(2), + gridGap: theme.spacing(3), }, label: { - color: '#9e9e9e', + color: theme.palette.text.secondary, textTransform: 'uppercase', - fontSize: '12px', + fontSize: '10px', fontWeight: 'bold', + letterSpacing: 0.5, overflow: 'hidden', whiteSpace: 'nowrap', }, From a549ad53cea7f0b1ee9c3e28b4741e50ee8adcef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20DOREAU?= Date: Tue, 1 Sep 2020 10:37:04 +0200 Subject: [PATCH 301/656] fix(create-app): remove duplicate import --- .../create-app/templates/default-app/packages/app/src/apis.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/create-app/templates/default-app/packages/app/src/apis.ts b/packages/create-app/templates/default-app/packages/app/src/apis.ts index 02b5898884..14351eaba7 100644 --- a/packages/create-app/templates/default-app/packages/app/src/apis.ts +++ b/packages/create-app/templates/default-app/packages/app/src/apis.ts @@ -27,9 +27,6 @@ import { import { techdocsStorageApiRef, TechDocsStorageApi, - - techdocsStorageApiRef, - TechDocsStorageApi, } from '@backstage/plugin-techdocs'; import { techRadarApiRef, TechRadar } from '@backstage/plugin-tech-radar'; From 81cb294dacbf23bc863afb3b287a24ff9a68d61b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 1 Sep 2020 10:36:21 +0200 Subject: [PATCH 302/656] config,docs: add templates as allowed kind and document process --- app-config.yaml | 2 ++ .../software-catalog/configuration.md | 4 ++-- .../software-templates/adding-templates.md | 22 +++++++++++++++++++ .../templates/default-app/app-config.yaml.hbs | 5 +++++ 4 files changed, 31 insertions(+), 2 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index 3b3733cf54..ba556873aa 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -48,6 +48,8 @@ lighthouse: baseUrl: http://localhost:3003 catalog: + rules: + allow: [Component, API, Group, Template] processors: githubApi: privateToken: diff --git a/docs/features/software-catalog/configuration.md b/docs/features/software-catalog/configuration.md index d4cc7fc0c2..acfaf115de 100644 --- a/docs/features/software-catalog/configuration.md +++ b/docs/features/software-catalog/configuration.md @@ -32,7 +32,7 @@ For example, given the following configuration: ```yaml catalog: rules: - - allow: [Component, API, System] + - allow: [Component, API, Template] locations: - type: github @@ -40,7 +40,7 @@ catalog: allow: [Group] ``` -We are able to add entities of kind `Component`, `API`, or `System` from any +We are able to add entities of kind `Component`, `API`, or `Template` from any location, and `Group` entities from the `org-data.yaml`, which will also be read as statically configured location. diff --git a/docs/features/software-templates/adding-templates.md b/docs/features/software-templates/adding-templates.md index 67467bd98e..16419b4dfe 100644 --- a/docs/features/software-templates/adding-templates.md +++ b/docs/features/software-templates/adding-templates.md @@ -58,6 +58,28 @@ Currently the catalog supports loading definitions from GitHub + Local Files. To load from other places, not only will there need to be another preparer, but the support to load the location will also need to be added to the Catalog. +You can add the template files to the catalog through +[static location configuration](../software-catalog/configuration.md#static-location-configuration), +for example + +```yaml +catalog: + locations: + - type: github + target: https://github.com/spotify/cookiecutter-golang/blob/master/template.yaml + allow: [Template] +``` + +Templates can also be added by posting the to the catalog directly. Note that if +you're doing this, you need to configure the catalog to allow template entities +to be ingested from any source, for example: + +```yaml +catalog: + rules: + allow: [Component, API, Template] +``` + For loading from a file, the following command should work when the backend is running: diff --git a/packages/create-app/templates/default-app/app-config.yaml.hbs b/packages/create-app/templates/default-app/app-config.yaml.hbs index aff375ad29..e194295df3 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -69,11 +69,16 @@ catalog: # Backstage example templates - type: github target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/react-ssr-template/template.yaml + allow: [Template] - type: github target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/template.yaml + allow: [Template] - type: github target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/create-react-app/template.yaml + allow: [Template] - type: github target: https://github.com/spotify/cookiecutter-golang/blob/master/template.yaml + allow: [Template] - type: github target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/docs-template/template.yaml + allow: [Template] From a85ca3123c8a00b590be214cb3f992965d2bf598 Mon Sep 17 00:00:00 2001 From: Marcus Eide Date: Tue, 1 Sep 2020 10:46:52 +0200 Subject: [PATCH 303/656] Add non-legacy routes when in isolation --- packages/dev-utils/src/devApp/render.tsx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/dev-utils/src/devApp/render.tsx b/packages/dev-utils/src/devApp/render.tsx index 0e28a5bf8b..410f7592a5 100644 --- a/packages/dev-utils/src/devApp/render.tsx +++ b/packages/dev-utils/src/devApp/render.tsx @@ -199,8 +199,17 @@ class DevAppBuilder { for (const plugin of plugins) { for (const output of plugin.output()) { - if (output.type === 'legacy-route') { - paths.push(output.path); + switch (output.type) { + case 'legacy-route': { + paths.push(output.path); + break; + } + case 'route': { + paths.push(output.target.path); + break; + } + default: + break; } } } From 042f2cbb44faeb2a92ad43841a84776681947c49 Mon Sep 17 00:00:00 2001 From: Marcus Eide Date: Tue, 1 Sep 2020 10:53:55 +0200 Subject: [PATCH 304/656] Fix formatting in plugin template --- .../cli/templates/default-plugin/src/plugin.ts.hbs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/cli/templates/default-plugin/src/plugin.ts.hbs b/packages/cli/templates/default-plugin/src/plugin.ts.hbs index 6a410a6a28..1bf4d07cdb 100644 --- a/packages/cli/templates/default-plugin/src/plugin.ts.hbs +++ b/packages/cli/templates/default-plugin/src/plugin.ts.hbs @@ -2,13 +2,13 @@ import { createPlugin, createRouteRef } from '@backstage/core'; import ExampleComponent from './components/ExampleComponent'; export const rootRouteRef = createRouteRef({ -path: '/{{ id }}', -title: '{{ id }}', + path: '/{{ id }}', + title: '{{ id }}', }); export const plugin = createPlugin({ -id: '{{ id }}', -register({ router }) { -router.addRoute(rootRouteRef, ExampleComponent); -}, + id: '{{ id }}', + register({ router }) { + router.addRoute(rootRouteRef, ExampleComponent); + }, }); From a62d0af2c8c8374eb1a2f809eb4824aba87d2761 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Tue, 1 Sep 2020 11:12:43 +0200 Subject: [PATCH 305/656] chore(eslint): adjust no-unused-vars rule --- packages/cli/config/eslint.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/cli/config/eslint.js b/packages/cli/config/eslint.js index 2416a250e1..792cd467d5 100644 --- a/packages/cli/config/eslint.js +++ b/packages/cli/config/eslint.js @@ -56,7 +56,12 @@ module.exports = { '@typescript-eslint/no-unused-expressions': 'error', '@typescript-eslint/no-unused-vars': [ 'warn', - { vars: 'all', args: 'after-used', ignoreRestSiblings: true }, + { + vars: 'all', + args: 'after-used', + ignoreRestSiblings: true, + argsIgnorePattern: '^_', + }, ], 'no-restricted-imports': [ 2, From 542ee253df7432e14b861a214399a730a53d8d87 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Tue, 1 Sep 2020 11:13:24 +0200 Subject: [PATCH 306/656] fix: update create-app to match example-app --- .../default-app/packages/app/src/App.tsx | 2 +- .../packages/app/src/components/AppRoutes.tsx | 14 ++++ .../app/src/components/catalog/EntityPage.tsx | 79 +++++++++++++++++++ 3 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 packages/create-app/templates/default-app/packages/app/src/components/AppRoutes.tsx create mode 100644 packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx diff --git a/packages/create-app/templates/default-app/packages/app/src/App.tsx b/packages/create-app/templates/default-app/packages/app/src/App.tsx index c96bd9d05e..9b431ca441 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.tsx @@ -8,6 +8,7 @@ import { import { apis } from './apis'; import * as plugins from './plugins'; import { AppSidebar } from './sidebar'; +import { AppRoutes } from './components/AppRoutes'; const app = createApp({ apis, @@ -16,7 +17,6 @@ const app = createApp({ const AppProvider = app.getProvider(); const AppRouter = app.getRouter(); -const AppRoutes = app.getRoutes(); const App: FC<{}> = () => ( diff --git a/packages/create-app/templates/default-app/packages/app/src/components/AppRoutes.tsx b/packages/create-app/templates/default-app/packages/app/src/components/AppRoutes.tsx new file mode 100644 index 0000000000..b689052a4a --- /dev/null +++ b/packages/create-app/templates/default-app/packages/app/src/components/AppRoutes.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import { Routes, Route, Navigate } from 'react-router'; +import { CatalogRouter } from '@backstage/plugin-catalog'; +import { EntityPage } from './catalog/EntityPage'; + +export const AppRoutes = () => ( + + } + /> + } /> + +); diff --git a/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx b/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx new file mode 100644 index 0000000000..1c7a08e362 --- /dev/null +++ b/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx @@ -0,0 +1,79 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { Router as GitHubActionsRouter } from '@backstage/plugin-github-actions'; +import React from 'react'; +import { + EntityPageLayout, + useEntity, + EntityMetadataCard, +} from '@backstage/plugin-catalog'; +import { Entity } from '@backstage/catalog-model'; + +const OverviewPage = ({ entity }: { entity: Entity }) => ( + +); + +const ServiceEntityPage = ({ entity }: { entity: Entity }) => ( + + } + /> + } + /> + +); + +const WebsiteEntityPage = ({ entity }: { entity: Entity }) => ( + + } + /> + } + /> + +); + +const DefaultEntityPage = ({ entity }: { entity: Entity }) => ( + + } + /> + +); + +export const EntityPage = () => { + const { entity } = useEntity(); + switch (entity?.spec?.type) { + case 'service': + return ; + case 'website': + return ; + default: + return ; + } +}; From 7dc5425119af6bdc1246c6cf161ea55a246398c7 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Tue, 1 Sep 2020 11:22:27 +0200 Subject: [PATCH 307/656] fix: typedep --- plugins/catalog/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 0a8b01b63f..1c830d74f6 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -52,6 +52,7 @@ "@testing-library/user-event": "^12.0.7", "@types/jest": "^26.0.7", "@types/node": "^12.0.0", + "@types/react": "^16.9", "jest-fetch-mock": "^3.0.3", "msw": "^0.20.5", "react-test-renderer": "^16.13.1", From 6e8f4ca44a0c1ee429198a05f420867774c19172 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 1 Sep 2020 11:30:59 +0200 Subject: [PATCH 308/656] catalog-backend: wrap location-specific rules in an additional rules field --- .../software-catalog/configuration.md | 3 +- .../software-templates/adding-templates.md | 3 +- .../templates/default-app/app-config.yaml.hbs | 15 ++++++---- .../src/ingestion/CatalogRules.test.ts | 6 +++- .../src/ingestion/CatalogRules.ts | 29 +++++++++---------- 5 files changed, 32 insertions(+), 24 deletions(-) diff --git a/docs/features/software-catalog/configuration.md b/docs/features/software-catalog/configuration.md index acfaf115de..44e998d5a9 100644 --- a/docs/features/software-catalog/configuration.md +++ b/docs/features/software-catalog/configuration.md @@ -37,7 +37,8 @@ catalog: locations: - type: github target: https://github.com/org/example/blob/master/org-data.yaml - allow: [Group] + rules: + - allow: [Group] ``` We are able to add entities of kind `Component`, `API`, or `Template` from any diff --git a/docs/features/software-templates/adding-templates.md b/docs/features/software-templates/adding-templates.md index 16419b4dfe..6e6e22dd9a 100644 --- a/docs/features/software-templates/adding-templates.md +++ b/docs/features/software-templates/adding-templates.md @@ -67,7 +67,8 @@ catalog: locations: - type: github target: https://github.com/spotify/cookiecutter-golang/blob/master/template.yaml - allow: [Template] + rules: + - allow: [Template] ``` Templates can also be added by posting the to the catalog directly. Note that if diff --git a/packages/create-app/templates/default-app/app-config.yaml.hbs b/packages/create-app/templates/default-app/app-config.yaml.hbs index e194295df3..16729e00e4 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -69,16 +69,21 @@ catalog: # Backstage example templates - type: github target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/react-ssr-template/template.yaml - allow: [Template] + rules: + - allow: [Template] - type: github target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/template.yaml - allow: [Template] + rules: + - allow: [Template] - type: github target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/create-react-app/template.yaml - allow: [Template] + rules: + - allow: [Template] - type: github target: https://github.com/spotify/cookiecutter-golang/blob/master/template.yaml - allow: [Template] + rules: + - allow: [Template] - type: github target: https://github.com/spotify/backstage/blob/master/plugins/scaffolder-backend/sample-templates/docs-template/template.yaml - allow: [Template] + rules: + - allow: [Template] diff --git a/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts b/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts index 34484f6b1e..794416786c 100644 --- a/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts +++ b/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts @@ -167,7 +167,11 @@ describe('CatalogRulesEnforcer', () => { { type: 'github', target: 'https://github.com/a/b/blob/master/x.yaml', - allow: ['Group'], + rules: [ + { + allow: ['Group'], + }, + ], }, ], }, diff --git a/plugins/catalog-backend/src/ingestion/CatalogRules.ts b/plugins/catalog-backend/src/ingestion/CatalogRules.ts index eda93b552f..2b55ebef32 100644 --- a/plugins/catalog-backend/src/ingestion/CatalogRules.ts +++ b/plugins/catalog-backend/src/ingestion/CatalogRules.ts @@ -64,7 +64,7 @@ export class CatalogRulesEnforcer { * If there is no matching rule to allow an ingested entity, it will be rejected by the catalog. * * It also reads in rules from `catalog.locations`, where each location can have a list - * of allowed entity for the location, specified in an `allow` field. + * of rules for that specific location, specified in a `rules` field. * * For example: * @@ -76,10 +76,12 @@ export class CatalogRulesEnforcer { * locations: * - type: github * target: https://github.com/org/repo/blob/master/users.yaml - * allow: [User, Group] + * rules: + * - allow: [User, Group] * - type: github * target: https://github.com/org/repo/blob/master/systems.yaml - * allow: [System] + * rules: + * - allow: [System] * ``` */ static fromConfig(config: Config) { @@ -97,22 +99,17 @@ export class CatalogRulesEnforcer { if (config.has('catalog.locations')) { const locationRules = config .getConfigArray('catalog.locations') - .flatMap(sub => { - if (!sub.has('allow')) { + .flatMap(locConf => { + if (!locConf.has('rules')) { return []; } + const type = locConf.getString('type'); + const target = locConf.getString('target'); - return [ - { - allow: sub.getStringArray('allow').map(kind => ({ kind })), - locations: [ - { - type: sub.getString('type'), - target: sub.getString('target'), - }, - ], - }, - ]; + return locConf.getConfigArray('rules').map(ruleConf => ({ + allow: ruleConf.getStringArray('allow').map(kind => ({ kind })), + locations: [{ type, target }], + })); }); rules.push(...locationRules); From 7b098885c51d6cdf2040079f323592c598338414 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Tue, 1 Sep 2020 11:41:33 +0200 Subject: [PATCH 309/656] fix: AboutCard --- packages/app/src/components/catalog/EntityPage.tsx | 4 ++-- .../packages/app/src/components/catalog/EntityPage.tsx | 4 ++-- plugins/catalog/src/index.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx index 1c7a08e362..b56268036f 100644 --- a/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/app/src/components/catalog/EntityPage.tsx @@ -18,12 +18,12 @@ import React from 'react'; import { EntityPageLayout, useEntity, - EntityMetadataCard, + AboutCard, } from '@backstage/plugin-catalog'; import { Entity } from '@backstage/catalog-model'; const OverviewPage = ({ entity }: { entity: Entity }) => ( - + ); const ServiceEntityPage = ({ entity }: { entity: Entity }) => ( diff --git a/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx b/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx index 1c7a08e362..b56268036f 100644 --- a/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx @@ -18,12 +18,12 @@ import React from 'react'; import { EntityPageLayout, useEntity, - EntityMetadataCard, + AboutCard, } from '@backstage/plugin-catalog'; import { Entity } from '@backstage/catalog-model'; const OverviewPage = ({ entity }: { entity: Entity }) => ( - + ); const ServiceEntityPage = ({ entity }: { entity: Entity }) => ( diff --git a/plugins/catalog/src/index.ts b/plugins/catalog/src/index.ts index d0e9778a00..26285b4814 100644 --- a/plugins/catalog/src/index.ts +++ b/plugins/catalog/src/index.ts @@ -21,5 +21,5 @@ export * from './routes'; export { useEntityCompoundName } from './components/useEntityCompoundName'; export * from './Router'; export { useEntity } from './hooks/useEntity'; -export { EntityMetadataCard } from './components/EntityMetadataCard/EntityMetadataCard'; +export { AboutCard } from './components/AboutCard'; export { EntityPageLayout } from './components/EntityPageLayout'; From 39f739408f8bc4f213528acbf1e93668447e4c76 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Tue, 1 Sep 2020 11:54:59 +0200 Subject: [PATCH 310/656] fix: typedeps again --- plugins/catalog/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 1c830d74f6..ec4ad4999a 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -40,7 +40,8 @@ "react-router": "6.0.0-beta.0", "react-router-dom": "6.0.0-beta.0", "react-use": "^15.3.3", - "swr": "^0.3.0" + "swr": "^0.3.0", + "@types/react": "^16.9" }, "devDependencies": { "@backstage/cli": "^0.1.1-alpha.20", @@ -52,7 +53,6 @@ "@testing-library/user-event": "^12.0.7", "@types/jest": "^26.0.7", "@types/node": "^12.0.0", - "@types/react": "^16.9", "jest-fetch-mock": "^3.0.3", "msw": "^0.20.5", "react-test-renderer": "^16.13.1", From 568f398aa944fa2b87369d68da8fd428890db84d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 1 Sep 2020 11:59:31 +0200 Subject: [PATCH 311/656] BREAKING CHANGE: no longer add express.json() by default to backend --- CHANGELOG.md | 9 +++++++++ .../backend-common/src/service/lib/ServiceBuilderImpl.ts | 1 - plugins/auth-backend/package.json | 1 - plugins/auth-backend/src/service/router.ts | 5 ++--- plugins/graphql/src/service/router.ts | 4 ++-- plugins/identity-backend/src/service/router.ts | 4 +++- plugins/rollbar-backend/src/service/router.ts | 1 + plugins/scaffolder-backend/src/service/router.ts | 1 + plugins/sentry-backend/src/service/router.ts | 2 ++ yarn.lock | 2 +- 10 files changed, 21 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ce39a9f8d2..20ae9a414d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,15 @@ If you encounter issues while upgrading to a newer version, don't hesitate to re > Collect changes for the next release below +- The backend plugin + [service builder](https://github.com/spotify/backstage/blob/master/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts) + no longer adds `express.json()` automatically to all routes. While convenient + in a lot of cases, it also led to problems where for example the proxy + middleware could hang because the body had already been altered and could not + be streamed. Also, plugins that rather wanted to handle e.g. form encoded data + still had to cater to that manually. We therefore decided to let plugins add + `express.json()` themselves if they happen to deal with JSON data. + ## v0.1.1-alpha.20 - Includes https://github.com/spotify/backstage/pull/2097 to resolve issues with create-plugin command. diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index df69387e40..10f9ca4d9b 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -135,7 +135,6 @@ export class ServiceBuilderImpl implements ServiceBuilder { app.use(cors(corsOptions)); } app.use(compression()); - app.use(express.json()); if (this.enableMetrics) { app.use(metricsHandler()); } diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index e5838c9011..107a594c4d 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -23,7 +23,6 @@ "@backstage/backend-common": "^0.1.1-alpha.20", "@backstage/config": "^0.1.1-alpha.20", "@types/express": "^4.17.6", - "body-parser": "^1.19.0", "compression": "^1.7.4", "cookie-parser": "^1.4.5", "cors": "^2.8.5", diff --git a/plugins/auth-backend/src/service/router.ts b/plugins/auth-backend/src/service/router.ts index 8ea1d412cb..b5451cad6c 100644 --- a/plugins/auth-backend/src/service/router.ts +++ b/plugins/auth-backend/src/service/router.ts @@ -17,7 +17,6 @@ import express from 'express'; import Router from 'express-promise-router'; import cookieParser from 'cookie-parser'; -import bodyParser from 'body-parser'; import Knex from 'knex'; import { Logger } from 'winston'; import { createAuthProviderRouter } from '../providers'; @@ -53,8 +52,8 @@ export async function createRouter( }); router.use(cookieParser()); - router.use(bodyParser.urlencoded({ extended: false })); - router.use(bodyParser.json()); + router.use(express.urlencoded({ extended: false })); + router.use(express.json()); const providersConfig = options.config.getConfig('auth.providers'); const providers = providersConfig.keys(); diff --git a/plugins/graphql/src/service/router.ts b/plugins/graphql/src/service/router.ts index 69e2394f11..0b91d7307a 100644 --- a/plugins/graphql/src/service/router.ts +++ b/plugins/graphql/src/service/router.ts @@ -39,8 +39,8 @@ export async function createRouter( const server = new ApolloServer({ typeDefs, logger: options.logger }); const router = Router(); - const apolloMiddlware = server.getMiddleware({ path: '/' }); - router.use(apolloMiddlware); + const apolloMiddleware = server.getMiddleware({ path: '/' }); + router.use(apolloMiddleware); router.get('/health', (_, response) => { response.send({ status: 'ok' }); diff --git a/plugins/identity-backend/src/service/router.ts b/plugins/identity-backend/src/service/router.ts index 9c6515ac04..9d16e8f332 100644 --- a/plugins/identity-backend/src/service/router.ts +++ b/plugins/identity-backend/src/service/router.ts @@ -27,13 +27,15 @@ export interface RouterOptions { const makeRouter = (adapter: IdentityApi): express.Router => { const router = Router(); + router.use(express.json()); + router.get('/users/:user/groups', async (req, res) => { const user = req.params.user; const type = req.query.type?.toString() ?? ''; - const response = await adapter.getUserGroups({ user, type }); res.send(response); }); + return router; }; diff --git a/plugins/rollbar-backend/src/service/router.ts b/plugins/rollbar-backend/src/service/router.ts index 0a8c58a9d7..5ee63b5b05 100644 --- a/plugins/rollbar-backend/src/service/router.ts +++ b/plugins/rollbar-backend/src/service/router.ts @@ -31,6 +31,7 @@ export async function createRouter( options: RouterOptions, ): Promise { const router = Router(); + const logger = options.logger.child({ plugin: 'rollbar' }); const config = options.config.getConfig('rollbar'); const accessToken = !options.rollbarApi diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index fcfd5765a1..1b96158fa4 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -42,6 +42,7 @@ export async function createRouter( options: RouterOptions, ): Promise { const router = Router(); + router.use(express.json()); const { preparers, diff --git a/plugins/sentry-backend/src/service/router.ts b/plugins/sentry-backend/src/service/router.ts index e7978042d3..153a8325b5 100644 --- a/plugins/sentry-backend/src/service/router.ts +++ b/plugins/sentry-backend/src/service/router.ts @@ -20,6 +20,8 @@ import { getSentryApiForwarder } from './sentry-api'; export async function createRouter(logger: Logger): Promise { const router = Router(); + router.use(express.json()); + const SENTRY_TOKEN = process.env.SENTRY_TOKEN; if (!SENTRY_TOKEN) { if (process.env.NODE_ENV !== 'development') { diff --git a/yarn.lock b/yarn.lock index aa85370465..84e4c4cbb4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6562,7 +6562,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -body-parser@1.19.0, body-parser@^1.18.3, body-parser@^1.19.0: +body-parser@1.19.0, body-parser@^1.18.3: version "1.19.0" resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== From 4f1bb23e6a6a6a6a6b725f6d437e61bc1aa932de Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Tue, 1 Sep 2020 12:23:06 +0200 Subject: [PATCH 312/656] fix: package deps for create-app template --- .../templates/default-app/packages/app/package.json.hbs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index 7d34a94c7b..9a59785388 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -11,6 +11,8 @@ "@backstage/plugin-register-component": "^{{version}}", "@backstage/plugin-scaffolder": "^{{version}}", "@backstage/plugin-techdocs": "^{{version}}", + "@backstage/catalog-model": "^{{version}}", + "@backstage/plugin-github-actions": "^{{version}}", "@backstage/test-utils": "^{{version}}", "@backstage/theme": "^{{version}}", "history": "^5.0.0", From 56412628699114d4fe732c349a3b48bd202a2481 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Tue, 1 Sep 2020 12:44:06 +0200 Subject: [PATCH 313/656] fix: disable plugin verification in browser [temporary] --- packages/e2e-test/src/e2e-test.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/e2e-test/src/e2e-test.ts b/packages/e2e-test/src/e2e-test.ts index 7377655497..6dab8caafb 100644 --- a/packages/e2e-test/src/e2e-test.ts +++ b/packages/e2e-test/src/e2e-test.ts @@ -277,11 +277,12 @@ async function testAppServe(pluginName: string, appDir: string) { const browser = new Browser(); await waitForPageWithText(browser, '/', 'Backstage Service Catalog'); - await waitForPageWithText( - browser, - `/${pluginName}`, - `Welcome to ${pluginName}!`, - ); + // TODO(shmidt-i): adjust the plugin creation flow with new routing patterns + // await waitForPageWithText( + // browser, + // `/${pluginName}`, + // `Welcome to ${pluginName}!`, + // ); print('Both App and Plugin loaded correctly'); successful = true; From 1b658f4bc349018c06a96f6e1ac8cc29bcbba597 Mon Sep 17 00:00:00 2001 From: Dominik Henneke Date: Tue, 1 Sep 2020 13:31:45 +0200 Subject: [PATCH 314/656] fix: use correct rules syntax --- app-config.yaml | 2 +- docs/features/software-templates/adding-templates.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index ba556873aa..7a8863495e 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -49,7 +49,7 @@ lighthouse: catalog: rules: - allow: [Component, API, Group, Template] + - allow: [Component, API, Group, Template, Location] processors: githubApi: privateToken: diff --git a/docs/features/software-templates/adding-templates.md b/docs/features/software-templates/adding-templates.md index 16419b4dfe..58dbe847a5 100644 --- a/docs/features/software-templates/adding-templates.md +++ b/docs/features/software-templates/adding-templates.md @@ -77,7 +77,7 @@ to be ingested from any source, for example: ```yaml catalog: rules: - allow: [Component, API, Template] + - allow: [Component, API, Template] ``` For loading from a file, the following command should work when the backend is From 3b545791cec1ccdd9ae7ae6716b056104087e3c9 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Mon, 31 Aug 2020 15:08:24 +0200 Subject: [PATCH 315/656] new release 31 aug 20 --- microsite/package.json | 2 +- packages/app/package.json | 44 ++++++++++++------------- packages/backend-common/package.json | 10 +++--- packages/backend/package.json | 32 +++++++++--------- packages/catalog-model/package.json | 6 ++-- packages/cli-common/package.json | 2 +- packages/cli/package.json | 8 ++--- packages/config-loader/package.json | 4 +-- packages/config/package.json | 2 +- packages/core-api/package.json | 10 +++--- packages/core/package.json | 12 +++---- packages/create-app/package.json | 4 +-- packages/dev-utils/package.json | 10 +++--- packages/docgen/package.json | 2 +- packages/e2e-test/package.json | 4 +-- packages/storybook/package.json | 4 +-- packages/techdocs-cli/package.json | 4 +-- packages/test-utils-core/package.json | 2 +- packages/test-utils/package.json | 10 +++--- packages/theme/package.json | 4 +-- plugins/api-docs/package.json | 16 ++++----- plugins/app-backend/package.json | 8 ++--- plugins/auth-backend/package.json | 8 ++--- plugins/catalog-backend/package.json | 10 +++--- plugins/catalog/package.json | 26 +++++++-------- plugins/circleci/package.json | 10 +++--- plugins/explore/package.json | 12 +++---- plugins/github-actions/package.json | 16 ++++----- plugins/gitops-profiles/package.json | 10 +++--- plugins/graphiql/package.json | 12 +++---- plugins/graphql/package.json | 6 ++-- plugins/identity-backend/package.json | 6 ++-- plugins/jenkins/package.json | 12 +++---- plugins/lighthouse/package.json | 14 ++++---- plugins/newrelic/package.json | 10 +++--- plugins/proxy-backend/package.json | 8 ++--- plugins/register-component/package.json | 14 ++++---- plugins/rollbar-backend/package.json | 8 ++--- plugins/rollbar/package.json | 12 +++---- plugins/scaffolder-backend/package.json | 10 +++--- plugins/scaffolder/package.json | 16 ++++----- plugins/sentry-backend/package.json | 6 ++-- plugins/sentry/package.json | 10 +++--- plugins/tech-radar/package.json | 12 +++---- plugins/techdocs-backend/package.json | 10 +++--- plugins/techdocs/package.json | 18 +++++----- plugins/welcome/package.json | 10 +++--- 47 files changed, 243 insertions(+), 243 deletions(-) diff --git a/microsite/package.json b/microsite/package.json index baaf9ccaf4..ee3c7f8dc2 100644 --- a/microsite/package.json +++ b/microsite/package.json @@ -1,5 +1,5 @@ { - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "name": "backstage-microsite", "license": "Apache-2.0", "private": true, diff --git a/packages/app/package.json b/packages/app/package.json index d32808b48b..13f2b83440 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,29 +1,29 @@ { "name": "example-app", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "private": true, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/plugin-api-docs": "^0.1.1-alpha.20", - "@backstage/plugin-catalog": "^0.1.1-alpha.20", - "@backstage/plugin-circleci": "^0.1.1-alpha.20", - "@backstage/plugin-explore": "^0.1.1-alpha.20", - "@backstage/plugin-github-actions": "^0.1.1-alpha.20", - "@backstage/plugin-gitops-profiles": "^0.1.1-alpha.20", - "@backstage/plugin-graphiql": "^0.1.1-alpha.20", - "@backstage/plugin-jenkins": "^0.1.1-alpha.20", - "@backstage/plugin-lighthouse": "^0.1.1-alpha.20", - "@backstage/plugin-newrelic": "^0.1.1-alpha.20", - "@backstage/plugin-register-component": "^0.1.1-alpha.20", - "@backstage/plugin-rollbar": "^0.1.1-alpha.20", - "@backstage/plugin-scaffolder": "^0.1.1-alpha.20", - "@backstage/plugin-sentry": "^0.1.1-alpha.20", - "@backstage/plugin-tech-radar": "^0.1.1-alpha.20", - "@backstage/plugin-techdocs": "^0.1.1-alpha.20", - "@backstage/plugin-welcome": "^0.1.1-alpha.20", - "@backstage/test-utils": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/plugin-api-docs": "^0.1.1-alpha.21", + "@backstage/plugin-catalog": "^0.1.1-alpha.21", + "@backstage/plugin-circleci": "^0.1.1-alpha.21", + "@backstage/plugin-explore": "^0.1.1-alpha.21", + "@backstage/plugin-github-actions": "^0.1.1-alpha.21", + "@backstage/plugin-gitops-profiles": "^0.1.1-alpha.21", + "@backstage/plugin-graphiql": "^0.1.1-alpha.21", + "@backstage/plugin-jenkins": "^0.1.1-alpha.21", + "@backstage/plugin-lighthouse": "^0.1.1-alpha.21", + "@backstage/plugin-newrelic": "^0.1.1-alpha.21", + "@backstage/plugin-register-component": "^0.1.1-alpha.21", + "@backstage/plugin-rollbar": "^0.1.1-alpha.21", + "@backstage/plugin-scaffolder": "^0.1.1-alpha.21", + "@backstage/plugin-sentry": "^0.1.1-alpha.21", + "@backstage/plugin-tech-radar": "^0.1.1-alpha.21", + "@backstage/plugin-techdocs": "^0.1.1-alpha.21", + "@backstage/plugin-welcome": "^0.1.1-alpha.21", + "@backstage/test-utils": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@octokit/rest": "^18.0.0", diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 92d301d7e3..2f82634a2e 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-common", "description": "Common functionality library for Backstage backends", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -29,9 +29,9 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/cli-common": "^0.1.1-alpha.20", - "@backstage/config": "^0.1.1-alpha.20", - "@backstage/config-loader": "^0.1.1-alpha.20", + "@backstage/cli-common": "^0.1.1-alpha.21", + "@backstage/config": "^0.1.1-alpha.21", + "@backstage/config-loader": "^0.1.1-alpha.21", "@types/cors": "^2.8.6", "@types/express": "^4.17.6", "compression": "^1.7.4", @@ -57,7 +57,7 @@ } }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", "@types/compression": "^1.7.0", "@types/http-errors": "^1.6.3", "@types/morgan": "^1.9.0", diff --git a/packages/backend/package.json b/packages/backend/package.json index 7393ede81e..2509c006d7 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "dist/index.cjs.js", "types": "src/index.ts", "private": true, @@ -18,22 +18,22 @@ "migrate:create": "knex migrate:make -x ts" }, "dependencies": { - "example-app": "^0.1.1-alpha.20", - "@backstage/backend-common": "^0.1.1-alpha.20", - "@backstage/catalog-model": "^0.1.1-alpha.20", - "@backstage/config": "^0.1.1-alpha.20", - "@backstage/plugin-app-backend": "^0.1.1-alpha.20", - "@backstage/plugin-auth-backend": "^0.1.1-alpha.20", - "@backstage/plugin-catalog-backend": "^0.1.1-alpha.20", - "@backstage/plugin-graphql-backend": "^0.1.1-alpha.20", - "@backstage/plugin-identity-backend": "^0.1.1-alpha.20", - "@backstage/plugin-proxy-backend": "^0.1.1-alpha.20", - "@backstage/plugin-rollbar-backend": "^0.1.1-alpha.20", - "@backstage/plugin-scaffolder-backend": "^0.1.1-alpha.20", - "@backstage/plugin-sentry-backend": "^0.1.1-alpha.20", - "@backstage/plugin-techdocs-backend": "^0.1.1-alpha.20", + "@backstage/backend-common": "^0.1.1-alpha.21", + "@backstage/catalog-model": "^0.1.1-alpha.21", + "@backstage/config": "^0.1.1-alpha.21", + "@backstage/plugin-app-backend": "^0.1.1-alpha.21", + "@backstage/plugin-auth-backend": "^0.1.1-alpha.21", + "@backstage/plugin-catalog-backend": "^0.1.1-alpha.21", + "@backstage/plugin-graphql-backend": "^0.1.1-alpha.21", + "@backstage/plugin-identity-backend": "^0.1.1-alpha.21", + "@backstage/plugin-proxy-backend": "^0.1.1-alpha.21", + "@backstage/plugin-rollbar-backend": "^0.1.1-alpha.21", + "@backstage/plugin-scaffolder-backend": "^0.1.1-alpha.21", + "@backstage/plugin-sentry-backend": "^0.1.1-alpha.21", + "@backstage/plugin-techdocs-backend": "^0.1.1-alpha.21", "@octokit/rest": "^18.0.0", "dockerode": "^3.2.0", + "example-app": "^0.1.1-alpha.21", "express": "^4.17.1", "knex": "^0.21.1", "pg": "^8.3.0", @@ -42,7 +42,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", "@types/dockerode": "^2.5.32", "@types/express": "^4.17.6", "@types/express-serve-static-core": "^4.17.5", diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index 69c91dbe8f..0d18125d43 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/catalog-model", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.20", + "@backstage/config": "^0.1.1-alpha.21", "@types/json-schema": "^7.0.5", "@types/yup": "^0.28.2", "json-schema": "^0.2.5", @@ -29,7 +29,7 @@ "yup": "^0.29.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", "@types/express": "^4.17.6", "@types/jest": "^26.0.7", "@types/lodash": "^4.14.151", diff --git a/packages/cli-common/package.json b/packages/cli-common/package.json index f76fcbb1da..4132907e70 100644 --- a/packages/cli-common/package.json +++ b/packages/cli-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli-common", "description": "Common functionality used by cli, backend, and create-app", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "private": false, "main": "src/index.ts", "types": "src/index.ts", diff --git a/packages/cli/package.json b/packages/cli/package.json index 6a2b02e9d4..9d6b1c054f 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli", "description": "CLI for developing Backstage plugins and apps", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "private": false, "publishConfig": { "access": "public" @@ -28,9 +28,9 @@ "backstage-cli": "bin/backstage-cli" }, "dependencies": { - "@backstage/cli-common": "^0.1.1-alpha.20", - "@backstage/config": "^0.1.1-alpha.20", - "@backstage/config-loader": "^0.1.1-alpha.20", + "@backstage/cli-common": "^0.1.1-alpha.21", + "@backstage/config": "^0.1.1-alpha.21", + "@backstage/config-loader": "^0.1.1-alpha.21", "@hot-loader/react-dom": "^16.13.0", "@lerna/package-graph": "^3.18.5", "@lerna/project": "^3.18.0", diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json index 4eda5f8ba8..92d20ef1e7 100644 --- a/packages/config-loader/package.json +++ b/packages/config-loader/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/config-loader", "description": "Config loading functionality used by Backstage backend, and CLI", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "private": false, "publishConfig": { "access": "public", @@ -30,7 +30,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.20", + "@backstage/config": "^0.1.1-alpha.21", "fs-extra": "^9.0.0", "yaml": "^1.9.2", "yup": "^0.29.1" diff --git a/packages/config/package.json b/packages/config/package.json index a991a73621..236964f2bd 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/config", "description": "Config API used by Backstage core, backend, and CLI", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "private": false, "publishConfig": { "access": "public", diff --git a/packages/core-api/package.json b/packages/core-api/package.json index e557719a4f..a5e23796cd 100644 --- a/packages/core-api/package.json +++ b/packages/core-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-api", "description": "Internal Core API used by Backstage plugins and apps", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "private": false, "publishConfig": { "access": "public", @@ -29,8 +29,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/config": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@types/react": "^16.9", @@ -41,8 +41,8 @@ "zen-observable": "^0.8.15" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/test-utils-core": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/test-utils-core": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/packages/core/package.json b/packages/core/package.json index b51f0dd554..d6731aca9a 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core", "description": "Core API used by Backstage plugins and apps", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "private": false, "publishConfig": { "access": "public", @@ -29,9 +29,9 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.20", - "@backstage/core-api": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/config": "^0.1.1-alpha.21", + "@backstage/core-api": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -54,8 +54,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/test-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/test-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 7de2a9559c..2d0d4a5758 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/create-app", "description": "Create app package for Backstage", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "private": false, "publishConfig": { "access": "public" @@ -27,7 +27,7 @@ "start": "nodemon --" }, "dependencies": { - "@backstage/cli-common": "^0.1.1-alpha.20", + "@backstage/cli-common": "^0.1.1-alpha.21", "chalk": "^4.0.0", "commander": "^6.1.0", "fs-extra": "^9.0.0", diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 5b9c1da6fb..c917130cbd 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/dev-utils", "description": "Utilities for developing Backstage plugins.", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "private": false, "publishConfig": { "access": "public", @@ -29,10 +29,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/test-utils": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/test-utils": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@testing-library/jest-dom": "^5.10.1", diff --git a/packages/docgen/package.json b/packages/docgen/package.json index 46f0e32902..c75ea53faf 100644 --- a/packages/docgen/package.json +++ b/packages/docgen/package.json @@ -1,7 +1,7 @@ { "name": "docgen", "description": "Tool for generating API Documentation for itself", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "private": true, "homepage": "https://backstage.io", "repository": { diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index a32595b165..0af233ec8e 100644 --- a/packages/e2e-test/package.json +++ b/packages/e2e-test/package.json @@ -1,7 +1,7 @@ { "name": "e2e-test", "description": "E2E test for verifying Backstage packages", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "private": true, "homepage": "https://backstage.io", "repository": { @@ -21,7 +21,7 @@ "test:e2e": "yarn start" }, "devDependencies": { - "@backstage/cli-common": "^0.1.1-alpha.20", + "@backstage/cli-common": "^0.1.1-alpha.21", "@types/fs-extra": "^9.0.1", "@types/node": "^13.7.2", "fs-extra": "^9.0.0", diff --git a/packages/storybook/package.json b/packages/storybook/package.json index 8ade556ee8..35b609eebf 100644 --- a/packages/storybook/package.json +++ b/packages/storybook/package.json @@ -1,6 +1,6 @@ { "name": "storybook", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "description": "Storybook build for core package", "private": true, "scripts": { @@ -14,7 +14,7 @@ ] }, "dependencies": { - "@backstage/theme": "^0.1.1-alpha.20" + "@backstage/theme": "^0.1.1-alpha.21" }, "devDependencies": { "@storybook/addon-actions": "^5.3.17", diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 4dcdfa4d20..222620f976 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -1,7 +1,7 @@ { "name": "@techdocs/cli", "description": "CLI for running TechDocs locally.", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "private": false, "publishConfig": { "access": "public" @@ -44,7 +44,7 @@ "ext": "ts" }, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", "commander": "^6.1.0", "fs-extra": "^9.0.1", "http-proxy": "^1.18.1", diff --git a/packages/test-utils-core/package.json b/packages/test-utils-core/package.json index 172228759a..8439bee779 100644 --- a/packages/test-utils-core/package.json +++ b/packages/test-utils-core/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/test-utils-core", "description": "Utilities to test Backstage core", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "private": false, "publishConfig": { "access": "public", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index fbc3c1e57a..d28b66a9ed 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/test-utils", "description": "Utilities to test Backstage plugins and apps.", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "private": false, "publishConfig": { "access": "public", @@ -29,10 +29,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/core-api": "^0.1.1-alpha.20", - "@backstage/test-utils-core": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/core-api": "^0.1.1-alpha.21", + "@backstage/test-utils-core": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", diff --git a/packages/theme/package.json b/packages/theme/package.json index dbe6f9a366..e946482f32 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/theme", "description": "material-ui theme for use with Backstage.", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "private": false, "publishConfig": { "access": "public", @@ -31,7 +31,7 @@ "@material-ui/core": "^4.9.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20" + "@backstage/cli": "^0.1.1-alpha.21" }, "files": [ "dist" diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index a2ec96ee67..644c6ed63a 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-api-docs", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,10 +20,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.20", - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/plugin-catalog": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/catalog-model": "^0.1.1-alpha.21", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/plugin-catalog": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@kyma-project/asyncapi-react": "^0.11.0", "@material-icons/font": "^1.0.2", "@material-ui/core": "^4.9.1", @@ -36,9 +36,9 @@ "swagger-ui-react": "^3.31.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", - "@backstage/test-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", + "@backstage/test-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index 46cd8dcf25..e6c3dde7b6 100644 --- a/plugins/app-backend/package.json +++ b/plugins/app-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-app-backend", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,8 +20,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.20", - "@backstage/config-loader": "^0.1.1-alpha.20", + "@backstage/backend-common": "^0.1.1-alpha.21", + "@backstage/config-loader": "^0.1.1-alpha.21", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^3.0.3", @@ -30,7 +30,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", "@types/supertest": "^2.0.8", "msw": "^0.19.5", "supertest": "^4.0.2" diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index e5838c9011..4a03ef29a0 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,8 +20,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.20", - "@backstage/config": "^0.1.1-alpha.20", + "@backstage/backend-common": "^0.1.1-alpha.21", + "@backstage/config": "^0.1.1-alpha.21", "@types/express": "^4.17.6", "body-parser": "^1.19.0", "compression": "^1.7.4", @@ -50,7 +50,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", "@types/body-parser": "^1.19.0", "@types/cookie-parser": "^1.4.2", "@types/jwt-decode": "2.2.1", diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 82b3074c54..c1b20ed7bb 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,9 +22,9 @@ "mock-data:local": "./scripts/mock-data-local.sh" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.20", - "@backstage/catalog-model": "^0.1.1-alpha.20", - "@backstage/config": "^0.1.1-alpha.20", + "@backstage/backend-common": "^0.1.1-alpha.21", + "@backstage/catalog-model": "^0.1.1-alpha.21", + "@backstage/config": "^0.1.1-alpha.21", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^3.0.3", @@ -41,7 +41,7 @@ "yup": "^0.29.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", "@types/lodash": "^4.14.151", "@types/node-fetch": "^2.5.7", "@types/supertest": "^2.0.8", diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 0f82add554..0b775e84ba 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,15 +21,15 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.20", - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/plugin-api-docs": "^0.1.1-alpha.20", - "@backstage/plugin-github-actions": "^0.1.1-alpha.20", - "@backstage/plugin-jenkins": "^0.1.1-alpha.20", - "@backstage/plugin-scaffolder": "^0.1.1-alpha.20", - "@backstage/plugin-sentry": "^0.1.1-alpha.20", - "@backstage/plugin-techdocs": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/catalog-model": "^0.1.1-alpha.21", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/plugin-api-docs": "^0.1.1-alpha.21", + "@backstage/plugin-github-actions": "^0.1.1-alpha.21", + "@backstage/plugin-jenkins": "^0.1.1-alpha.21", + "@backstage/plugin-scaffolder": "^0.1.1-alpha.21", + "@backstage/plugin-sentry": "^0.1.1-alpha.21", + "@backstage/plugin-techdocs": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -42,9 +42,9 @@ "swr": "^0.3.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", - "@backstage/test-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", + "@backstage/test-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/react-hooks": "^3.3.0", diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 8515e12a8e..b5824d3869 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-circleci", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "postpack": "backstage-cli postpack" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -36,8 +36,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/explore/package.json b/plugins/explore/package.json index 12d6e8073e..42176c45cf 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-explore", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,9 +32,9 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", - "@backstage/test-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", + "@backstage/test-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index 686f85e23e..2dc3c9fa61 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-github-actions", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,11 +22,11 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.20", - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/core-api": "^0.1.1-alpha.20", - "@backstage/plugin-catalog": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/catalog-model": "^0.1.1-alpha.21", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/core-api": "^0.1.1-alpha.21", + "@backstage/plugin-catalog": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -39,8 +39,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index bd26f51a3e..dc32a4df14 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gitops-profiles", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,8 +32,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 0c0ae53171..cc1a0a7204 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphiql", "description": "Backstage plugin for browsing GraphQL APIs", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "private": false, "publishConfig": { "access": "public", @@ -31,8 +31,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -43,9 +43,9 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", - "@backstage/test-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", + "@backstage/test-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/graphql/package.json b/plugins/graphql/package.json index 045cd471a1..1612398ea9 100644 --- a/plugins/graphql/package.json +++ b/plugins/graphql/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-graphql-backend", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.20", + "@backstage/backend-common": "^0.1.1-alpha.21", "@types/express": "^4.17.6", "apollo-server": "^2.16.0", "apollo-server-express": "^2.16.0", @@ -32,7 +32,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", "@types/supertest": "^2.0.8", "eslint-plugin-graphql": "^4.0.0", "msw": "^0.20.5", diff --git a/plugins/identity-backend/package.json b/plugins/identity-backend/package.json index 554e51aea0..18db7c9220 100644 --- a/plugins/identity-backend/package.json +++ b/plugins/identity-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-identity-backend", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.20", + "@backstage/backend-common": "^0.1.1-alpha.21", "@types/express": "^4.17.6", "compression": "^1.7.4", "cors": "^2.8.5", @@ -33,7 +33,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", "jest-fetch-mock": "^3.0.3" }, "files": [ diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index 73ac0344e4..da1754749f 100644 --- a/plugins/jenkins/package.json +++ b/plugins/jenkins/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-jenkins", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.20", - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/catalog-model": "^0.1.1-alpha.21", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -35,8 +35,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 12cff879c0..647215f7f8 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-lighthouse", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/config": "^0.1.1-alpha.20", - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/config": "^0.1.1-alpha.21", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -34,9 +34,9 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", - "@backstage/test-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", + "@backstage/test-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index 007535a832..84f066edae 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-newrelic", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -31,8 +31,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index f924242ef0..9f3bc16103 100644 --- a/plugins/proxy-backend/package.json +++ b/plugins/proxy-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-proxy-backend", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -19,8 +19,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.20", - "@backstage/config": "^0.1.1-alpha.20", + "@backstage/backend-common": "^0.1.1-alpha.21", + "@backstage/config": "^0.1.1-alpha.21", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^3.0.3", @@ -34,7 +34,7 @@ "yup": "^0.29.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", "@types/node-fetch": "^2.5.7", "@types/supertest": "^2.0.8", "@types/uuid": "^8.0.0", diff --git a/plugins/register-component/package.json b/plugins/register-component/package.json index 106f55714f..0064d50aaa 100644 --- a/plugins/register-component/package.json +++ b/plugins/register-component/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-register-component", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,10 +21,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.20", - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/plugin-catalog": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/catalog-model": "^0.1.1-alpha.21", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/plugin-catalog": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -36,8 +36,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 9bc35185ce..7fc1b27e64 100644 --- a/plugins/rollbar-backend/package.json +++ b/plugins/rollbar-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-rollbar-backend", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,8 +20,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.20", - "@backstage/config": "^0.1.1-alpha.20", + "@backstage/backend-common": "^0.1.1-alpha.21", + "@backstage/config": "^0.1.1-alpha.21", "@types/express": "^4.17.6", "axios": "^0.19.2", "camelcase-keys": "^6.2.2", @@ -37,7 +37,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", "@types/supertest": "^2.0.8", "jest-fetch-mock": "^3.0.3", "supertest": "^4.0.2" diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index 1971dc77a9..9c5343247c 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-rollbar", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -35,9 +35,9 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", - "@backstage/test-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", + "@backstage/test-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/react-hooks": "^3.3.0", diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 67ca4e4c61..ef429cf94b 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.20", - "@backstage/catalog-model": "^0.1.1-alpha.20", - "@backstage/config": "^0.1.1-alpha.20", + "@backstage/backend-common": "^0.1.1-alpha.21", + "@backstage/catalog-model": "^0.1.1-alpha.21", + "@backstage/config": "^0.1.1-alpha.21", "@octokit/rest": "^18.0.0", "@types/dockerode": "^2.5.32", "@types/express": "^4.17.6", @@ -44,7 +44,7 @@ "yaml": "^1.10.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", "@octokit/types": "^5.0.1", "@types/fs-extra": "^9.0.1", "@types/git-url-parse": "^9.0.0", diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index ba0e01ac1b..7497cbe024 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,10 +21,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.20", - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/plugin-catalog": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/catalog-model": "^0.1.1-alpha.21", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/plugin-catalog": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -41,9 +41,9 @@ "swr": "^0.3.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", - "@backstage/test-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", + "@backstage/test-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/sentry-backend/package.json b/plugins/sentry-backend/package.json index 0bc4ee59af..ea91839bfb 100644 --- a/plugins/sentry-backend/package.json +++ b/plugins/sentry-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sentry-backend", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -20,7 +20,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.20", + "@backstage/backend-common": "^0.1.1-alpha.21", "@types/express": "^4.17.6", "axios": "^0.19.2", "compression": "^1.7.4", @@ -34,7 +34,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", "jest-fetch-mock": "^3.0.3" }, "files": [ diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index 721619509f..d5b29cc307 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sentry", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -34,8 +34,8 @@ "timeago.js": "^4.0.2" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index 428ff929fb..4039f40878 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-radar", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/test-utils-core": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/test-utils-core": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -35,8 +35,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index 928a0659b1..00650ccca8 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-backend", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -21,9 +21,9 @@ "mock-data": "./scripts/mock-data.sh" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.20", - "@backstage/catalog-model": "^0.1.1-alpha.20", - "@backstage/config": "^0.1.1-alpha.20", + "@backstage/backend-common": "^0.1.1-alpha.21", + "@backstage/catalog-model": "^0.1.1-alpha.21", + "@backstage/config": "^0.1.1-alpha.21", "@types/dockerode": "^2.5.34", "@types/express": "^4.17.6", "dockerode": "^3.2.1", @@ -37,7 +37,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", "@types/node-fetch": "^2.5.7", "supertest": "^4.0.2" }, diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 4654213f8c..2d63c9dd53 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,12 +22,12 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.20", - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/core-api": "^0.1.1-alpha.20", - "@backstage/plugin-catalog": "^0.1.1-alpha.20", - "@backstage/test-utils": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/catalog-model": "^0.1.1-alpha.21", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/core-api": "^0.1.1-alpha.21", + "@backstage/plugin-catalog": "^0.1.1-alpha.21", + "@backstage/test-utils": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -40,8 +40,8 @@ "sanitize-html": "^1.27.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/plugins/welcome/package.json b/plugins/welcome/package.json index 972e081ae1..2d754a51a6 100644 --- a/plugins/welcome/package.json +++ b/plugins/welcome/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-welcome", - "version": "0.1.1-alpha.20", + "version": "0.1.1-alpha.21", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -21,8 +21,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.20", - "@backstage/theme": "^0.1.1-alpha.20", + "@backstage/core": "^0.1.1-alpha.21", + "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,8 +32,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.20", - "@backstage/dev-utils": "^0.1.1-alpha.20", + "@backstage/cli": "^0.1.1-alpha.21", + "@backstage/dev-utils": "^0.1.1-alpha.21", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", From aa2eeb8c49aae07d2bf67df6864c432c4f48e0a7 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Tue, 1 Sep 2020 14:19:29 +0200 Subject: [PATCH 316/656] fix: e2e tsc --- packages/e2e-test/src/e2e-test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/e2e-test/src/e2e-test.ts b/packages/e2e-test/src/e2e-test.ts index 6dab8caafb..4942a5abf5 100644 --- a/packages/e2e-test/src/e2e-test.ts +++ b/packages/e2e-test/src/e2e-test.ts @@ -266,7 +266,7 @@ async function createPlugin(pluginName: string, appDir: string) { /** * Start serving the newly created app and make sure that the create plugin is rendering correctly */ -async function testAppServe(pluginName: string, appDir: string) { +async function testAppServe(_pluginName: string, appDir: string) { const startApp = spawnPiped(['yarn', 'start'], { cwd: appDir, }); From ee0310213c41e385ec9c6bbab927392b8f66f676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Tue, 1 Sep 2020 14:27:33 +0200 Subject: [PATCH 317/656] Tweaks to plugin marketplace (#2209) * Tweaks to plugin marketplace * Add plugin details to roadmap * Update README.md * Link to plugins from home * Update circleci.yaml --- CONTRIBUTING.md | 7 +- README.md | 2 +- docs/overview/roadmap.md | 21 ++-- microsite/core/Footer.js | 3 + microsite/data/plugins/api-docs.yaml | 2 +- microsite/data/plugins/circleci.yaml | 2 +- microsite/data/plugins/github-actions.yaml | 13 +++ microsite/data/plugins/tech-radar.yaml | 2 +- microsite/pages/en/index.js | 10 +- microsite/pages/en/plugins.js | 38 ++++++- microsite/static/css/plugins.css | 115 +++++++++++---------- 11 files changed, 133 insertions(+), 82 deletions(-) create mode 100644 microsite/data/plugins/github-actions.yaml diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5b8febd1d2..853332f74d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,7 +1,4 @@ ---- -id: CONTRIBUTING -title: Contributing ---- +# Contributing to Backstage Our vision for Backstage is for it to become the trusted standard toolbox (read: UX layer) for the open source infrastructure landscape. Think of it like Kubernetes for developer experience. We realize this is an ambitious goal. We can’t do it alone. @@ -31,7 +28,7 @@ What kind of plugins should/could be created? Some inspiration from the 120+ plu ## Suggesting a plugin -If you start developing a plugin that you aim to release as open source, we suggest that you create a new [new Issue](https://github.com/spotify/backstage/issues/new?template=plugin_template.md). This helps the community know what plugins are in development. +If you start developing a plugin that you aim to release as open source, we suggest that you create a new [new Issue](https://github.com/spotify/backstage/issues/new?labels=plugin&template=plugin_template.md&title=%5BPlugin%5D+THE+PLUGIN+NAME). This helps the community know what plugins are in development. You can also use this process if you have an idea for a good plugin but you hope that someone else will pick up the work. diff --git a/README.md b/README.md index b5e8704548..4009864edc 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ Take a look at the [Getting Started](https://backstage.io/docs/getting-started/i ## Documentation -- [Main documentation](https://backstage.io/docs/overview/what-is-backstage) +- [Main documentation](https://backstage.io/docs) - [Service Catalog](https://backstage.io/docs/features/software-catalog/software-catalog-overview) - [Architecture](https://backstage.io/docs/overview/architecture-terminology) ([Decisions](https://backstage.io/docs/architecture-decisions/adrs-overview)) - [Designing for Backstage](https://backstage.io/docs/dls/design) diff --git a/docs/overview/roadmap.md b/docs/overview/roadmap.md index a84bc525c9..5a06f4544f 100644 --- a/docs/overview/roadmap.md +++ b/docs/overview/roadmap.md @@ -79,18 +79,26 @@ guidelines to get started. - Further improvements to platform documentation +### Plugins + +Building and maintaining [plugins](https://backstage.io/plugins) is the work of +the entire Backstage community. + +A list of plugins that are in development is +[available here](https://github.com/spotify/backstage/issues?q=is%3Aissue+is%3Aopen+label%3Aplugin+sort%3Areactions-%2B1-desc). +We strongly recommend to upvote 👠plugins you are interested in. This helps us +and the community prioritize what plugins to build. + +Are you missing a plugin for your favorite tool? Please +[suggest a new one](https://github.com/spotify/backstage/issues/new?labels=plugin&template=plugin_template.md&title=%5BPlugin%5D+THE+PLUGIN+NAME). +Chances are that someone will jump in and help build it. + ### Future work 🔮 - **[Backstage platform is stable](https://github.com/spotify/backstage/milestone/19)** - The platform APIs and features are stable and can be depended on for production use. After this plugins will require little to no maintenance. -- **[Plugin marketplace](https://github.com/spotify/backstage/issues/2009)** - - As the ecosystem of Backstage plugins continues to grow it is becoming - increasingly hard to keep track of what plugins are available. To solve this - we imagine a "Plugin marketplace" that helps with discovery and installation - of plugins. - - **Deploy a product demo at `demo.backstage.io`** - Deploy a typical Backstage deployment available publicly so that people can click around and get a feel for the product without having to install anything. @@ -111,6 +119,7 @@ guidelines to get started. ### Completed milestones ✅ +- [Plugin marketplace](https://backstage.io/plugins) - [Improved and move documentation to backstage.io](https://backstage.io/docs/overview/what-is-backstage) - [Backstage Service Catalog (alpha)](https://backstage.io/blog/2020/06/22/backstage-service-catalog-alpha) - [Backstage Software Templates (alpha)](https://backstage.io/blog/2020/08/05/announcing-backstage-software-templates) diff --git a/microsite/core/Footer.js b/microsite/core/Footer.js index 407bebca84..761862c1fc 100644 --- a/microsite/core/Footer.js +++ b/microsite/core/Footer.js @@ -45,6 +45,9 @@ class Footer extends React.Component {
Community
Support chatroom + + Contributing + Subscribe to our newsletter diff --git a/microsite/data/plugins/api-docs.yaml b/microsite/data/plugins/api-docs.yaml index b7f85b62b3..babcbf74f1 100644 --- a/microsite/data/plugins/api-docs.yaml +++ b/microsite/data/plugins/api-docs.yaml @@ -5,5 +5,5 @@ authorUrl: https://sda.se/ category: Discovery description: Components to discover and display API entities as an extension to the catalog plugin. documentation: https://github.com/spotify/backstage/blob/master/plugins/api-docs/README.md -iconUrl: https://github.com/spotify/backstage/raw/master/plugins/api-docs/docs/entity_tab_api.png +iconUrl: https://thecoders.io/wp-content/uploads/2019/11/tech-swagger.svg npmPackageName: '@backstage/plugin-api-docs' diff --git a/microsite/data/plugins/circleci.yaml b/microsite/data/plugins/circleci.yaml index c8a3677614..6937064815 100644 --- a/microsite/data/plugins/circleci.yaml +++ b/microsite/data/plugins/circleci.yaml @@ -5,5 +5,5 @@ authorUrl: https://www.spotify.com/ category: CI description: Automate your development process with CI hosted in the cloud or on a private server. documentation: https://github.com/spotify/backstage/tree/master/plugins/circleci -iconUrl: https://d3r49iyjzglexf.cloudfront.net/logo-wordmark-26f8eaea9b0f6e13b90d3f4a8fd8fda31490f5af41daab98bbede45037682576.svg +iconUrl: https://www.saaves.com/storage/brochure/logo-circleci-icon1583764538.png npmPackageName: '@backstage/plugin-circleci' diff --git a/microsite/data/plugins/github-actions.yaml b/microsite/data/plugins/github-actions.yaml new file mode 100644 index 0000000000..b384980b2a --- /dev/null +++ b/microsite/data/plugins/github-actions.yaml @@ -0,0 +1,13 @@ +--- +title: GitHub Actions +author: Spotify +authorUrl: https://www.spotify.com/ +category: CI +description: GitHub Actions makes it easy to automate all your software workflows, now with world-class CI/CD. Build, test, and deploy your code right from GitHub. +documentation: https://github.com/spotify/backstage/tree/master/plugins/github-actions +iconUrl: https://avatars2.githubusercontent.com/u/44036562?s=400&v=4 +npmPackageName: '@backstage/plugin-github-actions' +tags: + - ci + - cd + - github diff --git a/microsite/data/plugins/tech-radar.yaml b/microsite/data/plugins/tech-radar.yaml index a20667e8f0..585e204b12 100644 --- a/microsite/data/plugins/tech-radar.yaml +++ b/microsite/data/plugins/tech-radar.yaml @@ -5,5 +5,5 @@ authorUrl: https://www.spotify.com/ category: Discovery description: Visualize the your company's official guidelines of different areas of software development. documentation: https://github.com/spotify/backstage/tree/master/plugins/tech-radar -iconUrl: https://github.com/spotify/backstage/raw/master/plugins/tech-radar/docs/screenshot.png +iconUrl: https://img.icons8.com/officel/2x/radar.png npmPackageName: '@backstage/plugin-tech-radar' diff --git a/microsite/pages/en/index.js b/microsite/pages/en/index.js index 986db4b732..7a58ede25f 100644 --- a/microsite/pages/en/index.js +++ b/microsite/pages/en/index.js @@ -455,12 +455,8 @@ class Index extends React.Component { Share with the community - Building{' '} - - open source plugins - {' '} - contributes to the entire Backstage ecosystem, which benefits - everyone + Building open source plugins contributes + to the entire Backstage ecosystem, which benefits everyone @@ -472,7 +468,7 @@ class Index extends React.Component { Build a plugin - + Contribute diff --git a/microsite/pages/en/plugins.js b/microsite/pages/en/plugins.js index 916f34c21e..8c5f017e24 100644 --- a/microsite/pages/en/plugins.js +++ b/microsite/pages/en/plugins.js @@ -29,13 +29,14 @@ const Plugins = () => (
-

Plugins

+

Plugin marketplace

+

Open source plugins that you can add to your Backstage deployment

- Add Plugin + Add to marketplace
@@ -69,13 +70,44 @@ const Plugins = () => ( className="PluginCardLink ButtonFilled" href={documentation} > - docs + Explore
), )} +
+
+

+ Do you have an existing plugin that you want to add to the + Marketplace? +

+

+ + Add to marketplace + +

+
+ +

+ See what plugins are already{' '} + + in progress + {' '} + and ðŸ‘. Missing a plugin for your favorite tool? Please{' '} + + suggest + {' '} + a new one. +

+
+
diff --git a/microsite/static/css/plugins.css b/microsite/static/css/plugins.css index 042e2954e1..96fe3dac35 100644 --- a/microsite/static/css/plugins.css +++ b/microsite/static/css/plugins.css @@ -1,111 +1,112 @@ .PluginCard { - background-color: #272822; - height: 100%; - padding: 16px; - display: flex; - flex-direction: column; + background-color: #272822; + height: 100%; + padding: 16px; + display: flex; + flex-direction: column; } .grid { - display: grid; - grid-gap: 1rem; - grid-template-columns: repeat(4, 1fr); - grid-auto-rows: 1fr; - padding-top: 32px; + display: grid; + grid-gap: 1rem; + grid-template-columns: repeat(4, 1fr); + grid-auto-rows: 1fr; + padding-top: 32px; } @media (max-width: 1200px) { - .grid { - grid-template-columns: repeat(3, 1fr); - } + .grid { + grid-template-columns: repeat(3, 1fr); + } } @media only screen and (max-width: 815px) { - .grid { - grid-template-columns: repeat(2, 1fr); - } + .grid { + grid-template-columns: repeat(2, 1fr); + } } .PluginCard img { - float: left; - margin: 0px 16px 8px 0px; - height: 100px; - width: 100px; + float: left; + margin: 0px 16px 8px 0px; + height: 80px; + width: 80px; } .PluginCardHeader { - max-height: fit-content; - min-height: fit-content; + max-height: fit-content; + min-height: fit-content; } .PluginCardTitle { - color: white; - vertical-align: top; - margin: 8px 0px 0px 16px; + color: white; + vertical-align: top; + margin: 8px 0px 0px 16px; } .PluginAddNewButton { - position: absolute; - bottom: 16px; - right: 0px; + position: absolute; + bottom: 16px; + right: 0px; } .ButtonFilled { - padding: 4px 8px; - border-radius: 4px; - background-color: #36BAA2; - color: white; - margin-top: 36px; + padding: 4px 8px; + border-radius: 4px; + background-color: #36baa2; + color: white; + margin-top: 36px; } .ButtonFilled:hover { - border: 1px solid #36BAA2; - background-color: transparent; + border: 1px solid #36baa2; + background-color: transparent; } .ChipOutlined { - font-size: small; - border-radius: 16px; - padding: 2px 8px; - border: 1px solid #36BAA2; - color: #36BAA2; + font-size: small; + border-radius: 16px; + padding: 2px 8px; + border: 1px solid #36baa2; + color: #36baa2; } .PluginCardLink { - padding: 2px 8px; - position: absolute; - bottom: 0; - right: 0; + padding: 2px 8px; + position: absolute; + bottom: 0; + right: 0; } .PluginPageLayout { - margin: auto; - max-width: 1430px; - padding: 20px; + margin: auto; + max-width: 1430px; + padding: 20px; } .PluginPageHeader { - position: relative; + position: relative; } .PluginPageHeader h2 { - display: inline-block; + display: inline-block; } .PluginCardBody { - padding-top: 8px; + padding-top: 8px; } .PluginCardFooter { - position: relative; - min-height: 2em; + position: relative; + min-height: 2em; } -.Author, .Author a { - margin-bottom: 0.25em; - color: rgba(255,255,255, 0.6); +.Author, +.Author a { + margin-bottom: 0.25em; + color: rgba(255, 255, 255, 0.6); } - .Author a:hover { - color: white; +.Author a:hover { + color: white; } From 379e5186bd7cebf60b7c72d15aed333325090fb4 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 1 Sep 2020 14:42:19 +0200 Subject: [PATCH 318/656] cli: set NODE_ENV to test when running tests if not already set --- packages/cli/src/commands/testCommand.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/cli/src/commands/testCommand.ts b/packages/cli/src/commands/testCommand.ts index 9969aee3b4..2c3f9fe895 100644 --- a/packages/cli/src/commands/testCommand.ts +++ b/packages/cli/src/commands/testCommand.ts @@ -57,6 +57,12 @@ export default async (cmd: Command) => { } } + // This is the only thing that is not implemented by jest.run(), so we do it here instead + // https://github.com/facebook/jest/blob/cd8828f7bbec6e55b4df5e41e853a5133c4a3ee1/packages/jest-cli/bin/jest.js#L12 + if (!process.env.NODE_ENV) { + (process.env as any).NODE_ENV = 'test'; + } + // eslint-disable-next-line jest/no-jest-import await require('jest').run(args); }; From f234f17853b5421bfb77b7b11d3950d523fae8f0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 31 Aug 2020 16:44:36 +0200 Subject: [PATCH 319/656] cli: fix version management in create-app --- packages/cli/src/commands/create-plugin/createPlugin.ts | 7 ++++++- packages/cli/src/commands/plugin/diff.ts | 5 ++++- packages/cli/templates/default-plugin/package.json.hbs | 8 ++++---- .../templates/default-app/{lerna.json.hbs => lerna.json} | 2 +- 4 files changed, 15 insertions(+), 7 deletions(-) rename packages/create-app/templates/default-app/{lerna.json.hbs => lerna.json} (77%) diff --git a/packages/cli/src/commands/create-plugin/createPlugin.ts b/packages/cli/src/commands/create-plugin/createPlugin.ts index 47b883882b..5e6882a4a0 100644 --- a/packages/cli/src/commands/create-plugin/createPlugin.ts +++ b/packages/cli/src/commands/create-plugin/createPlugin.ts @@ -28,6 +28,7 @@ import { } from '../../lib/codeowners'; import { paths } from '../../lib/paths'; import { Task, templatingTask } from '../../lib/tasks'; +import { version as backstageVersion } from '../../lib/version'; const exec = promisify(execCb); @@ -239,7 +240,11 @@ export default async () => { await createTemporaryPluginFolder(tempDir); Task.section('Preparing files'); - await templatingTask(templateDir, tempDir, { ...answers, version }); + await templatingTask(templateDir, tempDir, { + ...answers, + version, + backstageVersion, + }); Task.section('Moving to final location'); await movePlugin(tempDir, pluginDir, answers.id); diff --git a/packages/cli/src/commands/plugin/diff.ts b/packages/cli/src/commands/plugin/diff.ts index 66db692ab4..99af093f2c 100644 --- a/packages/cli/src/commands/plugin/diff.ts +++ b/packages/cli/src/commands/plugin/diff.ts @@ -25,7 +25,7 @@ import { yesPromptFunc, } from '../../lib/diff'; import { paths } from '../../lib/paths'; -import { version } from '../../lib/version'; +import { version as backstageVersion } from '../../lib/version'; export type PluginData = { id: string; @@ -62,9 +62,12 @@ export default async (cmd: Command) => { promptFunc = yesPromptFunc; } + const { version } = await fs.readJson(paths.resolveTargetRoot('lerna.json')); + const data = await readPluginData(); const templateFiles = await diffTemplateFiles('default-plugin', { version, + backstageVersion, ...data, }); await handleAllFiles(fileHandlers, templateFiles, promptFunc); diff --git a/packages/cli/templates/default-plugin/package.json.hbs b/packages/cli/templates/default-plugin/package.json.hbs index 4e85bf39bd..38d4e41b5b 100644 --- a/packages/cli/templates/default-plugin/package.json.hbs +++ b/packages/cli/templates/default-plugin/package.json.hbs @@ -21,8 +21,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^{{version}}", - "@backstage/theme": "^{{version}}", + "@backstage/core": "^{{backstageVersion}}", + "@backstage/theme": "^{{backstageVersion}}", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -31,8 +31,8 @@ "react-use": "^15.3.3" }, "devDependencies": { - "@backstage/cli": "^{{version}}", - "@backstage/dev-utils": "^{{version}}", + "@backstage/cli": "^{{backstageVersion}}", + "@backstage/dev-utils": "^{{backstageVersion}}", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/packages/create-app/templates/default-app/lerna.json.hbs b/packages/create-app/templates/default-app/lerna.json similarity index 77% rename from packages/create-app/templates/default-app/lerna.json.hbs rename to packages/create-app/templates/default-app/lerna.json index ba627eaf80..322929db1d 100644 --- a/packages/create-app/templates/default-app/lerna.json.hbs +++ b/packages/create-app/templates/default-app/lerna.json @@ -2,5 +2,5 @@ "packages": ["packages/*", "plugins/*"], "npmClient": "yarn", "useWorkspaces": true, - "version": "{{version}}" + "version": "0.1.0" } From 9a99a92f8462c8ac7fc27eb09fe352918a106de6 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Tue, 1 Sep 2020 15:53:12 +0200 Subject: [PATCH 320/656] fix: e2e hanging --- packages/e2e-test/src/e2e-test.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/e2e-test/src/e2e-test.ts b/packages/e2e-test/src/e2e-test.ts index 4942a5abf5..f74c3f7166 100644 --- a/packages/e2e-test/src/e2e-test.ts +++ b/packages/e2e-test/src/e2e-test.ts @@ -63,6 +63,9 @@ async function main() { print('All tests successful, removing test dir'); await fs.remove(rootDir); + + // Just in case some child process was left hanging + process.exit(0); } /** From eee4283c65274db86ee2a47b93f6fb4d9246671f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 1 Sep 2020 17:32:37 +0200 Subject: [PATCH 321/656] catalog-backend: add Locations to the set of default allowed kinds --- .../features/software-catalog/configuration.md | 18 +++++++++--------- .../src/ingestion/CatalogRules.test.ts | 17 ++++++++++++++++- .../src/ingestion/CatalogRules.ts | 2 +- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/docs/features/software-catalog/configuration.md b/docs/features/software-catalog/configuration.md index 44e998d5a9..be6314e494 100644 --- a/docs/features/software-catalog/configuration.md +++ b/docs/features/software-catalog/configuration.md @@ -23,16 +23,16 @@ configuration. ## Catalog Rules By default the catalog will only allow ingestion of entities with the kind -`Component` and `API`. In order to allow entities of other kinds to be added, -you need to add rules to the catalog. Rules are added either in a separate -`catalog.rules` key, or added to statically configured locations. +`Component`, `API` and `Location`. In order to allow entities of other kinds to +be added, you need to add rules to the catalog. Rules are added either in a +separate `catalog.rules` key, or added to statically configured locations. For example, given the following configuration: ```yaml catalog: rules: - - allow: [Component, API, Template] + - allow: [Component, API, Location, Template] locations: - type: github @@ -41,13 +41,13 @@ catalog: - allow: [Group] ``` -We are able to add entities of kind `Component`, `API`, or `Template` from any -location, and `Group` entities from the `org-data.yaml`, which will also be read -as statically configured location. +We are able to add entities of kind `Component`, `API`, `Location`, or +`Template` from any location, and `Group` entities from the `org-data.yaml`, +which will also be read as statically configured location. Note that if the `catalog.rules` key is present it will replace the default -value, meaning that you need to add rules for `Component` and `API` kinds if you -want those to be allowed. +value, meaning that you need to add rules for the default kinds if you want +those to still be allowed. The following configuration will reject any kind of entities from being added to the catalog: diff --git a/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts b/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts index 794416786c..bb5c025c28 100644 --- a/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts +++ b/plugins/catalog-backend/src/ingestion/CatalogRules.test.ts @@ -28,6 +28,9 @@ const entity = { component: { kind: 'component', } as Entity, + location: { + kind: 'Location', + } as Entity, }; const location: Record = { @@ -51,6 +54,7 @@ describe('CatalogRulesEnforcer', () => { expect(enforcer.isAllowed(entity.user, location.x)).toBe(false); expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); expect(enforcer.isAllowed(entity.component, location.z)).toBe(false); + expect(enforcer.isAllowed(entity.location, location.z)).toBe(false); }); it('should deny all', () => { @@ -58,15 +62,21 @@ describe('CatalogRulesEnforcer', () => { expect(enforcer.isAllowed(entity.user, location.x)).toBe(false); expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); expect(enforcer.isAllowed(entity.component, location.z)).toBe(false); + expect(enforcer.isAllowed(entity.location, location.z)).toBe(false); }); it('should allow all', () => { const enforcer = new CatalogRulesEnforcer([ - { allow: [{ kind: 'User' }, { kind: 'Group' }, { kind: 'Component' }] }, + { + allow: ['User', 'Group', 'Component', 'Location'].map(kind => ({ + kind, + })), + }, ]); expect(enforcer.isAllowed(entity.user, location.x)).toBe(true); expect(enforcer.isAllowed(entity.group, location.y)).toBe(true); expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); + expect(enforcer.isAllowed(entity.location, location.z)).toBe(true); }); it('should deny groups', () => { @@ -121,6 +131,7 @@ describe('CatalogRulesEnforcer', () => { expect(enforcer.isAllowed(entity.user, location.x)).toBe(false); expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); + expect(enforcer.isAllowed(entity.location, location.z)).toBe(true); }); it('should deny all', () => { @@ -130,6 +141,7 @@ describe('CatalogRulesEnforcer', () => { expect(enforcer.isAllowed(entity.user, location.x)).toBe(false); expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); expect(enforcer.isAllowed(entity.component, location.z)).toBe(false); + expect(enforcer.isAllowed(entity.location, location.z)).toBe(false); }); it('should allow all', () => { @@ -156,6 +168,7 @@ describe('CatalogRulesEnforcer', () => { expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); expect(enforcer.isAllowed(entity.group, location.z)).toBe(false); expect(enforcer.isAllowed(entity.component, location.z)).toBe(true); + expect(enforcer.isAllowed(entity.location, location.z)).toBe(false); }); it('should allow groups from a specific github location', () => { @@ -182,6 +195,7 @@ describe('CatalogRulesEnforcer', () => { expect(enforcer.isAllowed(entity.group, location.y)).toBe(false); expect(enforcer.isAllowed(entity.group, location.z)).toBe(false); expect(enforcer.isAllowed(entity.component, location.z)).toBe(false); + expect(enforcer.isAllowed(entity.location, location.z)).toBe(false); }); it('should not care about location configuration in catalog.rules', () => { @@ -197,6 +211,7 @@ describe('CatalogRulesEnforcer', () => { expect(enforcer.isAllowed(entity.group, location.y)).toBe(true); expect(enforcer.isAllowed(entity.group, location.z)).toBe(true); expect(enforcer.isAllowed(entity.component, location.z)).toBe(false); + expect(enforcer.isAllowed(entity.location, location.z)).toBe(false); }); }); }); diff --git a/plugins/catalog-backend/src/ingestion/CatalogRules.ts b/plugins/catalog-backend/src/ingestion/CatalogRules.ts index 2b55ebef32..e964524bc7 100644 --- a/plugins/catalog-backend/src/ingestion/CatalogRules.ts +++ b/plugins/catalog-backend/src/ingestion/CatalogRules.ts @@ -50,7 +50,7 @@ export class CatalogRulesEnforcer { */ static readonly defaultRules: CatalogRule[] = [ { - allow: [{ kind: 'Component' }, { kind: 'API' }], + allow: ['Component', 'API', 'Location'].map(kind => ({ kind })), }, ]; From c8e77cfc45c69bae3b8dd91bb153b0654f44042c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 1 Sep 2020 18:28:39 +0200 Subject: [PATCH 322/656] app: mark as bundled --- packages/app/package.json | 1 + .../templates/default-app/packages/app/package.json.hbs | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/app/package.json b/packages/app/package.json index d32808b48b..6d9595ad1b 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -2,6 +2,7 @@ "name": "example-app", "version": "0.1.1-alpha.20", "private": true, + "bundled": true, "dependencies": { "@backstage/cli": "^0.1.1-alpha.20", "@backstage/core": "^0.1.1-alpha.20", diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index 7d34a94c7b..ecdc8a7f96 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -2,6 +2,7 @@ "name": "app", "version": "0.0.0", "private": true, + "bundled": true, "dependencies": { "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", From c319de51a7373ae7d057465d41ff22c321aaa82b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 1 Sep 2020 18:58:33 +0200 Subject: [PATCH 323/656] backend-common: add resolvePackagePath --- packages/backend-common/src/index.ts | 1 + packages/backend-common/src/paths.ts | 36 +++++++++++++++++++ plugins/app-backend/src/service/router.ts | 13 +++---- .../src/identity/DatabaseKeyStore.ts | 8 ++--- .../src/database/DatabaseManager.ts | 9 +++-- plugins/graphql/src/service/router.ts | 9 +++-- 6 files changed, 53 insertions(+), 23 deletions(-) create mode 100644 packages/backend-common/src/paths.ts diff --git a/packages/backend-common/src/index.ts b/packages/backend-common/src/index.ts index f499613851..c527f5fea1 100644 --- a/packages/backend-common/src/index.ts +++ b/packages/backend-common/src/index.ts @@ -20,4 +20,5 @@ export * from './errors'; export * from './logging'; export * from './middleware'; export * from './service'; +export * from './paths'; export * from './hot'; diff --git a/packages/backend-common/src/paths.ts b/packages/backend-common/src/paths.ts new file mode 100644 index 0000000000..402c0e2252 --- /dev/null +++ b/packages/backend-common/src/paths.ts @@ -0,0 +1,36 @@ +/* + * Copyright 2020 Spotify AB + * + * 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. + */ + +/* eslint-disable @typescript-eslint/camelcase */ + +import { resolve as resolvePath } from 'path'; + +/** + * Resolve a path relative to the root of a package directory. + * Additional path arguments are resolved relative to the package dir. + * + * This is particularly useful when you want to access assets shipped with + * your backend plugin package. When doing so, do not forget to include the assets + * in your published package by adding them to `files` in your `package.json`. + */ +export function resolvePackagePath(name: string, ...paths: string[]) { + const req = + typeof __non_webpack_require__ === 'undefined' + ? require + : __non_webpack_require__; + + return resolvePath(req.resolve(`${name}/package.json`), '..', ...paths); +} diff --git a/plugins/app-backend/src/service/router.ts b/plugins/app-backend/src/service/router.ts index ecc5b4fa4b..c9a06e4dda 100644 --- a/plugins/app-backend/src/service/router.ts +++ b/plugins/app-backend/src/service/router.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import { resolve as resolvePath, dirname } from 'path'; -import { notFoundHandler } from '@backstage/backend-common'; +import { resolve as resolvePath } from 'path'; +import { notFoundHandler, resolvePackagePath } from '@backstage/backend-common'; import express from 'express'; import Router from 'express-promise-router'; import { Logger } from 'winston'; @@ -23,19 +23,14 @@ import { injectEnvConfig } from '../lib/config'; export interface RouterOptions { logger: Logger; - appPackageName?: string; + appPackageName: string; staticFallbackHandler?: express.Handler; } export async function createRouter( options: RouterOptions, ): Promise { - const appDistDir = resolvePath( - dirname( - __non_webpack_require__.resolve(`${options.appPackageName}/package.json`), - ), - 'dist', - ); + const appDistDir = resolvePackagePath(options.appPackageName, 'dist'); options.logger.info(`Serving static app content from ${appDistDir}`); await injectEnvConfig({ diff --git a/plugins/auth-backend/src/identity/DatabaseKeyStore.ts b/plugins/auth-backend/src/identity/DatabaseKeyStore.ts index c175cd6e12..c24cac55be 100644 --- a/plugins/auth-backend/src/identity/DatabaseKeyStore.ts +++ b/plugins/auth-backend/src/identity/DatabaseKeyStore.ts @@ -15,13 +15,13 @@ */ import Knex from 'knex'; -import path from 'path'; import { utc } from 'moment'; +import { resolvePackagePath } from '@backstage/backend-common'; import { AnyJWK, KeyStore, StoredKey } from './types'; -const migrationsDir = path.resolve( - require.resolve('@backstage/plugin-auth-backend/package.json'), - '../migrations', +const migrationsDir = resolvePackagePath( + '@backstage/plugin-auth-backend', + 'migrations', ); const TABLE = 'signing_keys'; diff --git a/plugins/catalog-backend/src/database/DatabaseManager.ts b/plugins/catalog-backend/src/database/DatabaseManager.ts index 28751f4830..ce91cc737f 100644 --- a/plugins/catalog-backend/src/database/DatabaseManager.ts +++ b/plugins/catalog-backend/src/database/DatabaseManager.ts @@ -14,17 +14,16 @@ * limitations under the License. */ -import { getVoidLogger } from '@backstage/backend-common'; +import { getVoidLogger, resolvePackagePath } from '@backstage/backend-common'; import { makeValidator } from '@backstage/catalog-model'; import Knex from 'knex'; -import path from 'path'; import { Logger } from 'winston'; import { CommonDatabase } from './CommonDatabase'; import { Database } from './types'; -const migrationsDir = path.resolve( - require.resolve('@backstage/plugin-catalog-backend/package.json'), - '../migrations', +const migrationsDir = resolvePackagePath( + '@backstage/plugin-catalog-backend', + 'migrations', ); export type CreateDatabaseOptions = { diff --git a/plugins/graphql/src/service/router.ts b/plugins/graphql/src/service/router.ts index 0b91d7307a..df5185c1b1 100644 --- a/plugins/graphql/src/service/router.ts +++ b/plugins/graphql/src/service/router.ts @@ -14,17 +14,16 @@ * limitations under the License. */ -import { errorHandler } from '@backstage/backend-common'; +import { errorHandler, resolvePackagePath } from '@backstage/backend-common'; import express from 'express'; import Router from 'express-promise-router'; import { Logger } from 'winston'; import fs from 'fs'; -import path from 'path'; import { ApolloServer } from 'apollo-server-express'; -const schemaPath = path.resolve( - require.resolve('@backstage/plugin-graphql-backend/package.json'), - '../schema.gql', +const schemaPath = resolvePackagePath( + '@backstage/plugin-graphql-backend', + 'schema.gql', ); export interface RouterOptions { From 39b087bd0e6728260a545c47b2e804dd5cfeb752 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 1 Sep 2020 19:51:02 +0200 Subject: [PATCH 324/656] cli: remove dependencies from bundled packages to avoid install --- packages/cli/src/lib/packager/index.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/packages/cli/src/lib/packager/index.ts b/packages/cli/src/lib/packager/index.ts index d65d1af304..fda85dd68a 100644 --- a/packages/cli/src/lib/packager/index.ts +++ b/packages/cli/src/lib/packager/index.ts @@ -26,6 +26,7 @@ type LernaPackage = { private: boolean; location: string; scripts: Record; + get(key: string): any; }; type FileEntry = @@ -107,6 +108,26 @@ async function moveToDistWorkspace( strip: 1, }); await fs.remove(archivePath); + + // We remove the dependencies from package.json of packages that are marked + // as bundled, so that yarn doesn't try to install them. + if (target.get('bundled')) { + const pkgJson = await fs.readJson( + resolvePath(absoluteOutputPath, 'package.json'), + ); + delete pkgJson.dependencies; + delete pkgJson.devDependencies; + delete pkgJson.peerDependencies; + delete pkgJson.optionalDependencies; + + await fs.writeJson( + resolvePath(absoluteOutputPath, 'package.json'), + pkgJson, + { + spaces: 2, + }, + ); + } }), ); } From 98699478237b8ebb86dcbf4543c91fb2651800b6 Mon Sep 17 00:00:00 2001 From: NetPenguins Date: Tue, 1 Sep 2020 13:51:37 -0400 Subject: [PATCH 325/656] Return correct type, added modal for log visuals, added loading indications. --- .../src/api/GithubActionsApi.ts | 3 +- .../src/api/GithubActionsClient.ts | 3 +- .../WorkflowRunDetails/WorkflowRunDetails.tsx | 9 ++ .../WorkflowRunLogs/WorkflowRunLogs.tsx | 86 +++++++++++++++---- 4 files changed, 81 insertions(+), 20 deletions(-) diff --git a/plugins/github-actions/src/api/GithubActionsApi.ts b/plugins/github-actions/src/api/GithubActionsApi.ts index 4acb68296d..bf79e74351 100644 --- a/plugins/github-actions/src/api/GithubActionsApi.ts +++ b/plugins/github-actions/src/api/GithubActionsApi.ts @@ -19,6 +19,7 @@ import { ActionsListWorkflowRunsForRepoResponseData, ActionsGetWorkflowResponseData, ActionsGetWorkflowRunResponseData, + EndpointInterface, } from '@octokit/types'; export const githubActionsApiRef = createApiRef({ @@ -85,5 +86,5 @@ export type GithubActionsApi = { owner: string; repo: string; runId: number; - }) => Promise; + }) => Promise; }; diff --git a/plugins/github-actions/src/api/GithubActionsClient.ts b/plugins/github-actions/src/api/GithubActionsClient.ts index a3a68811db..6b22150ec0 100644 --- a/plugins/github-actions/src/api/GithubActionsClient.ts +++ b/plugins/github-actions/src/api/GithubActionsClient.ts @@ -20,6 +20,7 @@ import { ActionsListWorkflowRunsForRepoResponseData, ActionsGetWorkflowResponseData, ActionsGetWorkflowRunResponseData, + EndpointInterface, } from '@octokit/types'; export class GithubActionsClient implements GithubActionsApi { @@ -112,7 +113,7 @@ export class GithubActionsClient implements GithubActionsApi { owner: string; repo: string; runId: number; - }): Promise { + }): Promise { const workflow = await new Octokit({ auth: token }).actions.downloadJobLogsForWorkflowRun({ owner, repo, diff --git a/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx b/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx index 15fea5d197..a635eb9acb 100644 --- a/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx +++ b/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx @@ -138,9 +138,18 @@ const JobListItem = ({ job, className }: { job: Job; className: string }) => { + {job.status === "queued" || job.status === "in_progress" ? + + : + } + ); }; diff --git a/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx b/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx index eeb1ee7e3f..d2757c406f 100644 --- a/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx +++ b/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx @@ -15,37 +15,59 @@ */ import { + Accordion, + AccordionSummary, + CircularProgress, + Fade, LinearProgress, - ExpansionPanel, - Typography, makeStyles, + Modal, Theme, - ExpansionPanelSummary, + Tooltip, + Typography, + Zoom } from '@material-ui/core'; -import React, {Suspense} from 'react'; +import React, { Suspense } from 'react'; import { useEntityCompoundName } from '@backstage/plugin-catalog'; import { useDownloadWorkflowRunLogs } from './useDownloadWorkflowRunLogs'; import LinePart from 'react-lazylog/build/LinePart'; import { useProjectName } from '../useProjectName'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; +import DescriptionIcon from '@material-ui/icons/Description'; const LazyLog = React.lazy(() => import('react-lazylog/build/LazyLog')); const useStyles = makeStyles(() => ({ button: { order: -1, - marginRight: 0, + // marginRight: 0, marginLeft: '-20px', }, + modal: { + display: 'flex', + alignItems: 'center', + width: '85%', + height: '85%', + justifyContent: 'center', + margin: 'auto' + }, + normalLog:{ + height: '75vh', + width: '100%' + }, + modalLog:{ + height: '100%', + width: '100%' + } })); -const DisplayLog = (jobLogs: any) =>{ - return( +const DisplayLog = ({ jobLogs, className }: { jobLogs: any; className: string }) =>{ + return( }> -
+
{ } /** - * A component for Run Logs visualization. + * A component for Run Logs visualization. */ -export const WorkflowRunLogs = ({runId}:{runId: string}) => { +export const WorkflowRunLogs = ({ runId, inProgress }:{ runId: string, inProgress: boolean }) => { const classes = useStyles(); let entityCompoundName = useEntityCompoundName(); if (!entityCompoundName.name) { @@ -83,12 +105,21 @@ export const WorkflowRunLogs = ({runId}:{runId: string}) => { const [owner, repo] = projectName.value ? projectName.value.split('/') : []; const jobLogs = useDownloadWorkflowRunLogs(repo, owner, runId); - + const [open, setOpen] = React.useState(false); + + const handleOpen = () => { + setOpen(true); + }; + + const handleClose = () => { + setOpen(false); + }; return ( - - } aria-controls={`panel-${name}-content`} id={`panel-${name}-header`} @@ -97,10 +128,29 @@ export const WorkflowRunLogs = ({runId}:{runId: string}) => { }} > - {jobLogs.value === null ? "No Logs to Display" : "Job Log"} + {jobLogs.loading ? : "Job Log"} - - {jobLogs.value && } - + + { + event.stopPropagation() + handleOpen() + }} + style={{marginLeft: 'auto'}} + /> + + event.stopPropagation()} + open={open} + onClose={handleClose} + > + + + + + + {jobLogs.value && } + ); }; From 8e94bffbcc9f2f962782c9ea507f96982f36eb77 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 1 Sep 2020 19:56:16 +0200 Subject: [PATCH 326/656] cli: mark all monorepo packages as external, instead of @backstage ones --- packages/cli/src/lib/bundler/backend.ts | 2 +- packages/cli/src/lib/bundler/config.ts | 23 +++++++++++++++-------- packages/cli/src/lib/bundler/paths.ts | 1 - 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/packages/cli/src/lib/bundler/backend.ts b/packages/cli/src/lib/bundler/backend.ts index f5f233854f..e3cc8af8d1 100644 --- a/packages/cli/src/lib/bundler/backend.ts +++ b/packages/cli/src/lib/bundler/backend.ts @@ -25,7 +25,7 @@ export async function serveBackend( }, ) { const paths = resolveBundlingPaths(options); - const config = createBackendConfig(paths, { + const config = await createBackendConfig(paths, { ...options, isDev: true, }); diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 61f4448dd9..118cb1b40c 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -15,6 +15,7 @@ */ import fs from 'fs-extra'; +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'; @@ -171,14 +172,23 @@ export async function createConfig( }; } -export function createBackendConfig( +export async function createBackendConfig( paths: BundlingPaths, options: BackendBundlingOptions, -): webpack.Configuration { +): Promise { const { checksEnabled, isDev } = options; const { loaders } = transforms(options); + // Find all local monorepo packages and their node_modules, and mark them as external. + const LernaProject = require('@lerna/project'); + const project = new LernaProject(cliPaths.targetDir); + const packages = await project.getPackages(); + const localPackageNames = packages.map((p: any) => p.name); + const moduleDirs = packages.map((p: any) => + resolvePath(p.location, 'node_modules'), + ); + return { mode: isDev ? 'development' : 'production', profile: false, @@ -193,11 +203,8 @@ export function createBackendConfig( externals: [ nodeExternals({ modulesDir: paths.rootNodeModules, - allowlist: ['webpack/hot/poll?100', /\@backstage\/.*/], - }), - nodeExternals({ - modulesDir: paths.targetNodeModules, - allowlist: ['webpack/hot/poll?100', /\@backstage\/.*/], + additionalModuleDirs: moduleDirs, + allowlist: ['webpack/hot/poll?100', ...localPackageNames], }), ], target: 'node' as const, @@ -219,7 +226,7 @@ export function createBackendConfig( resolve: { extensions: ['.ts', '.tsx', '.mjs', '.js', '.jsx'], mainFields: ['browser', 'module', 'main'], - modules: [paths.targetNodeModules, paths.rootNodeModules], + modules: [paths.rootNodeModules, ...moduleDirs], plugins: [ new ModuleScopePlugin( [paths.targetSrc, paths.targetDev], diff --git a/packages/cli/src/lib/bundler/paths.ts b/packages/cli/src/lib/bundler/paths.ts index 70e82d8d48..390e41a345 100644 --- a/packages/cli/src/lib/bundler/paths.ts +++ b/packages/cli/src/lib/bundler/paths.ts @@ -63,7 +63,6 @@ export function resolveBundlingPaths(options: BundlingPathsOptions) { targetDev: paths.resolveTarget('dev'), targetEntry: resolveTargetModule(entry), targetTsConfig: paths.resolveTargetRoot('tsconfig.json'), - targetNodeModules: paths.resolveTarget('node_modules'), targetPackageJson: paths.resolveTarget('package.json'), rootNodeModules: paths.resolveTargetRoot('node_modules'), root: paths.targetRoot, From 03f0a23ef344522bfe74fdf9b8486ef685a9d926 Mon Sep 17 00:00:00 2001 From: NetPenguins Date: Tue, 1 Sep 2020 14:40:09 -0400 Subject: [PATCH 327/656] left out a dev tweak . . . --- .../src/components/WorkflowRunLogs/WorkflowRunLogs.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx b/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx index d2757c406f..d6db13dc61 100644 --- a/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx +++ b/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx @@ -41,7 +41,7 @@ const LazyLog = React.lazy(() => import('react-lazylog/build/LazyLog')); const useStyles = makeStyles(() => ({ button: { order: -1, - // marginRight: 0, + marginRight: 0, marginLeft: '-20px', }, modal: { From 86124cc9e362b951d69262484a824e8288da0cae Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 2 Sep 2020 07:49:28 +0200 Subject: [PATCH 328/656] chore(deps-dev): bump @types/helmet from 0.0.47 to 0.0.48 (#2230) Bumps [@types/helmet](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/helmet) from 0.0.47 to 0.0.48. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/helmet) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- packages/backend/package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/backend/package.json b/packages/backend/package.json index 7393ede81e..a2a9e41a92 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -46,6 +46,6 @@ "@types/dockerode": "^2.5.32", "@types/express": "^4.17.6", "@types/express-serve-static-core": "^4.17.5", - "@types/helmet": "^0.0.47" + "@types/helmet": "^0.0.48" } } diff --git a/yarn.lock b/yarn.lock index 84e4c4cbb4..1553a3e006 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4264,10 +4264,10 @@ "@types/koa" "*" graphql "^14.5.3" -"@types/helmet@^0.0.47": - version "0.0.47" - resolved "https://registry.npmjs.org/@types/helmet/-/helmet-0.0.47.tgz#ec5161541b649142205b7c558bca14801c5ce129" - integrity sha512-TcHA/djjdUtrMtq/QAayVLrsgjNNZ1Uhtz0KhfH01mrmjH44E54DA1A0HNbwW0H/NBFqV+tGMo85ACuEhMXcdg== +"@types/helmet@^0.0.48": + version "0.0.48" + resolved "https://registry.npmjs.org/@types/helmet/-/helmet-0.0.48.tgz#e754399d2f4672ba63962e8490efd3edd31d9799" + integrity sha512-C7MpnvSDrunS1q2Oy1VWCY7CDWHozqSnM8P4tFeRTuzwqni+PYOjEredwcqWG+kLpYcgLsgcY3orHB54gbx2Jw== dependencies: "@types/express" "*" From b3c4f0c85bc47a44d7724f519c3cd247b91b15f2 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 2 Sep 2020 07:49:55 +0200 Subject: [PATCH 329/656] chore(deps-dev): bump @testing-library/cypress from 6.0.0 to 6.0.1 (#2229) Bumps [@testing-library/cypress](https://github.com/kentcdodds/cypress-testing-library) from 6.0.0 to 6.0.1. - [Release notes](https://github.com/kentcdodds/cypress-testing-library/releases) - [Changelog](https://github.com/testing-library/cypress-testing-library/blob/master/CHANGELOG.md) - [Commits](https://github.com/kentcdodds/cypress-testing-library/compare/v6.0.0...v6.0.1) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 115 +++++++++++++++++++++++++++--------------------------- 1 file changed, 58 insertions(+), 57 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1553a3e006..1853507e63 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1056,7 +1056,7 @@ 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.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.10.5", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.4", "@babel/runtime@^7.7.6", "@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.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.4", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.11.2" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== @@ -1677,15 +1677,6 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/types@^24.9.0": - version "24.9.0" - resolved "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" - integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^13.0.0" - "@jest/types@^25.5.0": version "25.5.0" resolved "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" @@ -1706,6 +1697,17 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" +"@jest/types@^26.3.0": + version "26.3.0" + resolved "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz#97627bf4bdb72c55346eef98e3b3f7ddc4941f71" + integrity sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + "@jsdevtools/ono@^7.1.3": version "7.1.3" resolved "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" @@ -3853,23 +3855,24 @@ defer-to-connect "^2.0.0" "@testing-library/cypress@^6.0.0": - version "6.0.0" - resolved "https://registry.npmjs.org/@testing-library/cypress/-/cypress-6.0.0.tgz#935f7716e0e495f02fd753a42621e4d350097dce" - integrity sha512-vWPQtPsIDk5STOH2XdJbJoYq9gxOSAItP0ail+MlylK230zNkf3ODKd6eqWnDdruuqrhTF3CyqvPNMA8Xks/UQ== + version "6.0.1" + resolved "https://registry.npmjs.org/@testing-library/cypress/-/cypress-6.0.1.tgz#c924a69617db6a403c498abcb63759b79318fc76" + integrity sha512-hcPu2OnVuSTX1yDubEe7TBRD6mP2VgyopP1WTBIrJP79INPZdgOAX+TMNH68uZ/r5b4C7100IB4hjPIEQ+/Xog== dependencies: - "@babel/runtime" "^7.8.7" - "@testing-library/dom" "^7.0.2" - "@types/testing-library__cypress" "^5.0.3" + "@babel/runtime" "^7.11.2" + "@testing-library/dom" "^7.22.2" + "@types/testing-library__cypress" "^5.0.6" -"@testing-library/dom@^7.0.2", "@testing-library/dom@^7.17.1": - version "7.17.2" - resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-7.17.2.tgz#d062e41336b885107bca8ffc7022eaf37cccaee1" - integrity sha512-TQAoIzoI9g64oNVJ+13i4cCh/DQp/n7fJOyMqlFB1oQVusPtSgiPImyb52CwtvPO7J0Im0+/4YcmxU9a+cVxxw== +"@testing-library/dom@^7.11.0", "@testing-library/dom@^7.17.1", "@testing-library/dom@^7.22.2": + version "7.23.0" + resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-7.23.0.tgz#c54c0fa53705ad867bcefb52fc0c96487fbc10f6" + integrity sha512-H5m090auYH+obdZmsaYLrSWC5OauWD2CvNbz88KBxQJoXgkJzbU0DpAG8BS7Evj5WqCC3nAAKrLS6vw0ljUYLg== dependencies: "@babel/runtime" "^7.10.3" + "@types/aria-query" "^4.2.0" aria-query "^4.2.2" - dom-accessibility-api "^0.4.5" - pretty-format "^25.5.0" + dom-accessibility-api "^0.5.1" + pretty-format "^26.4.2" "@testing-library/jest-dom@^5.10.1": version "5.10.1" @@ -3976,6 +3979,11 @@ resolved "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== +"@types/aria-query@^4.2.0": + version "4.2.0" + resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.0.tgz#14264692a9d6e2fa4db3df5e56e94b5e25647ac0" + integrity sha512-iIgQNzCm0v7QMhhe4Jjn9uRh+I6GoPmt03CbEtwx3ao8/EfoQcmgtqH4vQ5Db/lxiIGaWDv6nwvunuh0RyX0+A== + "@types/babel__core@^7.1.7": version "7.1.7" resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89" @@ -4363,6 +4371,13 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + dependencies: + "@types/istanbul-lib-report" "*" + "@types/jest@*", "@types/jest@^26.0.7": version "26.0.9" resolved "https://registry.npmjs.org/@types/jest/-/jest-26.0.9.tgz#0543b57da5f0cd949c5f423a00c56c492289c989" @@ -4848,21 +4863,14 @@ dependencies: "@types/estree" "*" -"@types/testing-library__cypress@^5.0.3": - version "5.0.3" - resolved "https://registry.npmjs.org/@types/testing-library__cypress/-/testing-library__cypress-5.0.3.tgz#94969b7c1eea96e09d8e023a1d225590fa75a1fe" - integrity sha512-efMwaVnsWEBDz0Ikm84Kh/oiUxMfz5LQtWx/Y6s2Bj0KkQ6+569/101X3Gz2bJy+otaXWPzOUOwDeAfzOJWoeQ== +"@types/testing-library__cypress@^5.0.6": + version "5.0.6" + resolved "https://registry.npmjs.org/@types/testing-library__cypress/-/testing-library__cypress-5.0.6.tgz#9015f575c1a98f05996a4fe769071134ee488c26" + integrity sha512-TUp5wfanU7zUZigKqIeQDChnHQ1MEzbYqrI5iCQMFiesWNOASWm/el1lFBh1JPqmd6GkdDdDiHYJnkqd9le2ww== dependencies: - "@types/testing-library__dom" "*" + "@testing-library/dom" "^7.11.0" cypress "*" -"@types/testing-library__dom@*": - version "6.14.0" - resolved "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.14.0.tgz#1aede831cb4ed4a398448df5a2c54b54a365644e" - integrity sha512-sMl7OSv0AvMOqn1UJ6j1unPMIHRXen0Ita1ujnMX912rrOcawe4f7wu0Zt9GIQhBhJvH2BaibqFgQ3lP+Pj2hA== - dependencies: - pretty-format "^24.3.0" - "@types/testing-library__jest-dom@^5.9.1": version "5.9.1" resolved "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.1.tgz#aba5ee062b7880f69c212ef769389f30752806e5" @@ -4971,13 +4979,6 @@ resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== -"@types/yargs@^13.0.0": - version "13.0.8" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz#a38c22def2f1c2068f8971acb3ea734eb3c64a99" - integrity sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA== - dependencies: - "@types/yargs-parser" "*" - "@types/yargs@^15.0.0": version "15.0.4" resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299" @@ -5451,7 +5452,7 @@ ansi-regex@^3.0.0: resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= -ansi-regex@^4.0.0, ansi-regex@^4.1.0: +ansi-regex@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== @@ -9149,10 +9150,10 @@ docusaurus@^2.0.0-alpha.61: tree-node-cli "^1.2.5" truncate-html "^1.0.3" -dom-accessibility-api@^0.4.5: - version "0.4.5" - resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.4.5.tgz#d9c1cefa89f509d8cf132ab5d250004d755e76e3" - integrity sha512-HcPDilI95nKztbVikaN2vzwvmv0sE8Y2ZJFODy/m15n7mGXLeOKGiys9qWVbFbh+aq/KYj2lqMLybBOkYAEXqg== +dom-accessibility-api@^0.5.1: + version "0.5.2" + resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.2.tgz#ef3cdb5d3f0d599d8f9c8b18df2fb63c9793739d" + integrity sha512-k7hRNKAiPJXD2aBqfahSo4/01cTsKWXf+LqJgglnkN2Nz8TsxXKQBXHhKe0Ye9fEfHEZY49uSA5Sr3AqP/sWKA== dom-converter@^0.2: version "0.2.0" @@ -17806,16 +17807,6 @@ pretty-error@^2.1.1: renderkid "^2.0.1" utila "~0.4" -pretty-format@^24.3.0: - version "24.9.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" - integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== - dependencies: - "@jest/types" "^24.9.0" - ansi-regex "^4.0.0" - ansi-styles "^3.2.0" - react-is "^16.8.4" - pretty-format@^25.1.0, pretty-format@^25.2.1, pretty-format@^25.5.0: version "25.5.0" resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" @@ -17836,6 +17827,16 @@ pretty-format@^26.0.1: ansi-styles "^4.0.0" react-is "^16.12.0" +pretty-format@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.4.2.tgz#d081d032b398e801e2012af2df1214ef75a81237" + integrity sha512-zK6Gd8zDsEiVydOCGLkoBoZuqv8VTiHyAbKznXe/gaph/DAeZOmit9yMfgIz5adIgAMMs5XfoYSwAX3jcCO1tA== + dependencies: + "@jest/types" "^26.3.0" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^16.12.0" + pretty-hrtime@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" @@ -18543,7 +18544,7 @@ react-inspector@^4.0.0: is-dom "^1.0.9" prop-types "^15.6.1" -react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0: +react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1, react-is@^16.8.6, react-is@^16.9.0: version "16.13.1" resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== From e9527a7796dce17c2600eb61d716f9adc6dca580 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 2 Sep 2020 07:50:19 +0200 Subject: [PATCH 330/656] chore(deps): bump rollup-plugin-postcss from 3.1.1 to 3.1.8 (#2231) Bumps [rollup-plugin-postcss](https://github.com/egoist/rollup-plugin-postcss) from 3.1.1 to 3.1.8. - [Release notes](https://github.com/egoist/rollup-plugin-postcss/releases) - [Changelog](https://github.com/egoist/rollup-plugin-postcss/blob/master/CHANGELOG-OLD.md) - [Commits](https://github.com/egoist/rollup-plugin-postcss/compare/v3.1.1...v3.1.8) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1853507e63..3301f94f83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19513,9 +19513,9 @@ rollup-plugin-peer-deps-external@^2.2.2: integrity sha512-W6IePXTExGXVDAlfZbNUUrx3GxUOZP248u5n4a4ID1XZMrbQ+uGeNiEfapvdzwx0qZi5DNH/hDLiPUP+pzFIxg== rollup-plugin-postcss@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-3.1.1.tgz#eb895bd919285aaf6200324071103b4d3ea68607" - integrity sha512-4/FO5/2O5kv2uWRd7PPTN4mBCWoHwwFTnpEGokfPKfj6kygvTORqkBWNgVPXi7bBefNKtMA3FqQ10se6/J8kKw== + version "3.1.8" + resolved "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-3.1.8.tgz#d1bcaf8eb0fcb0936e3684c22dd8628d13a82fd1" + integrity sha512-JHnGfW8quNc6ePxEkZ05HEZ1YiRxDgY9RKEetMfsrwxR2kh/d90OVScTc6b1c2Q17Cs/5TRYL+1uddG21lQe3w== dependencies: chalk "^4.0.0" concat-with-sourcemaps "^1.1.0" From ab7d6e89a8f2614dfb595283f041bb6a23cec1fb Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Wed, 2 Sep 2020 07:52:12 +0200 Subject: [PATCH 331/656] Add "Example Plugin" to Storybook (#2212) * Add Page Story as Plugin Example * Change settings button to primary and clean up code * Simplfiy content header and remove unnecessary styling --- .../core/src/layout/Page/Page.stories.tsx | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 packages/core/src/layout/Page/Page.stories.tsx diff --git a/packages/core/src/layout/Page/Page.stories.tsx b/packages/core/src/layout/Page/Page.stories.tsx new file mode 100644 index 0000000000..786b4740fd --- /dev/null +++ b/packages/core/src/layout/Page/Page.stories.tsx @@ -0,0 +1,114 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { + Header, + Page, + HeaderLabel, + ContentHeader, + Content, + pageTheme, +} from '../'; +import { SupportButton, Table, StatusOK, TableColumn } from '../../components'; +import { Box, Typography, Link, Chip, Button } from '@material-ui/core'; + +export default { + title: 'Example Plugin', + component: Page, +}; + +interface TableData { + id: number; + branch: string; + hash: string; + status: string; +} + +const generateTestData = (rows = 10) => { + const data: Array = []; + while (data.length <= rows) { + data.push({ + id: data.length + 18534, + branch: 'techdocs: modify documentation header', + hash: 'techdocs/docs-header 5749c98e3f61f8bb116e5cb87b0e4e1 ', + status: 'Success', + }); + } + return data; +}; + +const columns: TableColumn[] = [ + { + title: 'ID', + field: 'id', + highlight: true, + type: 'numeric', + width: '80px', + }, + { + title: 'Message/Source', + highlight: true, + render: (row: Partial) => ( + <> + {row.branch} + {row.hash} + + ), + }, + { + title: 'Status', + render: (row: Partial) => ( + + + {row.status} + + ), + }, + { + title: 'Tags', + render: () => , + width: '10%', + }, +]; + +export const PluginWithTable = () => { + return ( + +
+ + +
+ + + + + This Plugin is an example. This text could provide usefull + information for the user. + + + + + + ); +}; From 7f4064975141b1b61a3d1800f3171f2350cac24f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 2 Sep 2020 05:55:52 +0000 Subject: [PATCH 332/656] chore(deps): bump jest from 26.0.1 to 26.4.2 Bumps [jest](https://github.com/facebook/jest) from 26.0.1 to 26.4.2. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/compare/v26.0.1...v26.4.2) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 776 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 406 insertions(+), 370 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3301f94f83..bea32a92aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -536,6 +536,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" @@ -1521,156 +1528,160 @@ resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== -"@jest/console@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/console/-/console-26.0.1.tgz#62b3b2fa8990f3cbffbef695c42ae9ddbc8f4b39" - integrity sha512-9t1KUe/93coV1rBSxMmBAOIK3/HVpwxArCA1CxskKyRiv6o8J70V8C/V3OJminVCTa2M0hQI9AWRd5wxu2dAHw== +"@jest/console@^26.3.0": + version "26.3.0" + resolved "https://registry.npmjs.org/@jest/console/-/console-26.3.0.tgz#ed04063efb280c88ba87388b6f16427c0a85c856" + integrity sha512-/5Pn6sJev0nPUcAdpJHMVIsA8sKizL2ZkcKPE5+dJrCccks7tcM7c9wbgHudBJbxXLoTbqsHkG1Dofoem4F09w== dependencies: - "@jest/types" "^26.0.1" + "@jest/types" "^26.3.0" + "@types/node" "*" chalk "^4.0.0" - jest-message-util "^26.0.1" - jest-util "^26.0.1" + jest-message-util "^26.3.0" + jest-util "^26.3.0" slash "^3.0.0" -"@jest/core@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/core/-/core-26.0.1.tgz#aa538d52497dfab56735efb00e506be83d841fae" - integrity sha512-Xq3eqYnxsG9SjDC+WLeIgf7/8KU6rddBxH+SCt18gEpOhAGYC/Mq+YbtlNcIdwjnnT+wDseXSbU0e5X84Y4jTQ== +"@jest/core@^26.4.2": + version "26.4.2" + resolved "https://registry.npmjs.org/@jest/core/-/core-26.4.2.tgz#85d0894f31ac29b5bab07aa86806d03dd3d33edc" + integrity sha512-sDva7YkeNprxJfepOctzS8cAk9TOekldh+5FhVuXS40+94SHbiicRO1VV2tSoRtgIo+POs/Cdyf8p76vPTd6dg== dependencies: - "@jest/console" "^26.0.1" - "@jest/reporters" "^26.0.1" - "@jest/test-result" "^26.0.1" - "@jest/transform" "^26.0.1" - "@jest/types" "^26.0.1" + "@jest/console" "^26.3.0" + "@jest/reporters" "^26.4.1" + "@jest/test-result" "^26.3.0" + "@jest/transform" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^26.0.1" - jest-config "^26.0.1" - jest-haste-map "^26.0.1" - jest-message-util "^26.0.1" + jest-changed-files "^26.3.0" + jest-config "^26.4.2" + jest-haste-map "^26.3.0" + jest-message-util "^26.3.0" jest-regex-util "^26.0.0" - jest-resolve "^26.0.1" - jest-resolve-dependencies "^26.0.1" - jest-runner "^26.0.1" - jest-runtime "^26.0.1" - jest-snapshot "^26.0.1" - jest-util "^26.0.1" - jest-validate "^26.0.1" - jest-watcher "^26.0.1" + jest-resolve "^26.4.0" + jest-resolve-dependencies "^26.4.2" + jest-runner "^26.4.2" + jest-runtime "^26.4.2" + jest-snapshot "^26.4.2" + jest-util "^26.3.0" + jest-validate "^26.4.2" + jest-watcher "^26.3.0" micromatch "^4.0.2" p-each-series "^2.1.0" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-26.0.1.tgz#82f519bba71959be9b483675ee89de8c8f72a5c8" - integrity sha512-xBDxPe8/nx251u0VJ2dFAFz2H23Y98qdIaNwnMK6dFQr05jc+Ne/2np73lOAx+5mSBO/yuQldRrQOf6hP1h92g== +"@jest/environment@^26.3.0": + version "26.3.0" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-26.3.0.tgz#e6953ab711ae3e44754a025f838bde1a7fd236a0" + integrity sha512-EW+MFEo0DGHahf83RAaiqQx688qpXgl99wdb8Fy67ybyzHwR1a58LHcO376xQJHfmoXTu89M09dH3J509cx2AA== dependencies: - "@jest/fake-timers" "^26.0.1" - "@jest/types" "^26.0.1" - jest-mock "^26.0.1" + "@jest/fake-timers" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + jest-mock "^26.3.0" -"@jest/fake-timers@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.0.1.tgz#f7aeff13b9f387e9d0cac9a8de3bba538d19d796" - integrity sha512-Oj/kCBnTKhm7CR+OJSjZty6N1bRDr9pgiYQr4wY221azLz5PHi08x/U+9+QpceAYOWheauLP8MhtSVFrqXQfhg== +"@jest/fake-timers@^26.3.0": + version "26.3.0" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.3.0.tgz#f515d4667a6770f60ae06ae050f4e001126c666a" + integrity sha512-ZL9ytUiRwVP8ujfRepffokBvD2KbxbqMhrXSBhSdAhISCw3gOkuntisiSFv+A6HN0n0fF4cxzICEKZENLmW+1A== dependencies: - "@jest/types" "^26.0.1" + "@jest/types" "^26.3.0" "@sinonjs/fake-timers" "^6.0.1" - jest-message-util "^26.0.1" - jest-mock "^26.0.1" - jest-util "^26.0.1" + "@types/node" "*" + jest-message-util "^26.3.0" + jest-mock "^26.3.0" + jest-util "^26.3.0" -"@jest/globals@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-26.0.1.tgz#3f67b508a7ce62b6e6efc536f3d18ec9deb19a9c" - integrity sha512-iuucxOYB7BRCvT+TYBzUqUNuxFX1hqaR6G6IcGgEqkJ5x4htNKo1r7jk1ji9Zj8ZMiMw0oB5NaA7k5Tx6MVssA== +"@jest/globals@^26.4.2": + version "26.4.2" + resolved "https://registry.npmjs.org/@jest/globals/-/globals-26.4.2.tgz#73c2a862ac691d998889a241beb3dc9cada40d4a" + integrity sha512-Ot5ouAlehhHLRhc+sDz2/9bmNv9p5ZWZ9LE1pXGGTCXBasmi5jnYjlgYcYt03FBwLmZXCZ7GrL29c33/XRQiow== dependencies: - "@jest/environment" "^26.0.1" - "@jest/types" "^26.0.1" - expect "^26.0.1" + "@jest/environment" "^26.3.0" + "@jest/types" "^26.3.0" + expect "^26.4.2" -"@jest/reporters@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-26.0.1.tgz#14ae00e7a93e498cec35b0c00ab21c375d9b078f" - integrity sha512-NWWy9KwRtE1iyG/m7huiFVF9YsYv/e+mbflKRV84WDoJfBqUrNRyDbL/vFxQcYLl8IRqI4P3MgPn386x76Gf2g== +"@jest/reporters@^26.4.1": + version "26.4.1" + resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-26.4.1.tgz#3b4d6faf28650f3965f8b97bc3d114077fb71795" + integrity sha512-aROTkCLU8++yiRGVxLsuDmZsQEKO6LprlrxtAuzvtpbIFl3eIjgIf3EUxDKgomkS25R9ZzwGEdB5weCcBZlrpQ== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.0.1" - "@jest/test-result" "^26.0.1" - "@jest/transform" "^26.0.1" - "@jest/types" "^26.0.1" + "@jest/console" "^26.3.0" + "@jest/test-result" "^26.3.0" + "@jest/transform" "^26.3.0" + "@jest/types" "^26.3.0" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.2" graceful-fs "^4.2.4" istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.0" + istanbul-lib-instrument "^4.0.3" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" - jest-haste-map "^26.0.1" - jest-resolve "^26.0.1" - jest-util "^26.0.1" - jest-worker "^26.0.0" + jest-haste-map "^26.3.0" + jest-resolve "^26.4.0" + jest-util "^26.3.0" + jest-worker "^26.3.0" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" terminal-link "^2.0.0" - v8-to-istanbul "^4.1.3" + v8-to-istanbul "^5.0.1" optionalDependencies: - node-notifier "^7.0.0" + node-notifier "^8.0.0" -"@jest/source-map@^26.0.0": - version "26.0.0" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-26.0.0.tgz#fd7706484a7d3faf7792ae29783933bbf48a4749" - integrity sha512-S2Z+Aj/7KOSU2TfW0dyzBze7xr95bkm5YXNUqqCek+HE0VbNNSNzrRwfIi5lf7wvzDTSS0/ib8XQ1krFNyYgbQ== +"@jest/source-map@^26.3.0": + version "26.3.0" + resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-26.3.0.tgz#0e646e519883c14c551f7b5ae4ff5f1bfe4fc3d9" + integrity sha512-hWX5IHmMDWe1kyrKl7IhFwqOuAreIwHhbe44+XH2ZRHjrKIh0LO5eLQ/vxHFeAfRwJapmxuqlGAEYLadDq6ZGQ== dependencies: callsites "^3.0.0" graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-26.0.1.tgz#1ffdc1ba4bc289919e54b9414b74c9c2f7b2b718" - integrity sha512-oKwHvOI73ICSYRPe8WwyYPTtiuOAkLSbY8/MfWF3qDEd/sa8EDyZzin3BaXTqufir/O/Gzea4E8Zl14XU4Mlyg== +"@jest/test-result@^26.3.0": + version "26.3.0" + resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-26.3.0.tgz#46cde01fa10c0aaeb7431bf71e4a20d885bc7fdb" + integrity sha512-a8rbLqzW/q7HWheFVMtghXV79Xk+GWwOK1FrtimpI5n1la2SY0qHri3/b0/1F0Ve0/yJmV8pEhxDfVwiUBGtgg== dependencies: - "@jest/console" "^26.0.1" - "@jest/types" "^26.0.1" + "@jest/console" "^26.3.0" + "@jest/types" "^26.3.0" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.0.1.tgz#b0563424728f3fe9e75d1442b9ae4c11da73f090" - integrity sha512-ssga8XlwfP8YjbDcmVhwNlrmblddMfgUeAkWIXts1V22equp2GMIHxm7cyeD5Q/B0ZgKPK/tngt45sH99yLLGg== +"@jest/test-sequencer@^26.4.2": + version "26.4.2" + resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.4.2.tgz#58a3760a61eec758a2ce6080201424580d97cbba" + integrity sha512-83DRD8N3M0tOhz9h0bn6Kl6dSp+US6DazuVF8J9m21WAp5x7CqSMaNycMP0aemC/SH/pDQQddbsfHRTBXVUgog== dependencies: - "@jest/test-result" "^26.0.1" + "@jest/test-result" "^26.3.0" graceful-fs "^4.2.4" - jest-haste-map "^26.0.1" - jest-runner "^26.0.1" - jest-runtime "^26.0.1" + jest-haste-map "^26.3.0" + jest-runner "^26.4.2" + jest-runtime "^26.4.2" -"@jest/transform@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-26.0.1.tgz#0e3ecbb34a11cd4b2080ed0a9c4856cf0ceb0639" - integrity sha512-pPRkVkAQ91drKGbzCfDOoHN838+FSbYaEAvBXvKuWeeRRUD8FjwXkqfUNUZL6Ke48aA/1cqq/Ni7kVMCoqagWA== +"@jest/transform@^26.3.0": + version "26.3.0" + resolved "https://registry.npmjs.org/@jest/transform/-/transform-26.3.0.tgz#c393e0e01459da8a8bfc6d2a7c2ece1a13e8ba55" + integrity sha512-Isj6NB68QorGoFWvcOjlUhpkT56PqNIsXKR7XfvoDlCANn/IANlh8DrKAA2l2JKC3yWSMH5wS0GwuQM20w3b2A== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^26.0.1" + "@jest/types" "^26.3.0" babel-plugin-istanbul "^6.0.0" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.4" - jest-haste-map "^26.0.1" + jest-haste-map "^26.3.0" jest-regex-util "^26.0.0" - jest-util "^26.0.1" + jest-util "^26.3.0" micromatch "^4.0.2" pirates "^4.0.1" slash "^3.0.0" @@ -1687,16 +1698,6 @@ "@types/yargs" "^15.0.0" chalk "^3.0.0" -"@jest/types@^26.0.1": - version "26.0.1" - resolved "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz#b78333fbd113fa7aec8d39de24f88de8686dac67" - integrity sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - "@jest/types@^26.3.0": version "26.3.0" resolved "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz#97627bf4bdb72c55346eef98e3b3f7ddc4941f71" @@ -3984,6 +3985,17 @@ resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.0.tgz#14264692a9d6e2fa4db3df5e56e94b5e25647ac0" integrity sha512-iIgQNzCm0v7QMhhe4Jjn9uRh+I6GoPmt03CbEtwx3ao8/EfoQcmgtqH4vQ5Db/lxiIGaWDv6nwvunuh0RyX0+A== +"@types/babel__core@^7.0.0": + version "7.1.9" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz#77e59d438522a6fb898fa43dc3455c6e72f3963d" + integrity sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + "@types/babel__core@^7.1.7": version "7.1.7" resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89" @@ -6088,16 +6100,16 @@ babel-helper-to-multiple-sequence-expressions@^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.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-26.0.1.tgz#450139ce4b6c17174b136425bda91885c397bc46" - integrity sha512-Z4GGmSNQ8pX3WS1O+6v3fo41YItJJZsVxG5gIQ+HuB/iuAQBJxMTHTwz292vuYws1LnHfwSRgoqI+nxdy/pcvw== +babel-jest@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-26.3.0.tgz#10d0ca4b529ca3e7d1417855ef7d7bd6fc0c3463" + integrity sha512-sxPnQGEyHAOPF8NcUsD0g7hDCnvLL2XyblRBcgrzTWBB/mAIpWow3n1bEL+VghnnZfreLhFSBsFluRoK2tRK4g== dependencies: - "@jest/transform" "^26.0.1" - "@jest/types" "^26.0.1" + "@jest/transform" "^26.3.0" + "@jest/types" "^26.3.0" "@types/babel__core" "^7.1.7" babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.0.0" + babel-preset-jest "^26.3.0" chalk "^4.0.0" graceful-fs "^4.2.4" slash "^3.0.0" @@ -6141,13 +6153,14 @@ babel-plugin-istanbul@^6.0.0: istanbul-lib-instrument "^4.0.0" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.0.0.tgz#fd1d35f95cf8849fc65cb01b5e58aedd710b34a8" - integrity sha512-+AuoehOrjt9irZL7DOt2+4ZaTM6dlu1s5TTS46JBa0/qem4dy7VNW3tMb96qeEqcIh20LD73TVNtmVEeymTG7w== +babel-plugin-jest-hoist@^26.2.0: + version "26.2.0" + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.2.0.tgz#bdd0011df0d3d513e5e95f76bd53b51147aca2dd" + integrity sha512-B/hVMRv8Nh1sQ1a3EY8I0n4Y1Wty3NrR5ebOyVT302op+DOAau+xNEImGMsUWOC3++ZlMooCytKz+NgN8aKGbA== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.7.0: @@ -6313,14 +6326,15 @@ babel-plugin-transform-undefined-to-void@^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@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz#fb4a4c51fe38ca60fede1dc74ab35eb843cb41d6" - integrity sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw== +babel-preset-current-node-syntax@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz#b4b547acddbf963cba555ba9f9cbbb70bfd044da" + integrity sha512-uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -6329,13 +6343,13 @@ babel-preset-current-node-syntax@^0.1.2: "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -babel-preset-jest@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.0.0.tgz#1eac82f513ad36c4db2e9263d7c485c825b1faa6" - integrity sha512-9ce+DatAa31DpR4Uir8g4Ahxs5K4W4L8refzt+qHWQANb6LhGcAEfIFgLUwk67oya2cCUd6t4eUMtO/z64ocNw== +babel-preset-jest@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.3.0.tgz#ed6344506225c065fd8a0b53e191986f74890776" + integrity sha512-5WPdf7nyYi2/eRxCbVrE1kKCWxgWY4RsPEbdJWFm7QsesFGqjdkyLeu1zRkwM1cxK6EPIlNd6d2AxLk7J+t4pw== dependencies: - babel-plugin-jest-hoist "^26.0.0" - babel-preset-current-node-syntax "^0.1.2" + babel-plugin-jest-hoist "^26.2.0" + babel-preset-current-node-syntax "^0.1.3" "babel-preset-minify@^0.5.0 || 0.6.0-alpha.5": version "0.5.1" @@ -8997,10 +9011,10 @@ diff-sequences@^25.2.6: resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== -diff-sequences@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.0.0.tgz#0760059a5c287637b842bd7085311db7060e88a6" - integrity sha512-JC/eHYEC3aSS0vZGjuoc4vHA0yAQTzhQQldXMeMF+JlxLGJlCO38Gma82NV9gk1jGFz8mDzUMeaKXvjRRdJ2dg== +diff-sequences@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.3.0.tgz#62a59b1b29ab7fd27cef2a33ae52abe73042d0a2" + integrity sha512-5j5vdRcw3CNctePNYN0Wy2e/JbWT6cAYnXv5OuqPhDpyCGc0uLu2TK0zOCJWNB9kOIfYMSpIulRaDgIi4HJ6Ig== diff@^4.0.1, diff@^4.0.2: version "4.0.2" @@ -9435,6 +9449,11 @@ emitter-component@^1.1.1: resolved "https://registry.npmjs.org/emitter-component/-/emitter-component-1.1.1.tgz#065e2dbed6959bf470679edabeaf7981d1003ab6" integrity sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY= +emittery@^0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.7.1.tgz#c02375a927a40948c0345cc903072597f5270451" + integrity sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ== + "emoji-regex@>=6.0.0 <=6.1.1": version "6.1.1" resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" @@ -10163,16 +10182,16 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/expect/-/expect-26.0.1.tgz#18697b9611a7e2725e20ba3ceadda49bc9865421" - integrity sha512-QcCy4nygHeqmbw564YxNbHTJlXh47dVID2BUP52cZFpLU9zHViMFK6h07cC1wf7GYCTIigTdAXhVua8Yl1FkKg== +expect@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/expect/-/expect-26.4.2.tgz#36db120928a5a2d7d9736643032de32f24e1b2a1" + integrity sha512-IlJ3X52Z0lDHm7gjEp+m76uX46ldH5VpqmU0006vqDju/285twh7zaWMRhs67VpQhBwjjMchk+p5aA0VkERCAA== dependencies: - "@jest/types" "^26.0.1" + "@jest/types" "^26.3.0" ansi-styles "^4.0.0" - jest-get-type "^26.0.0" - jest-matcher-utils "^26.0.1" - jest-message-util "^26.0.1" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.4.2" + jest-message-util "^26.3.0" jest-regex-util "^26.0.0" express-prom-bundle@^6.1.0: @@ -13173,6 +13192,13 @@ is-wsl@^2.1.1: resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + is-yarn-global@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" @@ -13249,6 +13275,16 @@ istanbul-lib-instrument@^4.0.0: istanbul-lib-coverage "^3.0.0" semver "^6.3.0" +istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + istanbul-lib-report@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" @@ -13308,57 +13344,57 @@ jenkins@^0.28.0: dependencies: papi "^0.29.0" -jest-changed-files@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.0.1.tgz#1334630c6a1ad75784120f39c3aa9278e59f349f" - integrity sha512-q8LP9Sint17HaE2LjxQXL+oYWW/WeeXMPE2+Op9X3mY8IEGFVc14xRxFjUuXUbcPAlDLhtWdIEt59GdQbn76Hw== +jest-changed-files@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.3.0.tgz#68fb2a7eb125f50839dab1f5a17db3607fe195b1" + integrity sha512-1C4R4nijgPltX6fugKxM4oQ18zimS7LqQ+zTTY8lMCMFPrxqBFb7KJH0Z2fRQJvw2Slbaipsqq7s1mgX5Iot+g== dependencies: - "@jest/types" "^26.0.1" + "@jest/types" "^26.3.0" execa "^4.0.0" throat "^5.0.0" -jest-cli@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-26.0.1.tgz#3a42399a4cbc96a519b99ad069a117d955570cac" - integrity sha512-pFLfSOBcbG9iOZWaMK4Een+tTxi/Wcm34geqZEqrst9cZDkTQ1LZ2CnBrTlHWuYAiTMFr0EQeK52ScyFU8wK+w== +jest-cli@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-26.4.2.tgz#24afc6e4dfc25cde4c7ec4226fb7db5f157c21da" + integrity sha512-zb+lGd/SfrPvoRSC/0LWdaWCnscXc1mGYW//NP4/tmBvRPT3VntZ2jtKUONsRi59zc5JqmsSajA9ewJKFYp8Cw== dependencies: - "@jest/core" "^26.0.1" - "@jest/test-result" "^26.0.1" - "@jest/types" "^26.0.1" + "@jest/core" "^26.4.2" + "@jest/test-result" "^26.3.0" + "@jest/types" "^26.3.0" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" is-ci "^2.0.0" - jest-config "^26.0.1" - jest-util "^26.0.1" - jest-validate "^26.0.1" + jest-config "^26.4.2" + jest-util "^26.3.0" + jest-validate "^26.4.2" prompts "^2.0.1" yargs "^15.3.1" -jest-config@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-26.0.1.tgz#096a3d4150afadf719d1fab00e9a6fb2d6d67507" - integrity sha512-9mWKx2L1LFgOXlDsC4YSeavnblN6A4CPfXFiobq+YYLaBMymA/SczN7xYTSmLaEYHZOcB98UdoN4m5uNt6tztg== +jest-config@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-26.4.2.tgz#da0cbb7dc2c131ffe831f0f7f2a36256e6086558" + integrity sha512-QBf7YGLuToiM8PmTnJEdRxyYy3mHWLh24LJZKVdXZ2PNdizSe1B/E8bVm+HYcjbEzGuVXDv/di+EzdO/6Gq80A== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.0.1" - "@jest/types" "^26.0.1" - babel-jest "^26.0.1" + "@jest/test-sequencer" "^26.4.2" + "@jest/types" "^26.3.0" + babel-jest "^26.3.0" chalk "^4.0.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" - jest-environment-jsdom "^26.0.1" - jest-environment-node "^26.0.1" - jest-get-type "^26.0.0" - jest-jasmine2 "^26.0.1" + jest-environment-jsdom "^26.3.0" + jest-environment-node "^26.3.0" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.4.2" jest-regex-util "^26.0.0" - jest-resolve "^26.0.1" - jest-util "^26.0.1" - jest-validate "^26.0.1" + jest-resolve "^26.4.0" + jest-util "^26.3.0" + jest-validate "^26.4.2" micromatch "^4.0.2" - pretty-format "^26.0.1" + pretty-format "^26.4.2" jest-css-modules@^2.1.0: version "2.1.0" @@ -13377,15 +13413,15 @@ jest-diff@^25.1.0, jest-diff@^25.2.1: jest-get-type "^25.2.6" pretty-format "^25.5.0" -jest-diff@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-26.0.1.tgz#c44ab3cdd5977d466de69c46929e0e57f89aa1de" - integrity sha512-odTcHyl5X+U+QsczJmOjWw5tPvww+y9Yim5xzqxVl/R1j4z71+fHW4g8qu1ugMmKdFdxw+AtQgs5mupPnzcIBQ== +jest-diff@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-26.4.2.tgz#a1b7b303bcc534aabdb3bd4a7caf594ac059f5aa" + integrity sha512-6T1XQY8U28WH0Z5rGpQ+VqZSZz8EN8rZcBtfvXaOkbwxIEeRre6qnuZQlbY1AJ4MKDxQF8EkrCvK+hL/VkyYLQ== dependencies: chalk "^4.0.0" - diff-sequences "^26.0.0" - jest-get-type "^26.0.0" - pretty-format "^26.0.1" + diff-sequences "^26.3.0" + jest-get-type "^26.3.0" + pretty-format "^26.4.2" jest-docblock@^26.0.0: version "26.0.0" @@ -13394,39 +13430,41 @@ jest-docblock@^26.0.0: dependencies: detect-newline "^3.0.0" -jest-each@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-26.0.1.tgz#633083061619302fc90dd8f58350f9d77d67be04" - integrity sha512-OTgJlwXCAR8NIWaXFL5DBbeS4QIYPuNASkzSwMCJO+ywo9BEa6TqkaSWsfR7VdbMLdgYJqSfQcIyjJCNwl5n4Q== +jest-each@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-each/-/jest-each-26.4.2.tgz#bb14f7f4304f2bb2e2b81f783f989449b8b6ffae" + integrity sha512-p15rt8r8cUcRY0Mvo1fpkOGYm7iI8S6ySxgIdfh3oOIv+gHwrHTy5VWCGOecWUhDsit4Nz8avJWdT07WLpbwDA== dependencies: - "@jest/types" "^26.0.1" + "@jest/types" "^26.3.0" chalk "^4.0.0" - jest-get-type "^26.0.0" - jest-util "^26.0.1" - pretty-format "^26.0.1" + jest-get-type "^26.3.0" + jest-util "^26.3.0" + pretty-format "^26.4.2" -jest-environment-jsdom@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.0.1.tgz#217690852e5bdd7c846a4e3b50c8ffd441dfd249" - integrity sha512-u88NJa3aptz2Xix2pFhihRBAatwZHWwSiRLBDBQE1cdJvDjPvv7ZGA0NQBxWwDDn7D0g1uHqxM8aGgfA9Bx49g== +jest-environment-jsdom@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.3.0.tgz#3b749ba0f3a78e92ba2c9ce519e16e5dd515220c" + integrity sha512-zra8He2btIMJkAzvLaiZ9QwEPGEetbxqmjEBQwhH3CA+Hhhu0jSiEJxnJMbX28TGUvPLxBt/zyaTLrOPF4yMJA== dependencies: - "@jest/environment" "^26.0.1" - "@jest/fake-timers" "^26.0.1" - "@jest/types" "^26.0.1" - jest-mock "^26.0.1" - jest-util "^26.0.1" + "@jest/environment" "^26.3.0" + "@jest/fake-timers" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + jest-mock "^26.3.0" + jest-util "^26.3.0" jsdom "^16.2.2" -jest-environment-node@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.0.1.tgz#584a9ff623124ff6eeb49e0131b5f7612b310b13" - integrity sha512-4FRBWcSn5yVo0KtNav7+5NH5Z/tEgDLp7VRQVS5tCouWORxj+nI+1tOLutM07Zb2Qi7ja+HEDoOUkjBSWZg/IQ== +jest-environment-node@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.3.0.tgz#56c6cfb506d1597f94ee8d717072bda7228df849" + integrity sha512-c9BvYoo+FGcMj5FunbBgtBnbR5qk3uky8PKyRVpSfe2/8+LrNQMiXX53z6q2kY+j15SkjQCOSL/6LHnCPLVHNw== dependencies: - "@jest/environment" "^26.0.1" - "@jest/fake-timers" "^26.0.1" - "@jest/types" "^26.0.1" - jest-mock "^26.0.1" - jest-util "^26.0.1" + "@jest/environment" "^26.3.0" + "@jest/fake-timers" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + jest-mock "^26.3.0" + jest-util "^26.3.0" jest-esm-transformer@^1.0.0: version "1.0.0" @@ -13449,61 +13487,63 @@ jest-get-type@^25.1.0, jest-get-type@^25.2.6: resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== -jest-get-type@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz#381e986a718998dbfafcd5ec05934be538db4039" - integrity sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg== +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-haste-map@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.0.1.tgz#40dcc03c43ac94d25b8618075804d09cd5d49de7" - integrity sha512-J9kBl/EdjmDsvyv7CiyKY5+DsTvVOScenprz/fGqfLg/pm1gdjbwwQ98nW0t+OIt+f+5nAVaElvn/6wP5KO7KA== +jest-haste-map@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.3.0.tgz#c51a3b40100d53ab777bfdad382d2e7a00e5c726" + integrity sha512-DHWBpTJgJhLLGwE5Z1ZaqLTYqeODQIZpby0zMBsCU9iRFHYyhklYqP4EiG73j5dkbaAdSZhgB938mL51Q5LeZA== dependencies: - "@jest/types" "^26.0.1" + "@jest/types" "^26.3.0" "@types/graceful-fs" "^4.1.2" + "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.4" - jest-serializer "^26.0.0" - jest-util "^26.0.1" - jest-worker "^26.0.0" + jest-regex-util "^26.0.0" + jest-serializer "^26.3.0" + jest-util "^26.3.0" + jest-worker "^26.3.0" micromatch "^4.0.2" sane "^4.0.3" walker "^1.0.7" - which "^2.0.2" optionalDependencies: fsevents "^2.1.2" -jest-jasmine2@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.0.1.tgz#947c40ee816636ba23112af3206d6fa7b23c1c1c" - integrity sha512-ILaRyiWxiXOJ+RWTKupzQWwnPaeXPIoLS5uW41h18varJzd9/7I0QJGqg69fhTT1ev9JpSSo9QtalriUN0oqOg== +jest-jasmine2@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.4.2.tgz#18a9d5bec30904267ac5e9797570932aec1e2257" + integrity sha512-z7H4EpCldHN1J8fNgsja58QftxBSL+JcwZmaXIvV9WKIM+x49F4GLHu/+BQh2kzRKHAgaN/E82od+8rTOBPyPA== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.0.1" - "@jest/source-map" "^26.0.0" - "@jest/test-result" "^26.0.1" - "@jest/types" "^26.0.1" + "@jest/environment" "^26.3.0" + "@jest/source-map" "^26.3.0" + "@jest/test-result" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^26.0.1" + expect "^26.4.2" is-generator-fn "^2.0.0" - jest-each "^26.0.1" - jest-matcher-utils "^26.0.1" - jest-message-util "^26.0.1" - jest-runtime "^26.0.1" - jest-snapshot "^26.0.1" - jest-util "^26.0.1" - pretty-format "^26.0.1" + jest-each "^26.4.2" + jest-matcher-utils "^26.4.2" + jest-message-util "^26.3.0" + jest-runtime "^26.4.2" + jest-snapshot "^26.4.2" + jest-util "^26.3.0" + pretty-format "^26.4.2" throat "^5.0.0" -jest-leak-detector@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.0.1.tgz#79b19ab3f41170e0a78eb8fa754a116d3447fb8c" - integrity sha512-93FR8tJhaYIWrWsbmVN1pQ9ZNlbgRpfvrnw5LmgLRX0ckOJ8ut/I35CL7awi2ecq6Ca4lL59bEK9hr7nqoHWPA== +jest-leak-detector@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.4.2.tgz#c73e2fa8757bf905f6f66fb9e0070b70fa0f573f" + integrity sha512-akzGcxwxtE+9ZJZRW+M2o+nTNnmQZxrHJxX/HjgDaU5+PLmY1qnQPnMjgADPGCRPhB+Yawe1iij0REe+k/aHoA== dependencies: - jest-get-type "^26.0.0" - pretty-format "^26.0.1" + jest-get-type "^26.3.0" + pretty-format "^26.4.2" jest-matcher-utils@^25.1.0: version "25.1.0" @@ -13515,23 +13555,23 @@ jest-matcher-utils@^25.1.0: jest-get-type "^25.1.0" pretty-format "^25.1.0" -jest-matcher-utils@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.0.1.tgz#12e1fc386fe4f14678f4cc8dbd5ba75a58092911" - integrity sha512-PUMlsLth0Azen8Q2WFTwnSkGh2JZ8FYuwijC8NR47vXKpsrKmA1wWvgcj1CquuVfcYiDEdj985u5Wmg7COEARw== +jest-matcher-utils@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.4.2.tgz#fa81f3693f7cb67e5fc1537317525ef3b85f4b06" + integrity sha512-KcbNqWfWUG24R7tu9WcAOKKdiXiXCbMvQYT6iodZ9k1f7065k0keUOW6XpJMMvah+hTfqkhJhRXmA3r3zMAg0Q== dependencies: chalk "^4.0.0" - jest-diff "^26.0.1" - jest-get-type "^26.0.0" - pretty-format "^26.0.1" + jest-diff "^26.4.2" + jest-get-type "^26.3.0" + pretty-format "^26.4.2" -jest-message-util@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.0.1.tgz#07af1b42fc450b4cc8e90e4c9cef11b33ce9b0ac" - integrity sha512-CbK8uQREZ8umUfo8+zgIfEt+W7HAHjQCoRaNs4WxKGhAYBGwEyvxuK81FXa7VeB9pwDEXeeKOB2qcsNVCAvB7Q== +jest-message-util@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.3.0.tgz#3bdb538af27bb417f2d4d16557606fd082d5841a" + integrity sha512-xIavRYqr4/otGOiLxLZGj3ieMmjcNE73Ui+LdSW/Y790j5acqCsAdDiLIbzHCZMpN07JOENRWX5DcU+OQ+TjTA== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.0.1" + "@jest/types" "^26.3.0" "@types/stack-utils" "^1.0.1" chalk "^4.0.0" graceful-fs "^4.2.4" @@ -13539,164 +13579,169 @@ jest-message-util@^26.0.1: slash "^3.0.0" stack-utils "^2.0.2" -jest-mock@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-26.0.1.tgz#7fd1517ed4955397cf1620a771dc2d61fad8fd40" - integrity sha512-MpYTBqycuPYSY6xKJognV7Ja46/TeRbAZept987Zp+tuJvMN0YBWyyhG9mXyYQaU3SBI0TUlSaO5L3p49agw7Q== +jest-mock@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-26.3.0.tgz#ee62207c3c5ebe5f35b760e1267fee19a1cfdeba" + integrity sha512-PeaRrg8Dc6mnS35gOo/CbZovoDPKAeB1FICZiuagAgGvbWdNNyjQjkOaGUa/3N3JtpQ/Mh9P4A2D4Fv51NnP8Q== dependencies: - "@jest/types" "^26.0.1" + "@jest/types" "^26.3.0" + "@types/node" "*" -jest-pnp-resolver@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" - integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== jest-regex-util@^26.0.0: version "26.0.0" resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== -jest-resolve-dependencies@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.0.1.tgz#607ba7ccc32151d185a477cff45bf33bce417f0b" - integrity sha512-9d5/RS/ft0vB/qy7jct/qAhzJsr6fRQJyGAFigK3XD4hf9kIbEH5gks4t4Z7kyMRhowU6HWm/o8ILqhaHdSqLw== +jest-resolve-dependencies@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.4.2.tgz#739bdb027c14befb2fe5aabbd03f7bab355f1dc5" + integrity sha512-ADHaOwqEcVc71uTfySzSowA/RdxUpCxhxa2FNLiin9vWLB1uLPad3we+JSSROq5+SrL9iYPdZZF8bdKM7XABTQ== dependencies: - "@jest/types" "^26.0.1" + "@jest/types" "^26.3.0" jest-regex-util "^26.0.0" - jest-snapshot "^26.0.1" + jest-snapshot "^26.4.2" -jest-resolve@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.0.1.tgz#21d1ee06f9ea270a343a8893051aeed940cde736" - integrity sha512-6jWxk0IKZkPIVTvq6s72RH735P8f9eCJW3IM5CX/SJFeKq1p2cZx0U49wf/SdMlhaB/anann5J2nCJj6HrbezQ== +jest-resolve@^26.4.0: + version "26.4.0" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.4.0.tgz#6dc0af7fb93e65b73fec0368ca2b76f3eb59a6d7" + integrity sha512-bn/JoZTEXRSlEx3+SfgZcJAVuTMOksYq9xe9O6s4Ekg84aKBObEaVXKOEilULRqviSLAYJldnoWV9c07kwtiCg== dependencies: - "@jest/types" "^26.0.1" + "@jest/types" "^26.3.0" chalk "^4.0.0" graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.1" - jest-util "^26.0.1" + jest-pnp-resolver "^1.2.2" + jest-util "^26.3.0" read-pkg-up "^7.0.1" resolve "^1.17.0" slash "^3.0.0" -jest-runner@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-26.0.1.tgz#ea03584b7ae4bacfb7e533d680a575a49ae35d50" - integrity sha512-CApm0g81b49Znm4cZekYQK67zY7kkB4umOlI2Dx5CwKAzdgw75EN+ozBHRvxBzwo1ZLYZ07TFxkaPm+1t4d8jA== +jest-runner@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-26.4.2.tgz#c3ec5482c8edd31973bd3935df5a449a45b5b853" + integrity sha512-FgjDHeVknDjw1gRAYaoUoShe1K3XUuFMkIaXbdhEys+1O4bEJS8Avmn4lBwoMfL8O5oFTdWYKcf3tEJyyYyk8g== dependencies: - "@jest/console" "^26.0.1" - "@jest/environment" "^26.0.1" - "@jest/test-result" "^26.0.1" - "@jest/types" "^26.0.1" + "@jest/console" "^26.3.0" + "@jest/environment" "^26.3.0" + "@jest/test-result" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" chalk "^4.0.0" + emittery "^0.7.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-config "^26.0.1" + jest-config "^26.4.2" jest-docblock "^26.0.0" - jest-haste-map "^26.0.1" - jest-jasmine2 "^26.0.1" - jest-leak-detector "^26.0.1" - jest-message-util "^26.0.1" - jest-resolve "^26.0.1" - jest-runtime "^26.0.1" - jest-util "^26.0.1" - jest-worker "^26.0.0" + jest-haste-map "^26.3.0" + jest-leak-detector "^26.4.2" + jest-message-util "^26.3.0" + jest-resolve "^26.4.0" + jest-runtime "^26.4.2" + jest-util "^26.3.0" + jest-worker "^26.3.0" source-map-support "^0.5.6" throat "^5.0.0" -jest-runtime@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.0.1.tgz#a121a6321235987d294168e282d52b364d7d3f89" - integrity sha512-Ci2QhYFmANg5qaXWf78T2Pfo6GtmIBn2rRaLnklRyEucmPccmCKvS9JPljcmtVamsdMmkyNkVFb9pBTD6si9Lw== +jest-runtime@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.4.2.tgz#94ce17890353c92e4206580c73a8f0c024c33c42" + integrity sha512-4Pe7Uk5a80FnbHwSOk7ojNCJvz3Ks2CNQWT5Z7MJo4tX0jb3V/LThKvD9tKPNVNyeMH98J/nzGlcwc00R2dSHQ== dependencies: - "@jest/console" "^26.0.1" - "@jest/environment" "^26.0.1" - "@jest/fake-timers" "^26.0.1" - "@jest/globals" "^26.0.1" - "@jest/source-map" "^26.0.0" - "@jest/test-result" "^26.0.1" - "@jest/transform" "^26.0.1" - "@jest/types" "^26.0.1" + "@jest/console" "^26.3.0" + "@jest/environment" "^26.3.0" + "@jest/fake-timers" "^26.3.0" + "@jest/globals" "^26.4.2" + "@jest/source-map" "^26.3.0" + "@jest/test-result" "^26.3.0" + "@jest/transform" "^26.3.0" + "@jest/types" "^26.3.0" "@types/yargs" "^15.0.0" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-config "^26.0.1" - jest-haste-map "^26.0.1" - jest-message-util "^26.0.1" - jest-mock "^26.0.1" + jest-config "^26.4.2" + jest-haste-map "^26.3.0" + jest-message-util "^26.3.0" + jest-mock "^26.3.0" jest-regex-util "^26.0.0" - jest-resolve "^26.0.1" - jest-snapshot "^26.0.1" - jest-util "^26.0.1" - jest-validate "^26.0.1" + jest-resolve "^26.4.0" + jest-snapshot "^26.4.2" + jest-util "^26.3.0" + jest-validate "^26.4.2" slash "^3.0.0" strip-bom "^4.0.0" yargs "^15.3.1" -jest-serializer@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.0.0.tgz#f6c521ddb976943b93e662c0d4d79245abec72a3" - integrity sha512-sQGXLdEGWFAE4wIJ2ZaIDb+ikETlUirEOBsLXdoBbeLhTHkZUJwgk3+M8eyFizhM6le43PDCCKPA1hzkSDo4cQ== +jest-serializer@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.3.0.tgz#1c9d5e1b74d6e5f7e7f9627080fa205d976c33ef" + integrity sha512-IDRBQBLPlKa4flg77fqg0n/pH87tcRKwe8zxOVTWISxGpPHYkRZ1dXKyh04JOja7gppc60+soKVZ791mruVdow== dependencies: + "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.0.1.tgz#1baa942bd83d47b837a84af7fcf5fd4a236da399" - integrity sha512-jxd+cF7+LL+a80qh6TAnTLUZHyQoWwEHSUFJjkw35u3Gx+BZUNuXhYvDqHXr62UQPnWo2P6fvQlLjsU93UKyxA== +jest-snapshot@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.4.2.tgz#87d3ac2f2bd87ea8003602fbebd8fcb9e94104f6" + integrity sha512-N6Uub8FccKlf5SBFnL2Ri/xofbaA68Cc3MGjP/NuwgnsvWh+9hLIR/DhrxbSiKXMY9vUW5dI6EW1eHaDHqe9sg== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^26.0.1" + "@jest/types" "^26.3.0" "@types/prettier" "^2.0.0" chalk "^4.0.0" - expect "^26.0.1" + expect "^26.4.2" graceful-fs "^4.2.4" - jest-diff "^26.0.1" - jest-get-type "^26.0.0" - jest-matcher-utils "^26.0.1" - jest-message-util "^26.0.1" - jest-resolve "^26.0.1" - make-dir "^3.0.0" + jest-diff "^26.4.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.3.0" + jest-matcher-utils "^26.4.2" + jest-message-util "^26.3.0" + jest-resolve "^26.4.0" natural-compare "^1.4.0" - pretty-format "^26.0.1" + pretty-format "^26.4.2" semver "^7.3.2" -jest-util@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-26.0.1.tgz#72c4c51177b695fdd795ca072a6f94e3d7cef00a" - integrity sha512-byQ3n7ad1BO/WyFkYvlWQHTsomB6GIewBh8tlGtusiylAlaxQ1UpS0XYH0ngOyhZuHVLN79Qvl6/pMiDMSSG1g== +jest-util@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-26.3.0.tgz#a8974b191df30e2bf523ebbfdbaeb8efca535b3e" + integrity sha512-4zpn6bwV0+AMFN0IYhH/wnzIQzRaYVrz1A8sYnRnj4UXDXbOVtWmlaZkO9mipFqZ13okIfN87aDoJWB7VH6hcw== dependencies: - "@jest/types" "^26.0.1" + "@jest/types" "^26.3.0" + "@types/node" "*" chalk "^4.0.0" graceful-fs "^4.2.4" is-ci "^2.0.0" - make-dir "^3.0.0" + micromatch "^4.0.2" -jest-validate@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-26.0.1.tgz#a62987e1da5b7f724130f904725e22f4e5b2e23c" - integrity sha512-u0xRc+rbmov/VqXnX3DlkxD74rHI/CfS5xaV2VpeaVySjbb1JioNVOyly5b56q2l9ZKe7bVG5qWmjfctkQb0bA== +jest-validate@^26.4.2: + version "26.4.2" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-26.4.2.tgz#e871b0dfe97747133014dcf6445ee8018398f39c" + integrity sha512-blft+xDX7XXghfhY0mrsBCYhX365n8K5wNDC4XAcNKqqjEzsRUSXP44m6PL0QJEW2crxQFLLztVnJ4j7oPlQrQ== dependencies: - "@jest/types" "^26.0.1" + "@jest/types" "^26.3.0" camelcase "^6.0.0" chalk "^4.0.0" - jest-get-type "^26.0.0" + jest-get-type "^26.3.0" leven "^3.1.0" - pretty-format "^26.0.1" + pretty-format "^26.4.2" -jest-watcher@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.0.1.tgz#5b5e3ebbdf10c240e22a98af66d645631afda770" - integrity sha512-pdZPydsS8475f89kGswaNsN3rhP6lnC3/QDCppP7bg1L9JQz7oU9Mb/5xPETk1RHDCWeqmVC47M4K5RR7ejxFw== +jest-watcher@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.3.0.tgz#f8ef3068ddb8af160ef868400318dc4a898eed08" + integrity sha512-XnLdKmyCGJ3VoF6G/p5ohbJ04q/vv5aH9ENI+i6BL0uu9WWB6Z7Z2lhQQk0d2AVZcRGp1yW+/TsoToMhBFPRdQ== dependencies: - "@jest/test-result" "^26.0.1" - "@jest/types" "^26.0.1" + "@jest/test-result" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^26.0.1" + jest-util "^26.3.0" string-length "^4.0.1" jest-worker@^25.1.0: @@ -13707,22 +13752,23 @@ jest-worker@^25.1.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.0.0.tgz#4920c7714f0a96c6412464718d0c58a3df3fb066" - integrity sha512-pPaYa2+JnwmiZjK9x7p9BoZht+47ecFCDFA/CJxspHzeDvQcfVBLWzCiWyo+EGrSiQMWZtCFo9iSvMZnAAo8vw== +jest-worker@^26.3.0: + version "26.3.0" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz#7c8a97e4f4364b4f05ed8bca8ca0c24de091871f" + integrity sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw== dependencies: + "@types/node" "*" merge-stream "^2.0.0" supports-color "^7.0.0" jest@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/jest/-/jest-26.0.1.tgz#5c51a2e58dff7525b65f169721767173bf832694" - integrity sha512-29Q54kn5Bm7ZGKIuH2JRmnKl85YRigp0o0asTc6Sb6l2ch1DCXIeZTLLFy9ultJvhkTqbswF5DEx4+RlkmCxWg== + version "26.4.2" + resolved "https://registry.npmjs.org/jest/-/jest-26.4.2.tgz#7e8bfb348ec33f5459adeaffc1a25d5752d9d312" + integrity sha512-LLCjPrUh98Ik8CzW8LLVnSCfLaiY+wbK53U7VxnFSX7Q+kWC4noVeDvGWIFw0Amfq1lq2VfGm7YHWSLBV62MJw== dependencies: - "@jest/core" "^26.0.1" + "@jest/core" "^26.4.2" import-local "^3.0.2" - jest-cli "^26.0.1" + jest-cli "^26.4.2" jose@^1.27.1: version "1.27.1" @@ -15839,16 +15885,16 @@ node-modules-regexp@^1.0.0: resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-7.0.0.tgz#513bc42f2aa3a49fce1980a7ff375957c71f718a" - integrity sha512-y8ThJESxsHcak81PGpzWwQKxzk+5YtP3IxR8AYdpXQ1IB6FmcVzFdZXrkPin49F/DKUCfeeiziB8ptY9npzGuA== +node-notifier@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz#a7eee2d51da6d0f7ff5094bc7108c911240c1620" + integrity sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA== dependencies: growly "^1.3.0" - is-wsl "^2.1.1" - semver "^7.2.1" + is-wsl "^2.2.0" + semver "^7.3.2" shellwords "^0.1.1" - uuid "^7.0.3" + uuid "^8.3.0" which "^2.0.2" node-pre-gyp@^0.11.0: @@ -17817,16 +17863,6 @@ pretty-format@^25.1.0, pretty-format@^25.2.1, pretty-format@^25.5.0: ansi-styles "^4.0.0" react-is "^16.12.0" -pretty-format@^26.0.1: - version "26.0.1" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.0.1.tgz#a4fe54fe428ad2fd3413ca6bbd1ec8c2e277e197" - integrity sha512-SWxz6MbupT3ZSlL0Po4WF/KujhQaVehijR2blyRDCzk9e45EaYMVhMBn49fnRuHxtkSpXTes1GxNpVmH86Bxfw== - dependencies: - "@jest/types" "^26.0.1" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^16.12.0" - pretty-format@^26.4.2: version "26.4.2" resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.4.2.tgz#d081d032b398e801e2012af2df1214ef75a81237" @@ -22312,7 +22348,7 @@ uuid@^7.0.3: resolved "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== -uuid@^8.0.0, uuid@^8.2.0: +uuid@^8.0.0, uuid@^8.2.0, uuid@^8.3.0: version "8.3.0" resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== @@ -22322,10 +22358,10 @@ v8-compile-cache@^2.0.3: resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== -v8-to-istanbul@^4.1.3: - version "4.1.4" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz#b97936f21c0e2d9996d4985e5c5156e9d4e49cd6" - integrity sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ== +v8-to-istanbul@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz#0608f5b49a481458625edb058488607f25498ba5" + integrity sha512-mbDNjuDajqYe3TXFk5qxcQy8L1msXNE37WTlLoqqpBfRsimbNcrlhQlDPntmECEcUvdC+AQ8CyMMf6EUx1r74Q== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" From a7e922250aa1a63798a07a1798896b02793461ad Mon Sep 17 00:00:00 2001 From: Marcus Eide Date: Tue, 1 Sep 2020 14:21:05 +0200 Subject: [PATCH 333/656] Add instructions on how to refresh existing release PR --- docs/plugins/publishing.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/plugins/publishing.md b/docs/plugins/publishing.md index 1d16ebb047..6fee4f9b1d 100644 --- a/docs/plugins/publishing.md +++ b/docs/plugins/publishing.md @@ -39,4 +39,18 @@ $ git push origin -u new-release And then create a PR. Once the PR is approved and merged into master, the master build will publish new versions of all bumped packages. +### Include new changes in existing release PR + +If you want to include some last minute changes to an existing release PR, +follow these instructions: + +```sh +$ git checkout master +$ git pull +$ git checkout new-release +$ git reset --hard master +$ yarn release +$ git push --force +``` + [Back to Docs](../README.md) From 9f59ee821a98ad66d7193d88dca22894100006e7 Mon Sep 17 00:00:00 2001 From: Marcus Eide Date: Wed, 2 Sep 2020 11:07:33 +0200 Subject: [PATCH 334/656] Add new log format --- packages/backend-common/package.json | 3 +- .../backend-common/src/logging/formats.ts | 35 +++++++++++++++++++ .../backend-common/src/logging/rootLogger.ts | 7 ++-- 3 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 packages/backend-common/src/logging/formats.ts diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 92d301d7e3..248e638ead 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -46,7 +46,8 @@ "prom-client": "^12.0.0", "selfsigned": "^1.10.7", "stoppable": "^1.1.0", - "winston": "^3.2.1" + "winston": "^3.2.1", + "logform": "^2.1.1" }, "peerDependencies": { "pg-connection-string": "^2.3.0" diff --git a/packages/backend-common/src/logging/formats.ts b/packages/backend-common/src/logging/formats.ts new file mode 100644 index 0000000000..5f00448744 --- /dev/null +++ b/packages/backend-common/src/logging/formats.ts @@ -0,0 +1,35 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 * as winston from 'winston'; +import { TransformableInfo } from 'logform'; + +const coloredTemplate = (info: TransformableInfo) => { + const { timestamp, level, message, plugin, service } = info; + const colorizer = winston.format.colorize(); + const prefix = plugin || service; + const timestampColor = colorizer.colorize('timestamp', timestamp); + const prefixColor = colorizer.colorize('prefix', prefix); + + return `${timestampColor} ${prefixColor} ${level} ${message}`; +}; + +export const coloredFormat = winston.format.combine( + winston.format.timestamp(), + winston.format.colorize({ + colors: { timestamp: 'dim', prefix: 'blue' }, + }), + winston.format.printf(coloredTemplate), +); diff --git a/packages/backend-common/src/logging/rootLogger.ts b/packages/backend-common/src/logging/rootLogger.ts index fd2f3a1c8b..306ed23444 100644 --- a/packages/backend-common/src/logging/rootLogger.ts +++ b/packages/backend-common/src/logging/rootLogger.ts @@ -14,17 +14,14 @@ * limitations under the License. */ import * as winston from 'winston'; +import { coloredFormat } from './formats'; let rootLogger: winston.Logger = winston.createLogger({ level: process.env.LOG_LEVEL || 'info', format: process.env.NODE_ENV === 'production' ? winston.format.json() - : winston.format.combine( - winston.format.colorize(), - winston.format.timestamp(), - winston.format.simple(), - ), + : coloredFormat, defaultMeta: { service: 'backstage' }, transports: [ new winston.transports.Console({ From 7d8058a1ef0fab41a6801e8f3ecbf616098a2faf Mon Sep 17 00:00:00 2001 From: Marcus Eide Date: Wed, 2 Sep 2020 11:08:40 +0200 Subject: [PATCH 335/656] Make http-proxy-middleware log to supplied logger --- plugins/proxy-backend/src/service/router.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/plugins/proxy-backend/src/service/router.ts b/plugins/proxy-backend/src/service/router.ts index 5273b2c806..5c5e17b872 100644 --- a/plugins/proxy-backend/src/service/router.ts +++ b/plugins/proxy-backend/src/service/router.ts @@ -34,6 +34,7 @@ export interface RouterOptions { // given config. function buildMiddleware( pathPrefix: string, + logger: Logger, route: string, config: string | ProxyConfig, ): Proxy { @@ -54,6 +55,9 @@ function buildMiddleware( fullConfig.changeOrigin = true; } + // Attach the logger to the proxy config + fullConfig.logProvider = () => logger; + return createProxyMiddleware(fullConfig); } @@ -66,7 +70,12 @@ export async function createRouter( Object.entries(proxyConfig).forEach(([route, proxyRouteConfig]) => { router.use( route, - buildMiddleware(options.pathPrefix, route, proxyRouteConfig), + buildMiddleware( + options.pathPrefix, + options.logger, + route, + proxyRouteConfig, + ), ); }); From dac617b436090565a89a0f5f55b0a7471e3284f3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 2 Sep 2020 11:39:59 +0200 Subject: [PATCH 336/656] create-app: remove duplicate techdocs plugin from app package --- .../templates/default-app/packages/app/package.json.hbs | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index 57ec119ed5..c432f27a3a 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -17,7 +17,6 @@ "@backstage/plugin-lighthouse": "^{{version}}", "@backstage/plugin-tech-radar": "^{{version}}", "@backstage/plugin-github-actions": "^{{version}}", - "@backstage/plugin-techdocs": "^{{version}}", "@backstage/plugin-sentry": "^{{version}}", "@backstage/test-utils": "^{{version}}", "@backstage/theme": "^{{version}}", From 992dfd545212f82cdeb83e2fc48921a4faa45e99 Mon Sep 17 00:00:00 2001 From: "althaf.hameez" Date: Wed, 2 Sep 2020 18:13:25 +0800 Subject: [PATCH 337/656] rebase --- ADOPTERS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ADOPTERS.md b/ADOPTERS.md index dc02ad3b85..0ba3e3196b 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -12,3 +12,4 @@ | [Voi](https://www.voiscooters.com/) | [@K-Phoen](https://github.com/K-Phoen) | Developer portal, main gateway to our infrastructure, documentation and internal tooling. | | [Talkdesk](https://www.talkdesk.com) | [@jaime-talkdesk](https://github.com/jaime-talkdesk) | Initial work for Engineering Portal and Self Provisioning to R&D | | [Wealthsimple](https://www.wealthsimple.com) | [@andrewthauer](https://github.com/andrewthauer) | Developer portal, service catalog, documentation and tooling | +| [Grab](https://www.grab.com) | [@althafh](https://github.com/althafh) | Initial work as a unified interface for all of Grab's internal tooling | From 0af1ce25caf544271e186f74f9429eecc99e1cd6 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 2 Sep 2020 13:01:27 +0200 Subject: [PATCH 338/656] techdocs-backend: use resolvePackagePath instead of __dirname --- plugins/techdocs-backend/src/service/router.ts | 12 +++++++----- .../src/techdocs/stages/publish/local.ts | 8 ++++---- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/plugins/techdocs-backend/src/service/router.ts b/plugins/techdocs-backend/src/service/router.ts index f93d182edc..bb26ea19b8 100644 --- a/plugins/techdocs-backend/src/service/router.ts +++ b/plugins/techdocs-backend/src/service/router.ts @@ -19,7 +19,6 @@ import express from 'express'; import Knex from 'knex'; import fetch from 'node-fetch'; import { Config } from '@backstage/config'; -import path from 'path'; import Docker from 'dockerode'; import { GeneratorBuilder, @@ -27,6 +26,7 @@ import { PublisherBase, LocalPublish, } from '../techdocs'; +import { resolvePackagePath } from '@backstage/backend-common'; import { Entity } from '@backstage/catalog-model'; type RouterOptions = { @@ -39,6 +39,11 @@ type RouterOptions = { dockerClient: Docker; }; +const staticDocsDir = resolvePackagePath( + '@backstage/plugin-techdocs-backend', + 'static/docs', +); + export async function createRouter({ preparers, generators, @@ -102,10 +107,7 @@ export async function createRouter({ }); if (publisher instanceof LocalPublish) { - router.use( - '/static/docs/', - express.static(path.resolve(__dirname, `../../static/docs`)), - ); + router.use('/static/docs/', express.static(staticDocsDir)); router.use( '/static/docs/:kind/:namespace/:name', async (req, res, next) => { diff --git a/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts b/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts index be9e1876d8..e33c6fa17d 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/publish/local.ts @@ -14,10 +14,10 @@ * limitations under the License. */ import fs from 'fs-extra'; -import path from 'path'; import { Logger } from 'winston'; import { Entity } from '@backstage/catalog-model'; import { PublisherBase } from './types'; +import { resolvePackagePath } from '@backstage/backend-common'; export class LocalPublish implements PublisherBase { private readonly logger: Logger; @@ -39,9 +39,9 @@ export class LocalPublish implements PublisherBase { | { remoteUrl: string } { const entityNamespace = entity.metadata.namespace ?? 'default'; - const publishDir = path.resolve( - __dirname, - '../../../../static/docs/', + const publishDir = resolvePackagePath( + '@backstage/plugin-techdocs-backend', + 'static/docs', entity.kind, entityNamespace, entity.metadata.name, From 8ac23713029bfbab7d36261f62de8468a5ef1f9b Mon Sep 17 00:00:00 2001 From: Marcus Eide Date: Wed, 2 Sep 2020 14:03:35 +0200 Subject: [PATCH 339/656] Remove sentry from create-app --- .../templates/default-app/app-config.yaml.hbs | 3 --- .../default-app/packages/app/package.json.hbs | 1 - .../default-app/packages/app/src/plugins.ts | 1 - .../packages/backend/package.json.hbs | 1 - .../default-app/packages/backend/src/index.ts | 3 --- .../packages/backend/src/plugins/sentry.ts | 22 ------------------- 6 files changed, 31 deletions(-) delete mode 100644 packages/create-app/templates/default-app/packages/backend/src/plugins/sentry.ts diff --git a/packages/create-app/templates/default-app/app-config.yaml.hbs b/packages/create-app/templates/default-app/app-config.yaml.hbs index 64185e43d3..d5a8e9b200 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -44,9 +44,6 @@ proxy: techdocs: storageUrl: http://localhost:7000/techdocs/static/docs -sentry: - organization: spotify - lighthouse: baseUrl: http://localhost:3003 diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index c432f27a3a..9d4993c4dc 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -17,7 +17,6 @@ "@backstage/plugin-lighthouse": "^{{version}}", "@backstage/plugin-tech-radar": "^{{version}}", "@backstage/plugin-github-actions": "^{{version}}", - "@backstage/plugin-sentry": "^{{version}}", "@backstage/test-utils": "^{{version}}", "@backstage/theme": "^{{version}}", "history": "^5.0.0", diff --git a/packages/create-app/templates/default-app/packages/app/src/plugins.ts b/packages/create-app/templates/default-app/packages/app/src/plugins.ts index 0d54c55649..c787ac2166 100644 --- a/packages/create-app/templates/default-app/packages/app/src/plugins.ts +++ b/packages/create-app/templates/default-app/packages/app/src/plugins.ts @@ -7,4 +7,3 @@ export { plugin as Circleci } from '@backstage/plugin-circleci'; export { plugin as LighthousePlugin } from '@backstage/plugin-lighthouse'; export { plugin as TechRadar } from '@backstage/plugin-tech-radar'; export { plugin as GithubActions } from '@backstage/plugin-github-actions'; -export { plugin as Sentry } from '@backstage/plugin-sentry'; diff --git a/packages/create-app/templates/default-app/packages/backend/package.json.hbs b/packages/create-app/templates/default-app/packages/backend/package.json.hbs index a978349b02..53bfd6d990 100644 --- a/packages/create-app/templates/default-app/packages/backend/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/backend/package.json.hbs @@ -26,7 +26,6 @@ "@backstage/plugin-proxy-backend": "^{{version}}", "@backstage/plugin-rollbar-backend": "^{{version}}", "@backstage/plugin-scaffolder-backend": "^{{version}}", - "@backstage/plugin-sentry-backend": "^{{version}}", "@backstage/plugin-techdocs-backend": "^{{version}}", "@octokit/rest": "^18.0.0", "dockerode": "^3.2.0", diff --git a/packages/create-app/templates/default-app/packages/backend/src/index.ts b/packages/create-app/templates/default-app/packages/backend/src/index.ts index 6ba6c4dc8e..6a014727e9 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/index.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/index.ts @@ -20,7 +20,6 @@ import identity from './plugins/identity'; import scaffolder from './plugins/scaffolder'; import proxy from './plugins/proxy'; import techdocs from './plugins/techdocs'; -import sentry from './plugins/sentry'; import { PluginEnvironment } from './types'; function makeCreateEnv(loadedConfigs: AppConfig[]) { @@ -51,13 +50,11 @@ async function main() { const identityEnv = useHotMemoize(module, () => createEnv('identity')); const proxyEnv = useHotMemoize(module, () => createEnv('proxy')); const techdocsEnv = useHotMemoize(module, () => createEnv('techdocs')); - const sentryEnv = useHotMemoize(module, () => createEnv('sentry')); const service = createServiceBuilder(module) .loadConfig(configReader) .addRouter('/catalog', await catalog(catalogEnv)) .addRouter('/scaffolder', await scaffolder(scaffolderEnv)) - .addRouter('/sentry', await sentry(sentryEnv)) .addRouter('/auth', await auth(authEnv)) .addRouter('/identity', await identity(identityEnv)) .addRouter('/techdocs', await techdocs(techdocsEnv)) diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/sentry.ts b/packages/create-app/templates/default-app/packages/backend/src/plugins/sentry.ts deleted file mode 100644 index 5cd0e55761..0000000000 --- a/packages/create-app/templates/default-app/packages/backend/src/plugins/sentry.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { createRouter } from '@backstage/plugin-sentry-backend'; -import type { PluginEnvironment } from '../types'; - -export default async function createPlugin({ logger }: PluginEnvironment) { - return await createRouter(logger); -} From c08a83260e7da58b4458965e4e6022756f1ba6f6 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 2 Sep 2020 14:21:58 +0200 Subject: [PATCH 340/656] auth-backend: use correct interface in factory return type --- plugins/auth-backend/src/providers/types.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/auth-backend/src/providers/types.ts b/plugins/auth-backend/src/providers/types.ts index 80b8899d94..b3b7e518cc 100644 --- a/plugins/auth-backend/src/providers/types.ts +++ b/plugins/auth-backend/src/providers/types.ts @@ -18,8 +18,6 @@ import express from 'express'; import { Logger } from 'winston'; import { TokenIssuer } from '../identity'; import { Config } from '@backstage/config'; -import { OAuthProvider } from '../lib/OAuthProvider'; -import { SamlAuthProvider } from './saml/provider'; export type OAuthProviderOptions = { /** @@ -174,7 +172,7 @@ export type AuthProviderFactory = ( envConfig: Config, logger: Logger, issuer: TokenIssuer, -) => OAuthProvider | SamlAuthProvider | undefined; +) => AuthProviderRouteHandlers | undefined; export type AuthResponse = { providerInfo: ProviderInfo; From 46642db53dc5dbfd60851503e44597cdf03371c3 Mon Sep 17 00:00:00 2001 From: NetPenguins Date: Wed, 2 Sep 2020 08:31:27 -0400 Subject: [PATCH 341/656] Updated ExpansionPanel to Accordion --- .../lib/ActionOutput/ActionOutput.tsx | 20 ++++++++-------- .../WorkflowRunDetails/WorkflowRunDetails.tsx | 20 ++++++++-------- .../lib/ActionOutput/ActionOutput.tsx | 20 ++++++++-------- .../src/components/JobStage/JobStage.tsx | 24 +++++++++---------- 4 files changed, 42 insertions(+), 42 deletions(-) diff --git a/plugins/circleci/src/pages/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx b/plugins/circleci/src/pages/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx index dd526c1b5f..bc64040d77 100644 --- a/plugins/circleci/src/pages/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx +++ b/plugins/circleci/src/pages/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx @@ -15,10 +15,10 @@ */ import React, { useEffect, useState, FC, Suspense } from 'react'; import { - ExpansionPanel, - ExpansionPanelSummary, + Accordion, + AccordionSummary, Typography, - ExpansionPanelDetails, + AccordionDetails, LinearProgress, } from '@material-ui/core'; import moment from 'moment'; @@ -29,7 +29,7 @@ import { BuildStepAction } from 'circleci-api'; const LazyLog = React.lazy(() => import('react-lazylog/build/LazyLog')); moment.relativeTimeThreshold('ss', 0); const useStyles = makeStyles({ - expansionPanelDetails: { + accordionDetails: { padding: 0, }, button: { @@ -66,11 +66,11 @@ export const ActionOutput: FC<{ ) .humanize(); return ( - - } aria-controls={`panel-${name}-content`} id={`panel-${name}-header`} @@ -81,8 +81,8 @@ export const ActionOutput: FC<{ {name} ({timeElapsed}) - - + + {messages.length === 0 ? ( 'Nothing here...' ) : ( @@ -92,7 +92,7 @@ export const ActionOutput: FC<{ )} - - + + ); }; diff --git a/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx b/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx index a635eb9acb..0d1a0b6a50 100644 --- a/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx +++ b/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx @@ -26,10 +26,10 @@ import { TableRow, TableCell, ListItemText, - ExpansionPanel, - ExpansionPanelSummary, + Accordion, + AccordionSummary, Typography, - ExpansionPanelDetails, + AccordionDetails, TableContainer, Table, Paper, @@ -56,7 +56,7 @@ const useStyles = makeStyles(theme => ({ table: { padding: theme.spacing(1), }, - expansionPanelDetails: { + accordionDetails: { padding: 0, }, button: { @@ -113,11 +113,11 @@ const StepView = ({ step }: { step: Step }) => { const JobListItem = ({ job, className }: { job: Job; className: string }) => { const classes = useStyles(); return ( - - } aria-controls={`panel-${name}-content`} id={`panel-${name}-header`} @@ -128,8 +128,8 @@ const JobListItem = ({ job, className }: { job: Job; className: string }) => { {job.name} ({getElapsedTime(job.started_at, job.completed_at)}) - - + +
{job.steps.map((step: Step) => ( @@ -137,7 +137,7 @@ const JobListItem = ({ job, className }: { job: Job; className: string }) => { ))}
- + {job.status === "queued" || job.status === "in_progress" ? { /> } - + ); }; diff --git a/plugins/jenkins/src/pages/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx b/plugins/jenkins/src/pages/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx index 1143121a98..5964a8dcbf 100644 --- a/plugins/jenkins/src/pages/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx +++ b/plugins/jenkins/src/pages/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx @@ -15,16 +15,16 @@ */ import React, { useEffect, FC } from 'react'; import { - ExpansionPanel, - ExpansionPanelSummary, + Accordion, + AccordionSummary, Typography, - ExpansionPanelDetails, + AccordionDetails, } from '@material-ui/core'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import { makeStyles } from '@material-ui/core/styles'; const useStyles = makeStyles({ - expansionPanelDetails: { + accordionDetails: { padding: 0, }, button: { @@ -45,11 +45,11 @@ export const ActionOutput: FC<{ useEffect(() => {}, [url]); return ( - - } aria-controls={`panel-${name}-content`} id={`panel-${name}-header`} @@ -58,10 +58,10 @@ export const ActionOutput: FC<{ }} > {name} - - + + Nothing here... - - + + ); }; diff --git a/plugins/scaffolder/src/components/JobStage/JobStage.tsx b/plugins/scaffolder/src/components/JobStage/JobStage.tsx index 1e9adafb18..c8c7c79e26 100644 --- a/plugins/scaffolder/src/components/JobStage/JobStage.tsx +++ b/plugins/scaffolder/src/components/JobStage/JobStage.tsx @@ -15,9 +15,9 @@ */ import { Box, - ExpansionPanel, - ExpansionPanelDetails, - ExpansionPanelSummary, + Accordion, + AccordionDetails, + AccordionSummary, LinearProgress, Typography, } from '@material-ui/core'; @@ -32,7 +32,7 @@ const LazyLog = React.lazy(() => import('react-lazylog/build/LazyLog')); moment.relativeTimeThreshold('ss', 0); const useStyles = makeStyles(theme => ({ - expansionPanelDetails: { + accordionDetails: { padding: 0, }, button: { @@ -43,7 +43,7 @@ const useStyles = makeStyles(theme => ({ cardContent: { backgroundColor: theme.palette.background.default, }, - expansionPanel: { + accordion: { position: 'relative', '&:after': { pointerEvents: 'none', @@ -98,17 +98,17 @@ export const JobStage = ({ endedAt, startedAt, name, log, status }: Props) => { : null; return ( - ] ?? classes.neutral, )} expanded={expanded} onChange={(_, newState) => setExpanded(newState)} > - } aria-controls={`panel-${name}-content`} id={`panel-${name}-header`} @@ -119,8 +119,8 @@ export const JobStage = ({ endedAt, startedAt, name, log, status }: Props) => { {name} {timeElapsed && `(${timeElapsed})`} - - + + {log.length === 0 ? ( No logs available for this step ) : ( @@ -130,7 +130,7 @@ export const JobStage = ({ endedAt, startedAt, name, log, status }: Props) => {
)} - - + + ); }; From 07c9a9474a111f8e8dcd1787734135dd52f19b29 Mon Sep 17 00:00:00 2001 From: Sebastian Qvarfordt Date: Wed, 2 Sep 2020 15:30:35 +0200 Subject: [PATCH 342/656] Get branchname from repo instance instead of location url (#2242) --- .../techdocs-backend/src/techdocs/stages/prepare/helpers.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/helpers.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/helpers.ts index b2f04bbbbf..27e746590a 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/helpers.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/helpers.ts @@ -79,9 +79,10 @@ export const checkoutGitRepository = async ( if (fs.existsSync(repositoryTmpPath)) { const repository = await Repository.open(repositoryTmpPath); + const currentBranchName = (await repository.getCurrentBranch()).shorthand(); await repository.mergeBranches( - parsedGitLocation.ref, - `origin/${parsedGitLocation.ref}`, + currentBranchName, + `origin/${currentBranchName}`, ); return repositoryTmpPath; } From 9988479c61cfac34e6e5089797d5316790858b51 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Wed, 2 Sep 2020 15:56:14 +0200 Subject: [PATCH 343/656] refactor: address PR comments --- docs/plugins/index.md | 4 +-- ...integrating-plugin-into-service-catalog.md | 5 ++- packages/app/src/App.tsx | 8 ++--- .../app/src/components/catalog/EntityPage.tsx | 7 ++++- packages/core-api/src/app/App.tsx | 11 ++----- packages/core-api/src/app/types.ts | 2 +- packages/dev-utils/src/devApp/render.tsx | 4 +-- packages/e2e-test/src/e2e-test.ts | 13 ++++---- .../EntityPageLayout/EntityPageLayout.tsx | 9 +++--- .../EntityPageLayout/Tabbed/Tabbed.test.tsx | 15 +++++++++ .../EntityPageLayout/Tabbed/Tabbed.tsx | 15 +++++---- .../catalog/src/{ => components}/Router.tsx | 31 ++++++++++--------- plugins/catalog/src/hooks/useEntity.ts | 29 +++++++---------- plugins/catalog/src/index.ts | 2 +- plugins/catalog/src/routes.ts | 5 --- .../JobStatusModal/JobStatusModal.tsx | 4 +-- 16 files changed, 86 insertions(+), 78 deletions(-) rename plugins/catalog/src/{ => components}/Router.tsx (71%) diff --git a/docs/plugins/index.md b/docs/plugins/index.md index 6941ff3e18..41ad082d7c 100644 --- a/docs/plugins/index.md +++ b/docs/plugins/index.md @@ -27,9 +27,9 @@ This helps the community know what plugins are in development. You can also use this process if you have an idea for a good plugin but you hope that someone else will pick up the work. -## Integrate into the catalog service +## Integrate into the Service Catalog If your plugin isn't supposed to live as a standalone page, but rather needs to -be presented as a part of a catalog service (e.g. a separate tab or a card on an +be presented as a part of a Service Catalog (e.g. a separate tab or a card on an "Overview" tab), then check out [the instruction](integrating-plugin-into-service-catalog.md). on how to do it. diff --git a/docs/plugins/integrating-plugin-into-service-catalog.md b/docs/plugins/integrating-plugin-into-service-catalog.md index 7819737c52..4408c27ccc 100644 --- a/docs/plugins/integrating-plugin-into-service-catalog.md +++ b/docs/plugins/integrating-plugin-into-service-catalog.md @@ -1,6 +1,6 @@ --- id: integrating-plugin-into-service-catalog -title: Integrate into the catalog service +title: Integrate into the Service Catalog --- > This is an advanced use case and currently is an experimental feature. Expect @@ -119,7 +119,6 @@ type EntityPageLayoutContentProps = { }; ``` -> The recommended pattern is to get the `entity` in the App and then pass it to -> the plugin's Router component as a prop. However if it inconvenient for you, +> You can either pass the entity from App to the plugin's router as a prop or > use `useEntity` hook from `@backstage/plugin-catalog` directly inside your > plugin. diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 642eb7b004..cb38726716 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -26,8 +26,7 @@ import * as plugins from './plugins'; import { apis } from './apis'; import { hot } from 'react-hot-loader/root'; import { providers } from './identityProviders'; -import { CatalogRouter } from '@backstage/plugin-catalog'; -// import { ExplorePlugin } from '@backstage/plugin-explore'; +import { Router as CatalogRouter } from '@backstage/plugin-catalog'; import { Route, Routes, Navigate } from 'react-router'; import { EntityPage } from './components/catalog/EntityPage'; @@ -51,6 +50,7 @@ const app = createApp({ const AppProvider = app.getProvider(); const AppRouter = app.getRouter(); +const deprecatedAppRoutes = app.getRoutes(); const AppRoutes = () => ( @@ -58,8 +58,8 @@ const AppRoutes = () => ( path="/catalog/*" element={} /> - } /> - {/* } /> */} + + {...deprecatedAppRoutes} ); diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx index b56268036f..913c063f90 100644 --- a/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/app/src/components/catalog/EntityPage.tsx @@ -21,9 +21,14 @@ import { AboutCard, } from '@backstage/plugin-catalog'; import { Entity } from '@backstage/catalog-model'; +import { Grid } from '@material-ui/core'; const OverviewPage = ({ entity }: { entity: Entity }) => ( - + + + + + ); const ServiceEntityPage = ({ entity }: { entity: Entity }) => ( diff --git a/packages/core-api/src/app/App.tsx b/packages/core-api/src/app/App.tsx index 27a63ea04a..bfa26b7547 100644 --- a/packages/core-api/src/app/App.tsx +++ b/packages/core-api/src/app/App.tsx @@ -136,7 +136,7 @@ export class PrivateAppImpl implements BackstageApp { return this.icons[key]; } - getRoutes(): ComponentType<{}> { + getRoutes(): JSX.Element[] { const routes = new Array(); const registeredFeatureFlags = new Array(); @@ -191,14 +191,9 @@ export class PrivateAppImpl implements BackstageApp { FeatureFlags.registeredFeatureFlags = registeredFeatureFlags; } - const rendered = ( - - {routes} - } /> - - ); + routes.push(} />); - return () => rendered; + return routes; } getProvider(): ComponentType<{}> { diff --git a/packages/core-api/src/app/types.ts b/packages/core-api/src/app/types.ts index 6b022c2736..db7a0897b1 100644 --- a/packages/core-api/src/app/types.ts +++ b/packages/core-api/src/app/types.ts @@ -168,5 +168,5 @@ export type BackstageApp = { /** * Routes component that contains all routes for plugin pages in the app. */ - getRoutes(): ComponentType<{}>; + getRoutes(): JSX.Element[]; }; diff --git a/packages/dev-utils/src/devApp/render.tsx b/packages/dev-utils/src/devApp/render.tsx index 410f7592a5..cde39fdd05 100644 --- a/packages/dev-utils/src/devApp/render.tsx +++ b/packages/dev-utils/src/devApp/render.tsx @@ -85,7 +85,7 @@ class DevAppBuilder { const AppProvider = app.getProvider(); const AppRouter = app.getRouter(); - const AppRoutes = app.getRoutes(); + const deprecatedAppRoutes = app.getRoutes(); const sidebar = this.setupSidebar(this.plugins); @@ -99,7 +99,7 @@ class DevAppBuilder { {sidebar} - + {deprecatedAppRoutes} diff --git a/packages/e2e-test/src/e2e-test.ts b/packages/e2e-test/src/e2e-test.ts index f74c3f7166..5dfac68d6a 100644 --- a/packages/e2e-test/src/e2e-test.ts +++ b/packages/e2e-test/src/e2e-test.ts @@ -269,7 +269,7 @@ async function createPlugin(pluginName: string, appDir: string) { /** * Start serving the newly created app and make sure that the create plugin is rendering correctly */ -async function testAppServe(_pluginName: string, appDir: string) { +async function testAppServe(pluginName: string, appDir: string) { const startApp = spawnPiped(['yarn', 'start'], { cwd: appDir, }); @@ -280,12 +280,11 @@ async function testAppServe(_pluginName: string, appDir: string) { const browser = new Browser(); await waitForPageWithText(browser, '/', 'Backstage Service Catalog'); - // TODO(shmidt-i): adjust the plugin creation flow with new routing patterns - // await waitForPageWithText( - // browser, - // `/${pluginName}`, - // `Welcome to ${pluginName}!`, - // ); + await waitForPageWithText( + browser, + `/${pluginName}`, + `Welcome to ${pluginName}!`, + ); print('Both App and Plugin loaded correctly'); successful = true; diff --git a/plugins/catalog/src/components/EntityPageLayout/EntityPageLayout.tsx b/plugins/catalog/src/components/EntityPageLayout/EntityPageLayout.tsx index 17f9f46830..6a1b80150e 100644 --- a/plugins/catalog/src/components/EntityPageLayout/EntityPageLayout.tsx +++ b/plugins/catalog/src/components/EntityPageLayout/EntityPageLayout.tsx @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React, { useState } from 'react'; +import React, { useState, useContext } from 'react'; import { useParams, useNavigate } from 'react-router'; -import { useEntity } from '../../hooks/useEntity'; +import { EntityContext } from '../../hooks/useEntity'; import { pageTheme, PageTheme, @@ -74,7 +74,7 @@ function headerProps( export const EntityPageLayout = ({ children, }: { - children: React.ReactNode; + children?: React.ReactNode; }) => { const { optionalNamespaceAndName, kind } = useParams() as { optionalNamespaceAndName: string; @@ -82,7 +82,7 @@ export const EntityPageLayout = ({ }; const [name, namespace] = optionalNamespaceAndName.split(':').reverse(); - const { entity, loading, error } = useEntity(); + const { entity, loading, error } = useContext(EntityContext); const { headerTitle, headerType } = headerProps( kind, namespace, @@ -139,5 +139,4 @@ export const EntityPageLayout = ({ ); }; - EntityPageLayout.Content = Tabbed.Content; diff --git a/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.test.tsx b/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.test.tsx index 3eccafbf7a..da1e696fde 100644 --- a/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.test.tsx +++ b/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.test.tsx @@ -36,6 +36,21 @@ describe('Tabbed layout', () => { expect(rendered.getByText('tabbed-test-content')).toBeInTheDocument(); }); + it('throws if any other component is a child of Tabbed.Layout', async () => { + await expect( + renderInTestApp( + + tabbed-test-content
} + /> +
This will cause app to throw
+ , + ), + ).rejects.toThrow(/EntityPageLayout component only accepts/); + }); + it('navigates when user clicks different tab', async () => { const rendered = await renderInTestApp( diff --git a/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx b/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx index 693ee10c78..096b2fa708 100644 --- a/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx +++ b/plugins/catalog/src/components/EntityPageLayout/Tabbed/Tabbed.tsx @@ -25,7 +25,6 @@ import { RouteMatch, } from 'react-router'; import { Tab, HeaderTabs, Content } from '@backstage/core'; -import { Grid } from '@material-ui/core'; import { Helmet } from 'react-helmet'; const getSelectedIndexOrDefault = ( @@ -67,6 +66,11 @@ export const Tabbed = { // Skip conditionals resolved to falses/nulls/undefineds etc return; } + if (child.type !== Tabbed.Content) { + throw new Error( + 'This component only accepts Content elements as direct children. Check the code of the EntityPage.', + ); + } const pathAndId = (child as JSX.Element).props.path; // Child here must be then always a functional component without any wrappers @@ -92,7 +96,7 @@ export const Tabbed = { matchRoutes(routes as RouteObject[], `/${params['*']}`) ?? []; const selectedIndex = getSelectedIndexOrDefault(matchedRoute, tabs); const currentTab = tabs[selectedIndex]; - const title = currentTab.label; + const title = currentTab?.label; const onTabChange = (index: number) => // Remove trailing /* @@ -103,6 +107,7 @@ export const Tabbed = { const currentRouteElement = useRoutes(routes); + if (!currentTab) return null; return ( <> - - - {currentRouteElement} - + + {currentRouteElement} ); diff --git a/plugins/catalog/src/Router.tsx b/plugins/catalog/src/components/Router.tsx similarity index 71% rename from plugins/catalog/src/Router.tsx rename to plugins/catalog/src/components/Router.tsx index 161536c714..61855f56d9 100644 --- a/plugins/catalog/src/Router.tsx +++ b/plugins/catalog/src/components/Router.tsx @@ -14,13 +14,14 @@ * limitations under the License. */ import React, { ComponentType } from 'react'; -import { CatalogPage } from './components/CatalogPage'; -import { EntityPageLayout } from './components/EntityPageLayout'; +import { CatalogPage } from './CatalogPage'; +import { EntityPageLayout } from './EntityPageLayout'; import { Route, Routes } from 'react-router'; -import { entityRoute, rootRoute, entityRouteDefault } from './routes'; +import { entityRoute, rootRoute } from '../routes'; import { Content } from '@backstage/core'; import { Typography, Link } from '@material-ui/core'; -import { EntityProvider } from './components/EntityProvider'; +import { EntityProvider } from './EntityProvider'; +import { useEntity } from '../hooks/useEntity'; const DefaultEntityPage = () => ( @@ -43,7 +44,17 @@ const DefaultEntityPage = () => ( ); -export const CatalogRouter = ({ +const EntityPageSwitch = ({ EntityPage }: { EntityPage: ComponentType }) => { + const { entity } = useEntity(); + // Loading and error states + if (!entity) return ; + + // Otherwise EntityPage provided from the App + // Note that EntityPage will include EntityPageLayout already + return ; +}; + +export const Router = ({ EntityPage = DefaultEntityPage, }: { EntityPage?: ComponentType; @@ -54,15 +65,7 @@ export const CatalogRouter = ({ path={`/${entityRoute.path}`} element={ - - - } - /> - - + } /> diff --git a/plugins/catalog/src/hooks/useEntity.ts b/plugins/catalog/src/hooks/useEntity.ts index ede45efeef..53b1cff73a 100644 --- a/plugins/catalog/src/hooks/useEntity.ts +++ b/plugins/catalog/src/hooks/useEntity.ts @@ -24,13 +24,13 @@ const REDIRECT_DELAY = 2000; type EntityLoadingStatus = { entity?: Entity; - loading: boolean | null; + loading: boolean; error?: Error; }; export const EntityContext = createContext({ - entity: undefined as any, - loading: null, + entity: undefined, + loading: true, error: undefined, }); @@ -53,25 +53,20 @@ export const useEntityFromUrl = (): EntityLoadingStatus => { navigate('/'); }, REDIRECT_DELAY); } - }, [errorApi, navigate, error, loading, entity]); - if (!name) { - navigate('/catalog'); - return { - entity: undefined, - loading: null, - error: new Error('No name in url'), - } as never; - } + if (!name) { + errorApi.post(new Error('No name provided!')); + navigate('/'); + } + }, [errorApi, navigate, error, loading, entity, name]); return { entity, loading, error }; }; /** * Always going to return an entity, or throw an error if not a descendant of a EntityProvider. - * Otherwise the useEntityFromUrl will take care of the `undefined` entity */ -export const useEntity = () => - useContext & { entity: Entity }>( - EntityContext as any, - ); +export const useEntity = () => { + const { entity } = useContext<{ entity: Entity }>(EntityContext as any); + return { entity }; +}; diff --git a/plugins/catalog/src/index.ts b/plugins/catalog/src/index.ts index 26285b4814..a6d86e8102 100644 --- a/plugins/catalog/src/index.ts +++ b/plugins/catalog/src/index.ts @@ -19,7 +19,7 @@ export * from './api/CatalogClient'; export * from './api/types'; export * from './routes'; export { useEntityCompoundName } from './components/useEntityCompoundName'; -export * from './Router'; +export { Router } from './components/Router'; export { useEntity } from './hooks/useEntity'; export { AboutCard } from './components/AboutCard'; export { EntityPageLayout } from './components/EntityPageLayout'; diff --git a/plugins/catalog/src/routes.ts b/plugins/catalog/src/routes.ts index a9606760fb..14e23ff73b 100644 --- a/plugins/catalog/src/routes.ts +++ b/plugins/catalog/src/routes.ts @@ -28,8 +28,3 @@ export const entityRoute = createRouteRef({ path: ':kind/:optionalNamespaceAndName/*', title: 'Entity', }); -export const entityRouteDefault = createRouteRef({ - icon: NoIcon, - path: ':kind/:optionalNamespaceAndName/*', - title: 'Entity', -}); diff --git a/plugins/scaffolder/src/components/JobStatusModal/JobStatusModal.tsx b/plugins/scaffolder/src/components/JobStatusModal/JobStatusModal.tsx index f5a592b7b7..c6ed55c92c 100644 --- a/plugins/scaffolder/src/components/JobStatusModal/JobStatusModal.tsx +++ b/plugins/scaffolder/src/components/JobStatusModal/JobStatusModal.tsx @@ -26,7 +26,7 @@ import { useJobPolling } from './useJobPolling'; import { Job } from '../../types'; import { TemplateEntityV1alpha1 } from '@backstage/catalog-model'; import { Button } from '@backstage/core'; -import { entityRouteDefault } from '@backstage/plugin-catalog'; +import { entityRoute } from '@backstage/plugin-catalog'; import { generatePath } from 'react-router-dom'; type Props = { @@ -72,7 +72,7 @@ export const JobStatusModal = ({ {entity && ( - - This Plugin is an example. This text could provide usefull - information for the user. - - + Date: Fri, 4 Sep 2020 21:20:21 +0800 Subject: [PATCH 392/656] rename build to dist-types --- .gitignore | 2 +- packages/cli/src/lib/builder/config.ts | 4 ++-- tsconfig.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index deeca8aa11..b9e7f7d597 100644 --- a/.gitignore +++ b/.gitignore @@ -89,7 +89,7 @@ typings/ # Nuxt.js build / generate output .nuxt dist -build +dist-types # Microsite build output microsite/build diff --git a/packages/cli/src/lib/builder/config.ts b/packages/cli/src/lib/builder/config.ts index 78a50e29ed..9a3be63404 100644 --- a/packages/cli/src/lib/builder/config.ts +++ b/packages/cli/src/lib/builder/config.ts @@ -37,7 +37,7 @@ export const makeConfigs = async ( options: BuildOptions, ): Promise => { const typesInput = paths.resolveTargetRoot( - 'build', + 'dist-types', relativePath(paths.targetRoot, paths.targetDir), 'src/index.d.ts', ); @@ -120,7 +120,7 @@ export const makeConfigs = async ( configs.push({ input: typesInput, output: { - file: 'build/index.d.ts', + file: 'dist-types/index.d.ts', format: 'es', }, plugins: [dts()], diff --git a/tsconfig.json b/tsconfig.json index b4eab1a6e0..d6cb6f4c96 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,7 +7,7 @@ "plugins/*/migrations" ], "compilerOptions": { - "outDir": "build", + "outDir": "dist-types", "rootDir": "." } } From ecafe1b54d76ceef275d87cfedaba72c3e6506eb Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Fri, 4 Sep 2020 15:53:40 +0200 Subject: [PATCH 393/656] feat(circleci): use token from the proxy --- app-config.yaml | 11 +++++- plugins/circleci/package.json | 1 + plugins/circleci/src/api/index.ts | 16 ++++----- .../circleci/src/state/useBuildWithSteps.ts | 35 +++++++++---------- plugins/circleci/src/state/useBuilds.ts | 32 ++++++++++++----- 5 files changed, 60 insertions(+), 35 deletions(-) diff --git a/app-config.yaml b/app-config.yaml index 1eca3664b7..26cf080ca3 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -16,7 +16,16 @@ backend: # See README.md in the proxy-backend plugin for information on the configuration format proxy: - '/circleci/api': https://circleci.com/api/v1.1 + '/circleci/api': + target: https://circleci.com/api/v1.1 + changeOrigin: true + pathRewrite: + '^/proxy/circleci/api/': '/' + headers: + Circle-Token: + $secret: + env: CIRCLECI_AUTH_TOKEN + '/jenkins/api': target: http://localhost:8080 headers: diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index b5824d3869..b0c1892d34 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -22,6 +22,7 @@ }, "dependencies": { "@backstage/core": "^0.1.1-alpha.21", + "@backstage/plugin-catalog": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", diff --git a/plugins/circleci/src/api/index.ts b/plugins/circleci/src/api/index.ts index 64a33e4c13..da4c811812 100644 --- a/plugins/circleci/src/api/index.ts +++ b/plugins/circleci/src/api/index.ts @@ -42,8 +42,8 @@ export class CircleCIApi { this.apiUrl = apiUrl; } - async retry(buildNumber: number, options: CircleCIOptions) { - return postBuildActions(options.token, buildNumber, BuildAction.RETRY, { + async retry(buildNumber: number, options: Partial) { + return postBuildActions('', buildNumber, BuildAction.RETRY, { circleHost: this.apiUrl, ...options.vcs, }); @@ -51,9 +51,9 @@ export class CircleCIApi { async getBuilds( { limit = 10, offset = 0 }: { limit: number; offset: number }, - options: CircleCIOptions, + options: Partial, ) { - return getBuildSummaries(options.token, { + return getBuildSummaries('', { options: { limit, offset, @@ -64,12 +64,12 @@ export class CircleCIApi { }); } - async getUser(options: CircleCIOptions) { - return getMe(options.token, { circleHost: this.apiUrl, ...options }); + async getUser(options: Partial) { + return getMe('', { circleHost: this.apiUrl, ...options }); } - async getBuild(buildNumber: number, options: CircleCIOptions) { - return getFullBuild(options.token, buildNumber, { + async getBuild(buildNumber: number, options: Partial) { + return getFullBuild('', buildNumber, { circleHost: this.apiUrl, ...options.vcs, }); diff --git a/plugins/circleci/src/state/useBuildWithSteps.ts b/plugins/circleci/src/state/useBuildWithSteps.ts index 8fa7fa896d..c169b8fe63 100644 --- a/plugins/circleci/src/state/useBuildWithSteps.ts +++ b/plugins/circleci/src/state/useBuildWithSteps.ts @@ -14,31 +14,35 @@ * limitations under the License. */ import { errorApiRef, useApi } from '@backstage/core'; -import { useCallback } from 'react'; +import { useCallback, useMemo } from 'react'; import { useAsyncRetry } from 'react-use'; -import { circleCIApiRef, GitType } from '../api/index'; +import { circleCIApiRef } from '../api/index'; import { useAsyncPolling } from './useAsyncPolling'; -import { useSettings } from './useSettings'; +import { useProjectSlugFromEntity, mapVcsType } from './useBuilds'; const INTERVAL_AMOUNT = 1500; export function useBuildWithSteps(buildId: number) { - const [{ token, repo, owner }] = useSettings(); + const { vcs, repo, owner } = useProjectSlugFromEntity(); const api = useApi(circleCIApiRef); const errorApi = useApi(errorApiRef); + const vcsOption = useMemo( + () => ({ + owner: owner, + repo: repo, + type: mapVcsType(vcs), + }), + [owner, repo, vcs], + ); + const getBuildWithSteps = useCallback(async () => { - if (owner === '' || repo === '' || token === '') { + if (owner === '' || repo === '' || vcs === '') { return Promise.reject('No credentials provided'); } try { const options = { - token: token, - vcs: { - owner: owner, - repo: repo, - type: GitType.GITHUB, - }, + vcs: vcsOption, }; const build = await api.getBuild(buildId, options); return Promise.resolve(build); @@ -46,17 +50,12 @@ export function useBuildWithSteps(buildId: number) { errorApi.post(e); return Promise.reject(e); } - }, [token, owner, repo, buildId, api, errorApi]); + }, [vcsOption, buildId, api, errorApi]); // eslint-disable-line react-hooks/exhaustive-deps const restartBuild = async () => { try { await api.retry(buildId, { - token: token, - vcs: { - owner: owner, - repo: repo, - type: GitType.GITHUB, - }, + vcs: vcsOption, }); } catch (e) { errorApi.post(e); diff --git a/plugins/circleci/src/state/useBuilds.ts b/plugins/circleci/src/state/useBuilds.ts index 282ef68f12..2a4aed7fd6 100644 --- a/plugins/circleci/src/state/useBuilds.ts +++ b/plugins/circleci/src/state/useBuilds.ts @@ -18,8 +18,9 @@ import { BuildSummary, GitType } from 'circleci-api'; import { useCallback, useEffect, useState } from 'react'; import { useAsyncRetry } from 'react-use'; import { circleCIApiRef } from '../api/index'; -import type { CITableBuildInfo } from '../pages/BuildsPage/lib/CITable'; -import { useSettings } from './useSettings'; +import type { CITableBuildInfo } from '../components/BuildsPage/lib/CITable'; +import { useEntity } from '@backstage/plugin-catalog'; +import { CIRCLECI_ANNOTATION } from '../constants'; const makeReadableStatus = (status: string | undefined) => { if (!status) return ''; @@ -68,8 +69,25 @@ export const transform = ( }); }; +export const useProjectSlugFromEntity = () => { + const { entity } = useEntity(); + const [vcs, owner, repo] = ( + entity.metadata.annotations?.[CIRCLECI_ANNOTATION] ?? '' + ).split('/'); + return { vcs, owner, repo }; +}; + +export function mapVcsType(vcs: string): GitType { + switch (vcs) { + case 'github': + return GitType.GITHUB; + default: + return GitType.BITBUCKET; + } +} + export function useBuilds() { - const [{ repo, owner, token }] = useSettings(); + const { repo, owner, vcs } = useProjectSlugFromEntity(); const api = useApi(circleCIApiRef); const errorApi = useApi(errorApiRef); @@ -79,7 +97,7 @@ export function useBuilds() { const getBuilds = useCallback( async ({ limit, offset }: { limit: number; offset: number }) => { - if (owner === '' || repo === '' || token === '') { + if (owner === '' || repo === '' || vcs === '') { return Promise.reject('No credentials provided'); } @@ -87,11 +105,10 @@ export function useBuilds() { return await api.getBuilds( { limit, offset }, { - token: token, vcs: { owner: owner, repo: repo, - type: GitType.GITHUB, + type: mapVcsType(vcs), }, }, ); @@ -100,13 +117,12 @@ export function useBuilds() { return Promise.reject(e); } }, - [repo, token, owner, api, errorApi], + [repo, owner, vcs, api, errorApi], ); const restartBuild = async (buildId: number) => { try { await api.retry(buildId, { - token: token, vcs: { owner: owner, repo: repo, From 5b3ad2a284fcff24028f769ef9ea1deccb8e2be7 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Fri, 4 Sep 2020 15:57:31 +0200 Subject: [PATCH 394/656] feat(circleci): export router --- .../adr002-default-catalog-file-format.md | 2 +- .../software-catalog/descriptor-format.md | 4 +-- plugins/circleci/package.json | 1 + plugins/circleci/src/components/Router.tsx | 28 +++++++++++++++++++ plugins/circleci/src/constants.ts | 1 + plugins/circleci/src/index.ts | 3 +- plugins/circleci/src/plugin.ts | 7 ----- plugins/circleci/src/route-refs.tsx | 4 +-- 8 files changed, 37 insertions(+), 13 deletions(-) create mode 100644 plugins/circleci/src/components/Router.tsx create mode 100644 plugins/circleci/src/constants.ts diff --git a/docs/architecture-decisions/adr002-default-catalog-file-format.md b/docs/architecture-decisions/adr002-default-catalog-file-format.md index c1cb719bf5..af22d33020 100644 --- a/docs/architecture-decisions/adr002-default-catalog-file-format.md +++ b/docs/architecture-decisions/adr002-default-catalog-file-format.md @@ -68,7 +68,7 @@ metadata: lifecycle: production example.com/service-discovery-name: frobsawesome annotations: - circleci.com/project-slug: gh/example-org/frobs-awesome + circleci.com/project-slug: github/example-org/frobs-awesome spec: type: service ``` diff --git a/docs/features/software-catalog/descriptor-format.md b/docs/features/software-catalog/descriptor-format.md index 78dfcf365c..6ad41bde17 100644 --- a/docs/features/software-catalog/descriptor-format.md +++ b/docs/features/software-catalog/descriptor-format.md @@ -34,7 +34,7 @@ software catalog API. "annotations": { "backstage.io/managed-by-location": "file:/tmp/component-info.yaml", "example.com/service-discovery": "artistweb", - "circleci.com/project-slug": "gh/example-org/artist-website" + "circleci.com/project-slug": "github/example-org/artist-website" }, "description": "The place to be, for great artists", "etag": "ZjU2MWRkZWUtMmMxZS00YTZiLWFmMWMtOTE1NGNiZDdlYzNk", @@ -66,7 +66,7 @@ metadata: system: public-websites annotations: example.com/service-discovery: artistweb - circleci.com/project-slug: gh/example-org/artist-website + circleci.com/project-slug: github/example-org/artist-website tags: - java spec: diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index b0c1892d34..3fa10dfba3 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -22,6 +22,7 @@ }, "dependencies": { "@backstage/core": "^0.1.1-alpha.21", + "@backstage/plugin-catalog-model": "^0.1.1-alpha.21", "@backstage/plugin-catalog": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", diff --git a/plugins/circleci/src/components/Router.tsx b/plugins/circleci/src/components/Router.tsx new file mode 100644 index 0000000000..c99170b9d1 --- /dev/null +++ b/plugins/circleci/src/components/Router.tsx @@ -0,0 +1,28 @@ +import React from 'react'; +import { Routes, Route } from 'react-router'; +import { circleCIRouteRef, circleCIBuildRouteRef } from '../route-refs'; +import { BuildWithStepsPage } from './BuildWithStepsPage/'; +import { BuildsPage } from './BuildsPage'; +import { CIRCLECI_ANNOTATION } from '../constants'; +import { Entity } from '@backstage/catalog-model'; +import { WarningPanel } from '@backstage/core'; + +export const isPluginApplicableToEntity = (entity: Entity) => + Boolean(entity.metadata.annotations?.[CIRCLECI_ANNOTATION]) && + entity.metadata.annotations?.[CIRCLECI_ANNOTATION] !== ''; + +export const Router = ({ entity }: { entity: Entity }) => + !isPluginApplicableToEntity(entity) ? ( + + `entity.metadata.annotations['{CIRCLECI_ANNOTATION}']` key is missing on + the entity. + + ) : ( + + } /> + } + /> + + ); diff --git a/plugins/circleci/src/constants.ts b/plugins/circleci/src/constants.ts new file mode 100644 index 0000000000..7d38837fd6 --- /dev/null +++ b/plugins/circleci/src/constants.ts @@ -0,0 +1 @@ +export const CIRCLECI_ANNOTATION = 'circleci.com/project-slug'; diff --git a/plugins/circleci/src/index.ts b/plugins/circleci/src/index.ts index e2e6c4fa69..c6cb140208 100644 --- a/plugins/circleci/src/index.ts +++ b/plugins/circleci/src/index.ts @@ -17,4 +17,5 @@ export { plugin } from './plugin'; export * from './api'; export * from './route-refs'; -export { CircleCIWidget } from './components/CircleCIWidget'; +export { Router, isPluginApplicableToEntity } from './components/Router'; +export { CIRCLECI_ANNOTATION } from './constants'; diff --git a/plugins/circleci/src/plugin.ts b/plugins/circleci/src/plugin.ts index 47ecccef4f..78f92000e3 100644 --- a/plugins/circleci/src/plugin.ts +++ b/plugins/circleci/src/plugin.ts @@ -14,14 +14,7 @@ * limitations under the License. */ import { createPlugin } from '@backstage/core'; -import { circleCIRouteRef, circleCIBuildRouteRef } from './route-refs'; -import BuildsPage from './pages/BuildsPage/BuildsPage'; -import BuildWithStepsPage from './pages/BuildWithStepsPage/BuildWithStepsPage'; export const plugin = createPlugin({ id: 'circleci', - register({ router }) { - router.addRoute(circleCIRouteRef, BuildsPage); - router.addRoute(circleCIBuildRouteRef, BuildWithStepsPage); - }, }); diff --git a/plugins/circleci/src/route-refs.tsx b/plugins/circleci/src/route-refs.tsx index 581f035c1d..d6bad363ed 100644 --- a/plugins/circleci/src/route-refs.tsx +++ b/plugins/circleci/src/route-refs.tsx @@ -33,11 +33,11 @@ const CircleCIIcon: FC = props => ( export const circleCIRouteRef = createRouteRef({ icon: CircleCIIcon, - path: '/circleci', + path: '', title: 'CircleCI | All builds', }); export const circleCIBuildRouteRef = createRouteRef({ - path: '/circleci/build/:buildId', + path: ':buildId', title: 'CircleCI | Build info', }); From 72b0d9c9f543a03a186fb66a236eee74c8f9d4a8 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Fri, 4 Sep 2020 15:58:25 +0200 Subject: [PATCH 395/656] fix(circleci): big refactor and cleanup --- plugins/circleci/README.md | 38 +++++- plugins/circleci/src/assets/screenshot-1.png | Bin 995707 -> 240560 bytes plugins/circleci/src/assets/screenshot-2.png | Bin 826372 -> 217295 bytes plugins/circleci/src/assets/screenshot-3.png | Bin 876913 -> 0 bytes plugins/circleci/src/assets/screenshot-4.png | Bin 965992 -> 0 bytes .../BuildWithStepsPage/BuildWithStepsPage.tsx | 97 ++++++------- .../index.ts | 2 +- .../lib/ActionOutput/ActionOutput.tsx | 0 .../lib/ActionOutput/index.ts | 0 .../index.ts => BuildsPage/BuildsPage.tsx} | 12 +- .../{Layout => BuildsPage}/index.ts | 2 +- .../BuildsPage/lib/Builds/Builds.tsx | 0 .../BuildsPage/lib/Builds/index.ts | 0 .../BuildsPage/lib/CITable/CITable.tsx | 8 +- .../BuildsPage/lib/CITable/index.ts | 0 .../src/components/CircleCIWidget.tsx | 38 ------ .../circleci/src/components/Layout/Layout.tsx | 29 ---- .../components/PluginHeader/PluginHeader.tsx | 55 -------- .../src/components/Settings/Settings.tsx | 129 ------------------ .../src/pages/BuildWithStepsPage/index.ts | 19 --- .../src/pages/BuildsPage/BuildsPage.tsx | 48 ------- .../circleci/src/pages/BuildsPage/index.ts | 16 --- plugins/circleci/src/state/AppState.tsx | 57 -------- plugins/circleci/src/state/index.ts | 2 - plugins/circleci/src/state/types.ts | 36 ----- plugins/circleci/src/state/useSettings.ts | 68 --------- 26 files changed, 96 insertions(+), 560 deletions(-) delete mode 100644 plugins/circleci/src/assets/screenshot-3.png delete mode 100644 plugins/circleci/src/assets/screenshot-4.png rename plugins/circleci/src/{pages => components}/BuildWithStepsPage/BuildWithStepsPage.tsx (80%) rename plugins/circleci/src/components/{PluginHeader => BuildWithStepsPage}/index.ts (90%) rename plugins/circleci/src/{pages => components}/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx (100%) rename plugins/circleci/src/{pages => components}/BuildWithStepsPage/lib/ActionOutput/index.ts (100%) rename plugins/circleci/src/components/{Settings/index.ts => BuildsPage/BuildsPage.tsx} (70%) rename plugins/circleci/src/components/{Layout => BuildsPage}/index.ts (93%) rename plugins/circleci/src/{pages => components}/BuildsPage/lib/Builds/Builds.tsx (100%) rename plugins/circleci/src/{pages => components}/BuildsPage/lib/Builds/index.ts (100%) rename plugins/circleci/src/{pages => components}/BuildsPage/lib/CITable/CITable.tsx (93%) rename plugins/circleci/src/{pages => components}/BuildsPage/lib/CITable/index.ts (100%) delete mode 100644 plugins/circleci/src/components/CircleCIWidget.tsx delete mode 100644 plugins/circleci/src/components/Layout/Layout.tsx delete mode 100644 plugins/circleci/src/components/PluginHeader/PluginHeader.tsx delete mode 100644 plugins/circleci/src/components/Settings/Settings.tsx delete mode 100644 plugins/circleci/src/pages/BuildWithStepsPage/index.ts delete mode 100644 plugins/circleci/src/pages/BuildsPage/BuildsPage.tsx delete mode 100644 plugins/circleci/src/pages/BuildsPage/index.ts delete mode 100644 plugins/circleci/src/state/AppState.tsx delete mode 100644 plugins/circleci/src/state/types.ts delete mode 100644 plugins/circleci/src/state/useSettings.ts diff --git a/plugins/circleci/README.md b/plugins/circleci/README.md index 2dcc137a47..48e1bee6cc 100644 --- a/plugins/circleci/README.md +++ b/plugins/circleci/README.md @@ -4,8 +4,6 @@ Website: [https://circleci.com/](https://circleci.com/) - - ## Setup @@ -35,8 +33,39 @@ export default builder.build() as ApiHolder; export { plugin as Circleci } from '@backstage/plugin-circleci'; ``` -3. Run app with `yarn start` and navigate to `/circleci/settings` -4. Enter project settings and **project** token, acquired according to [https://circleci.com/docs/2.0/managing-api-tokens/](https://circleci.com/docs/2.0/managing-api-tokens/) +3. Register the plugin router: + +```jsx +// packages/app/src/components/catalog/EntityPage.tsx + +import { Router as CircleCIRouter } from '@backstage/plugin-circleci'; + +// Then somewhere inside +} +/>; +``` + +4. Add proxy config: + +``` +// app-config.yaml +proxy: + '/circleci/api': + target: https://circleci.com/api/v1.1 + changeOrigin: true + pathRewrite: + '^/proxy/circleci/api/': '/' + headers: + Circle-Token: + $secret: + env: CIRCLECI_AUTH_TOKEN +``` + +5. Get and provide `CIRCLECI_AUTH_TOKEN` as env variable (https://circleci.com/docs/api/#add-an-api-token) +6. Add `circleci.com/project-slug` annotation to your component-info.yaml file in format // (https://backstage.io/docs/architecture-decisions/adrs-adr002#format) ## Features @@ -50,3 +79,4 @@ export { plugin as Circleci } from '@backstage/plugin-circleci'; ## Limitations - CircleCI has pretty strict rate limits per token, be careful with opened tabs +- CircelCI doesn't provide a way to auth by 3rd party (e.g. GitHub) token, nor by calling their OAuth endpoints, which currently stands in the way of better auth integration with Backstage (https://discuss.circleci.com/t/circleci-api-authorization-with-github-token/5356) diff --git a/plugins/circleci/src/assets/screenshot-1.png b/plugins/circleci/src/assets/screenshot-1.png index 2e3f1f420b5cc147343c8a6c3690f6efb87d50ff..db99230a657fd2bb6403edcedd5da8fb90d2262b 100644 GIT binary patch literal 240560 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

TjBALixi!s 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

Q^ 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∈KBaXm;t7mcYBP0?c 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
hY3L_>OJnqb0L|NDQA@RI-=e~?T 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

61|=d)jK!?+WY7$ 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π!;+um^aqS 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

?J$j-zp^3? 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�C0Q~P|ho^pIhwl?koW4b#|4_T#YJBFG9Eqf` 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 z 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

=GMumNf{Pel8$4zO|7mi9iJr*9KC$W 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

yV;~bK%i@3Fq^8b7NblC`HbK z`n=T)3-WZ``Q^(r7F)65@`xL#L!EjEI~;p|Rz9l}^50|6-T0*aZ2u7!(YSe>jtud{ zI1L~`e0D4s-{x6#td{?Ze&UAdy6S+m%(KH+4FGcbNYN4KHj8TtAg6J=F|LXB8up$Z z1heI!3!PDxfFX1L9SBB|2L<^I_jwK5-(U4f-=%a6)QoOcePwZy^;TH=KIxVELh{SY z1T7hz$@7RbEs)dV+ZH#P^ocL>EF4HrAAa~o5!(uTZPOS&C?+H!HZP8};`?u!Ie?fh z6F@5fys4`1g$f)wZPA+r23u#P-VO|m8UHQ^pBTyb&db2jnpRMubxfo1=JYX z*!qAymZWpA&=nid=A6fSwXc>Y5)7)>Lf2s6x}g&Bk)HAmCVl#N+H;W<%f1%*?ZeQ0 zVrDmKmvYJ`^%Mf*1<?VSI;=k3s`^S?~ zrXkqsfzuNduKy7bw=pDjIvq);>`j2c(K=x<{dyWilL|&PmM&0@u6XXv4-BOS>Y%wK zRr+qzTldon@bq*CkY)S{6^=H)+yatIFiWUW$ReZ6ZTv(*Dv!=&q@0!1LDHB_X+4xZ zQ!Vu4b&$F~@srePZ|(vAdLPT2-$m-#FS&e4?)K4qPO$xIr$JU@O^s*b31(1mZW9qU~-^$G*>O++Bkxq!dv`{&9h)%;Kyg6 z?*K-F3nN-G>6!QKtVFfL;{^!6pX@eX?@^By_Q4SQIJI+MIZ>r&7V=-|JW>DMK-570N7P<$yQrm$ckWdEeU3vt-^Q+b z?P9&mz2}PrQ|w-tLcp~^o2w_h@osS#Ig8gla=f!EP`T2v{nb4}1*{Pa3(;AsgbW~R zR}R0?2c%h5=Kh!D-Et#H#?{O&FEd8;HC`d}^N^Css_U34Dtj{}c6u?L_CRUD!Lk!TMV3cJfn#6qpmna8e3f#bcM? zCUpl)g&@$@#}D2StWayR=%83xuU|PAbd)X}w9sFp`nrWw96?xHFK^ATy7CzL`S~k5 zylj3&Q6=g(66MEjhBn{q{uH{T?J^jh9FAoF;-wsH z#HP7r+28{DOa~tHQEk&LHc#(_3c4`Ga#%{O(}3et3JHY|{ov&w+?zmnKS)*2$6P?u zp0N7rMJJXTlZW~$P+Yt^R_4Hzj&A-jLCztfZ2*g!Wuv}-f_J)Y{SrQ%bRP^N z5ed_r(b|A-WHJwd&8+C==i2cK1UYG+zp?=SamD$s7pj|QB>_b7_fzkaeeQF8%krC} zF!eoZY}$1)?6MW)u;*o(VVm~+Pj(kR=6^xG!;~J?o$G6wwJ)shds@gH(?lUdmV?hR zNrU72LSoh`bff0_J&T{-4qDSI)MBr2X_<~Wh5ZK$9dT@ye-&zWPf}uM;?B!Ph&_*^ zq4QCsbv5P+SBm#ouyQ#KafjOl#)w&t5Peh1rU0mUA71Vi0&|lYlq#gaMuK$lGml3% zM+PEqdGg`FP9!~?o>vV<(x=vcmgarvJXGj|3kU*www0Bzh^4Xm@biamYD*R)>hrm6 zE=JGQz+!}S{@mT;H+SdSr8qcmP(gY_0cs@M7)861MXfUlWg3a?th`%n>%zMx19Y%c z%Uz;w72?}mbKknu7F&;{OqJlPhMBJOg@0haRcbG$-e+hYEX}5(V1u!kB^okmFw9RCoEuwm1!=-*l)eEG>VEU# zqa3KM*2#}=O=lGkV?TDQp%Tfeb)_aUXB?VWjmCq?5^k?fUCp8KU!pYyWKjJjGUh+dTj;bWkF+Lrym3x{pe_IM2qSoikEN;J-h4;(`2>vkfNTm~ z>#;544fgQ^95BCt|En7d$9gw)1u?D@qwR(a09a7<>n3Q0MSn*H)bN~|C5QC!IAY9F zn>{Lk{`>&>yl4~PMEYy58?KQ~zx8=c#F-X%1hnr9*3^oMNxZr2a#^ph85z0^4P#{9 z^)8D5rzuLqoIutQ<((ee@LmD%%%$M%iu6V?zoNx(8&@7^(9*J&9T;X|}2 z9Q^QMlxd+)X#}Xccp*m>-=OX1Mt_Zx%o)^T)hwnd_1I<-G`myD)bIE;>q6#>v)U2OPjO>in?e9L z=~+y**Cl@#>aJh-j=u`I+PR-nsGgs*tERG{;fD$l& zhG?~M6I~Gu@%JJdnuY>HWpp!P4o)LC@=5aCwYGDy5Gf`RXxx~wCA0sI1G~l$q!#d3 z4}zT)RB>oS(Q!Kx|MimDO`rw%`TMs{*I94CYyk{TN59_RhzScop7d-JW>tdpyQ=px z`L2^oEo@$ZQQ64l&&4zsZN=0Tc@G7wZ&Qo>ar((xp z*BJ6zdW)?#{-Xr$5yd?;Yo%hOK{AJ6g7*hU1@v)$vKyti0uTrSzMc|AA#Wt8Ej5W( zoRVWU*lQm1?p4OsDXY(dMsqPL3-@fap@KScIDi9spiHMpkFtuFZ+fyEQ1$K2OZXfA zPV^cFq?42nQoqOH5VXYX9ULO6g2p$mJpt*8&|VrA*4TC0+yPGRQxw8Hx|*zl!6d*g zJbT8nyaBY!1r>QqnMBKe8{(cu=}ivhOLOC_5B!%WpFBKUot`o4QvyfbCg;4& z=JriY?_|sck>l6-P=ju`!gvSk_HQ z5^@GiH>_^Rg@rirbo0g8PD@>RWob}s7PBgk#mf&TDYW@yvj9|~VAtx-{6?b~t{jsPMP=Jf-eQ?vJWtll5q{NX6; zWoqU4cV?66I;5xKiiH*+j|2-%57qHj&jC1jf_HWQo4jDVQI6#TdO9HA5;M(wms9hu zsL@o|n}-DYyGbznw$P1a9AVepjm(`WPU*Jz2g4@ecQ9;jN}3pjGk=zxcD@gJzfDw? zwvFVp^Zdxbsi@a*j?4dnw&v zgMb;6809DTp|Xgaa>?+{`c3bg8bXh4X-%!PcxK9$ncLHr{Loup&I{8sj-L~DnfX?) z;odDeq?0)?Mj?BRq+4B@#vV&R0Ap2Z6fZrnl*?w$MF1~0ea{7yT{`Lb1?_A;I$v$S z19V_d)K}<4Rx+NYiy!!-=ks)rXAd>N)rN6BK2ZO-fS)=C}xF!@U~Uz`$?(b z-N;)`m@y|fJQyg9(h!T3N90gjfA7m>N0T;(jrH;i3pwEKSzKwJLFFy663GI5f{GntT7fL-XN2c<9q{m6amjqc_N!+RNIrxT%lh8oRuY1yrR=FkME8}^V$Rz~lztt4~T)Bf$>if8`^ za}jTLN}kW=x3NC|199dLM`vHJ=6bua=a`j`^!tA3AJ)dse>L;6Le0PYNnlhA#B{N3 zxOeH1@$13P2lPjIwQuR~RwOqE1}JNYpFS!4JU=J3b@r_9DK>BV#jI_OHzru)Pn8xT zJs=dK)8(%ftDvoJJ?7c%m^=LgUzsyA1cr7|ugA~C%88R^x>4aD2#(UD(U*HSg^L6S zAgUcpg<%_{9u=Ryun~g-POO-v41BbeH51JltG9FA8($>JZhq;yUBIC0y}vo=i2uM9 zSLW}+WFF87#?T+M=2rX37QC-Bsh(pa^gR3bqsaZ_W2S!4mc@r#?6aj-IW-KTiE{K$ zgz@T|!Xj_O>{|jgVW{u1k;5#om4IREqCT`E2a)dsCMl-T})&EV{QN==1CuL9#W~0VPw5i3qidUOMU}_6Fmc z2FYY`sh47`>-4h)as5D@yhYX?OZ0`XDU!M!!1$QEj28%UgX#!sDWYItF#Pg&XjlB7 zVV@zeU)gkZBj9PdH&{JxbT@yDS${m9F{2t}ga;bv4a&spQ74=#L zvt*6L0E$GffuLT+GKx~0!dGrP+Uq-AN*G15zO(br(k@lXo3-7AYSu^}kFOXP9N`99UOgHV*etDbQMK z-Uns42F$fNryxk~sn6Q&x5!eu<@*V6>1D4kmIhlGorx0vZ>*-qh0 zulho{E7Tw*k*fdEl~D9s3#!fk4HxD#Jo429uEJ%y0CXz$cl<2rx&Jcv?e=^jYUZ~k zbKJm0RinY{H>Ay~Gn|1`{Zjbfk9 zf1fT;qT#Y^m2cCv--LH~djZOCozvy<6G4B=SE^TuGGcS=ta|f!`v9wuXZ5yrI zBVylh!;1W;(=Rei7?ewCn+lle?ho(Xo+WYYC48m7gnIxmN1>xfa?&~Za_=_lUS-x3 zx8)UR;reWPb`d#$-1k25liG3$z{_ETJ^An4=UK2q$LWk*%z~FqjCIpK2*$Uj2f(R> z`mBe&Esj&HLz~M1UGIkyVJ52Rb!AcLm2Q&$e+RJSb!+>8CI5x$3Bbg3h_C=xrW#)Fi0V5yujV$#U`TmZ2S{Y(K=5^>j4q zhbC|Y3`FAnXmwFf*`%F?CSZ`EmAHB;Tih zWdB%(_77__2>)nwdm2q>WK;Nhkfi1JTezpf^YEwqJeT&%HurM#Lhv2kjP)6JOv}CQ+c21$=Q{y8 zWy|D3d%M^tNzA7>9X^!i%J4XSym0^8W98c_!BmH1p+n4(oSK3T{kB>sl|}#&i}(Wg zD*;Ssb+F}@pzDjmH@TSD8Hy*PDO$R>Tki2b_Z{IW>uvoo(q zAM$Oo`bAAa*oL{}CQkB;+8Gi;`8-AYoMe;HEgnhBi zX>09Ml5qIwx6!zxtcu*9eY+-O+3hP11s>nr^c{}zeXGVQ?a6I102CQ9fXSjeY}-kn z$V$nPVy4A#Cydl*351n`x;+*O7W8|7tb_z)rIjiT40}dzL|zAFqP8*C>*)W%j2gq% z{N;Szm!86RVm-S1k5Vy6idMwm2YUpn0dxJ<#i&??Q)u$^P61*GQ)W^LB%+ouf@NuAG_Zv<;3dYV}t@Gom6Md=qVRexzioc6r(0L<{002LdCN{=yzBNLP56-<2xQqQK?U^MbZ z!O^w2@U+p}fY;&|LHW{~YvW+NL{K0y@MS%M@5!Wp_p%qjnbthZuLwomnxG~} zqGIL+eJ{?kKbv==I{NmM1l_zT!WN7&*=`vdaY6OMR}c6ZvF z4(Ka>vqRiV$>EO4k+&@6Gl?66R0MX(v%qI)fMTl?Y5^a=p|lWckhzHnydV0JsTL77 z)gJ7WtOFUhL;ME_>3mH-bCKNlLK!}l4!0=XlO&h33;)yT4g0^hLvqpo6oka7it6`O z@~;s=_N=bk1Z#R%!~FYC1m#wtPQqV<^U_A3I2m*67sUd31rHAq1f+FiX5r(5^}v2! z3;5)j4&wk^BVQZ4o)bGbS{;gk$M&N~^Q1UTLt5i%C z{ktl%MSjmJS)U_dr)KO6o*yLWfKFCYhC~o~;2#8$E7r<<`F?KsH!Wf33R>TZcZ3$Z zLC$tpr{e?Wm@@KbHdDZ_umb43Nz9DquYn>`NJ?q__s9?WMNk=>+s8d$dOD*TnEq-% zdd8d2>j`2gaUk^5Her*ZFAtCS!afg64;uaL0MG$x1(@uC@}&mR=n@B_Te^hON1PE1 zGVrf!V~O(L&c07$5z7TLE?_KUW=lzQds{u`<-@9=#Vjz11B+H>Uea+`muvN7f>R)? zSe%qllGQQ@Xui#v7v&Fxt41ucDQLh;>UU=0RHht9k_zs(;Bwc(SJaYkUa8A60U*5D zU#bbnfRT)i67}i2YQTGs%2)djW|BH!CK1)r@}Zg188@ue=zs5xOrA}$R+>4^xV82k zAyOwW#|xTq!V1Rz{;DmRGuqfCfXFqTE+N?K`Xf~*0+1>)0z7spjUc%0K|PvWU_Mo1 z0~z?PN-LV|(ktvcH|7q&aN@u8;^ni81>-p$_;nINWg|fMU>%PR*JZH5i+G+?JOk1U z#WN~{nC%1@RO8FdB?S}y!k^2_TWw@~pXAQ^KJ&naf_q z%Ghj^N??av;p6Q_MWuwr)43VOijL>Jnb-ZuEs@5UI{dM6f-6e*pAnRFWfTHS@@^VV zu?cDiKtK}6A-Apx+pqHN`~M_|E3rLxV(ER6T*StF{}Y4NlHeOhx0qn+5?eqNg71pk zsu^Kizp|Go%>6hPy|l;~sSY*ZfOqe!wa;|GyZ4zGD*CtWy?dVRFsA&UhsEwv1CynnZNf)r)L21D*VJT1Q96WuP13 zZQPQIyUQPsjpcJ{myqU&4gT-<;Fh%}qE*U&Nv~?*(!P%N4IJ_~Miz)@cN9NhVvpVVejnm?9IL=hm3syPQ5&s022?U zlAc2INtgZSR}AHw9qLTj4t3*a6mKh$HWPYfx4xU!-nLMPLxiMYj-GVu~^h1Nm zNGjibMv$h^Hm%f)rH(m&KNNp068P_TJfgTTcBgJLGnU73HX&F80oi9bx!iB z&JhNSxB00a|5V$oVe#9(&tkygaKQP|jd8pp$YGzr@^42Hp3z%)l zx%Cu+{HW&lxYnhUTnihWp}B(~!W=ER7jmEm$?3p7vjxro{n`lU`AwuS)r|O{a8PaG z*IrAC`g1}-(uLYp3y&`kyBd6UA3f=$I+}Kgk=8|Mddfg4L>a{hEwZRh4eOvPP9P)C zEdgfzrdRvbs?Bu$@!ILCW2SdRUB$^@{z!w0yfKy|G)lBYB0LSpL|O?-M85mH!5XGY zrIssmkEiil%azX=ZCUI4MH6See3nPNQUO{{&RZ{WSGRTe7x?{_JTen)0>Y9M2$8tK zyy+K_w=*-6#-;FVS|n(3hd9zOdB9;b@ExO%V(&KHL+X*o(Q6sz3trv_$2vAc4Mv0X zGF@d0%taT|961SYpa-2@(>ljf&Ud2yDGzv=*g@j!vkhx}dY?tQ38qo~X0AXg87g5c z6(2uag z&u~Vbb>tcLvH1zx`@L(;(iry2AK4Ddj|t|!Z&s&U&Z)2|fP)IF!M&g=nnwVAxOs@$ z)T)yTJec_b5Rgaq1tF1PYhTeSE+-6;4Wapq)44%!E}n1bwn$g*3f&jlt#*u)bc3F& z^26*2p7%g7d{1+yvyJu2ib?|DF4?2})TzhL(8r=A#LJY*dd;Y@mRl4ifhx0`gg3P0 zQq+R1=rGLu%uQA%yYKCt^F)5J0nmEW+Zw}ptS*d$y*(D(E#GbZkz?E-nBqLiaTmId zul@VBu=YExZjyXO^unL%Km2=g$@isGK9?I8R{$fAbL>V{_^=tm#bHD2Er#}1H;v0)MooQDg_bS3KQ z$7ji1u0offl4xSJAoYtoNfX|a@X{v^8UT$xitk^ka}~iSZJwPitTfl>u$&j-`L|<_ zM#lTYqAVh&dalpdMyFN>bu2&vhAQuM#v$WMTgy}l1cG%jAsB2bHcf@xgJg}GYC+1u z0jg5lOGeC=9&0FJ)Nv_EiKKz?Bc+2p^qm5allQIK3)V;Ox%!LDZ^HmzENTJFnFxeK zlHbRjaq-aK6?bYo(--R>#;2j{{zzY z-|Q%eT@u7gOdUt`i!(iu3}_su2gVr_+Hk85=v0>QQJ@!Ajrxl03>8@|1jkJK?%3k+N}zp^xb z@e@?ZSAPl-y(_d@)if`dr9bG@j!;iqzQpX1wyZ%$3nnR^)5!j}z7C*oo!)r5DOU>& zM~4OUVIPjy&hd2nP8$}2nr^weXR!e?6a=tUpb_)TXBYCvTRDS;yoQzgl~JI?@lt#V z49mjrX}U*x@u$*&(EHHx@&s{fofr|p8HrL|-nWJC*X2=!8y|tb| zvL*8HduWPGbmXLawqP=$Y>Igmhwn@^7Z#Db)%+|pgWNuT=AV~FfICIEdGQW(z~scF zsk6G8o@!~lV2#;B|C#O(5WwI!QMmqt5LB%=r{)8w%Lz+uaSKz1^apeOEi4;pj=wgZ zEwq^SKFD4! zA9tO?`JKq>+6S3p*H~}_7(`Tlmwx7E3Kr|zo|=nXxSK%SOyO42>3A7aW1pkb;)LT5%O&|J zh)y?AYwK%@7qFFLLY9y4%H{<<9ZyV6-0Vgd`rZavEluZY`w6ajmbjFSClZnDl&Jn! zNN8J>3SEJObf4H*10gA*m4yY!lAZh=1`U9WRCGlA{*!`mhh+j6Bn+Y6xM!dvh&+EB z)RDBadCbC+0G?fJZm;nXAIDCs0(5&Lk?I9MN&8P-BIDP{eQd4a= zIzWDHivG+`zbz8)X(fm-(0%h-KYX6BI zoHxiXiKji_ou{Q|$wC#PR!GYAb1!s8MT6rH`U|l0k?!+R%~83IVZT}b7v?G2T2(ie9%K8E2^w+|Ismfj+Z$)?0pwVV_=^Q`1Ne zPdSxx30MKKGT@5)$`rG7tqu+~T3YLebQI4Dgr=!TYN9zbgE$0$|5qXc(I`mx0vgoqhU4Iafndh#B(B; z$BcQEM3bI!`&Za*bKVW`v!x3WWEhNN1pxkqr*-!<2O(=`enlS5sK)aUJa;OkVyC$;R#iU)G zMSw2Z{7aW)B&9-s<{1OtJuajr6_GC|OcRSnoyLwb{~c;{LzMVlAbPM`c{`Zu9kDiy>~|`| zDO#GSZcuJrq0)b~kM;MS2FfjsJRXb38Ot>fpL&*%VL4~C`XunS(xiKTn=j6{XOY1P zu*A#OhIbo(CVedISP=xZ=Wff}wnJ?yGwFmq>zCSU)L~-$Lx|5&EGpnP@gJHtnLaLT zLlZ3;T%j6`g#8-^*nl7TuMOa*X>~`icv*mQ+K?00`es^fm?VGxdX{5s6d8dou~h-L z_d++(W$qpYg!zQ#u7=eYLELXVYCe72;%U_8G-p#R!uV|gnX)cIJ- z1NI6(MB5>0_j=f*@`SyAeCw3yN&8@6PM*$UzztHRM)|q>gMe0$D zn62YNuXcg?q=$$a@(7y;CO6dwysd$+Iv zVSUxObu486M3F&l@R0IS#p$(iUkB_|!P(+6@#qU+u_+J@N38X*MpIFS2Kk|glXuTw z&YtpF9?Z8ajWWQqe!`$oO`mdMYC#?wD>ko0UToHWsuM}hGo$w$r_@GyRc%XkjxsC{ z$6!U1`V6v3ojjbo<}#1fr1u|8HjiMB0jcxI`j=B(#qTv$1@9BUq8Y!m0m*?!aM$BS{uKO`0;;`IsA`!g9GIM;7Cvx76MCK*%oPo0UBiH z5Hq*35WAsZdS_8BpiR|5*Hms(Eo?ErvM9@pL7|`3eVh@Qgz&Ae1l%kmOa4XnQdvRF z!o$1;j;jS1u%Ge=)vzL9x_WdGO&8w)cx96^nGkOai7@IaqPNXxO_X&;DpYpLNP9e!3D0i+)krS6{#!1QwEy zszR5`c~~rOad97!+xKuQJYB`7t&yy&7tmlR)>OqWCqUQ@+>9VW##WIi8G?T!8g3L1 z<5cjt$)HVE(Aq5HJMa*XY(8fL5z^K5^4`&HT{4<_ZQ?wvt^1`xgR$8Ic(op!iUAG# zU9)UX9MUwg;C;HeC3Gmag+-%PBGDNb;L8l4KQ40Fa{%Lq4yE3?X*z%qI(J&a3PBqN zz;7HIAg2teUuZU_YJK!A6K8}s6gang)m4_BY7oDu{6crr`|YDqo>6Hg0dXuLLoOxf zZDwY{+4P1doX}$Y9DoZ$kYDfUlQH+4^J?IewnA=*>k}|bi0OB-v-U=oo$hVFLLNa( zy}Q-etXsD96pK051&Ql)V0L3GOQM&>JkS~5Iu1HFhLUoy z;T+-J_uI+>H>sch3qs1hGdED~W6z+@FS9gs_5+>T8txXMp1)9etag57Y~aoxu6o&> zQ_?tn<%ctShcE282mj3E>M1|u4z&wrsqM0VI2Mwpa?jyz=i&Ji2KPc*FZ^jn?&7hF zWeP`6|M~IVHwky+&M0hsb=50kHKrd}G=uwV`N-MQ$ETQ#yZvyg_Ow~seO?vc*}u#! z^qtewu4CCqt&QEmLK0bX7{OFKo?_BHxS*sgg;B(X0<5%*5uTs9H2rKTvPsXg8{>`> ztUl7u+yk#R&_G2!OTeLfUNrV~8Mj@5N0tB5z|>6~Kcqptzt2I9fQ-s6j;Y`Gl-5sprNUjpD|EeyM9KQ|*BF%h!%B^Cf9dT3Kl_ zl<$T~J+U`*UQH}pT=9DZI~VS6)GKX7@^AvhlHJsCJ}9k@XzsYrquvwmkzu@OBy5>` zuh*t8$|g42tv%O~hN^D!XB?&I8YLBPHOx+Z>a%rH^!z$5J`RcW&{j1gQI@=E-)LLV z_9zog7xGl#r$;EB1xQN}DgO@qxtv|I` z&9_bDdGGc2#|bHEPs$0FW@o#P#wE0sbM*L-I4x&6{SM{b2vg?}^KUj-=OUWsXHKWw zJG?wWtM4N_jOHjd>Gh8jGU{e*0(x|gSe}MF3a<+xS==EwmzTG2r))9j6)fgpreV$@ zmimc~ z#FL;xd{MM>CvNSE{;M|8V<~Ka_RN`UgGCpPxEEwQvvwNF<#``!oOYbIXd`J&zv)OL zAT3ENJ!;`lCgq-gW@DOJ&gff@4!V~=8bf;O{VDLVoA@#iX_+Fi{t_E^(YwU0rp zkGor&UwQ{xksq%bcq&q?xBJsX_4KTZTi*PZcLeeT4Q74+G-#HQ`A|QQJz(!)^a2}Z zM(6#yL-b-b&Eu(3%jS(l$1wjmSikEl&!(TUg5!C>g!1aW*Lal$P3ejh!3|>ZLdv(l zxmXJ`T3-<3$@I2YcJ>EaN$5;LO|?`B0~*xKgWO))h2Q(Nmg9|A+8S?@uO(Qcxehy5 z4loWk4-xU-gh+4RF5r3Vmve>bv#s$s1akItXLIs7Tv%dVdQ|_Jt1IdWfpyaZC=XW< z(3?w7%SKkxOvH0DXY%*pDk$C}%?0r3`Bm1(?byY*3m((GcY72Vf?s7a;aHJ#lwes4f&%E5L#*P?=o;ey62+5tV`q`0#4EqQLY_BNL&$=Y`FZoDz>gPpN^ zL(KZrV%7L&|F_)d3lnE|uGx`u9<+2VaqOyElPf&556bBvZgcPfq5GuU5a{b&r~GyK zqy$X4X%zQ}pm|C7qv67PXnZxW)}Nzb@|s$!|5VFX$*yPdk1w+=bUeT-QRF8hm>!EI@k# zku7|vY#u__BF(&1##3UL7Iz09?0MXL2+cP?&P1j~Dy-`3cctPJb!#v-hHk3y^{|0;C*%U1(rpH{5Y3*#%IQnIIuTfmUG`_-Zgdd*nbv*+bJ>h+&w7dnc;#bGfJMK z#}wFyxQIJfJi7z_6w%#g5sW^l0ymd|;5Pl5v=NS=&YL1@=p|6yNY8B%f{u0Yua;Qt zKta`}e<#bl^|npBf2sKbZDWpA5S$5tn5cfdtJ%CIw9MD6G+*icMdgjVwd3K#)O~ZZ ziPIyW@B0_Nu;nnhz`D4J!Vta#nV>x?o_WPl!z3VaYkp}53&s5`H8?MB_Prb*Akos~ z?X;s`y>M8F9}T`MZG_|Bc1b`YlgvZ%l56@f5OZ@XAVEPQWom<8O)a|+^ZV3o$HniN zl=#LOJhABaN98u=AMyr+K;d8Y(XG-d?XnlVTADeURF!V+*DP4Fxp!q&o|f|hJG9&O znK5Q=Yf-pI0hKsi5Ha@Xo8NB@ie2w?nHdgh>;gQs*#%FJSJ6d-Gy>---g(WXH$<;D z_GSKB79&T2>A@)scMh4jYNm-x%(fa~b~ub%4rREN@f^E9N0->-Tg)*==GeQ4#(G*d zI^H*0d(qNq-L`WM2P{@n&5}bkyxpc>IJl$LhA#(g_;(+-x`+u0m;ZtNYC(UOWkL@@ zNhj~H!`|jz%;V6#_O8P;JEXFVXr)9wnOQ8iO5%OD19Hf8gX}hX)NHjmR~~NZIGb>x z$3C_#wUw3M*O5#_o>rEDPfz(sLs?S1HJ70J)e_06VCUOI`cX*f`ncs7`j6Y*=D@!g ziIkp}P2^uaX{=XKJlw@)mtVnbowPI!TXWzIsB{lr?($H#Zkpi9$_PE#MOiHfyU~qT z{V;jQaIxoICmS6&zRg?PqI3zr?3CxY@oFgb3;7e_q4BLt`A?PaG)zA{%PwLdW=?BU zSGM*152LXAwi66mK&y`g5LpU8a|XbyH@@sr!p6o^OT z2IKOz`}5v7X^xIi4)r=5r92QkwJ)vI8unlC)MkPsPS-ndz|=b!Wh!}<0)E;3ue?g; zO_D>C%aM(%$ZwlBZ?1h!M%~hV!zEQc$Pju`j;*p=SbL=AW~>9aBoI4OYLD;!b6OE0 z(9Z262{T+H#E)4uK&*$p;&~5^B|kr$Xsh#Ud9vc z-ncNzTHmnvNF)Z|9lqo6)Xlw=Un44BDXN|tK*`@QdLf->kqT3JkqC-qAzfYTT83jn z&(C-^`>~;O#o>sV?}|;%6}Gq9$-MF;C4^=&NtcrQ&4n``Wo4*_Z4IlME6t9iBVduu zAHy%as2Yo0|L9|^*KWV~`@Kf|t3SpHFYRA*46P`CVD&3`$>U2;2MbXNmlWiJc(L=2 zcEC!ptYJUXXDC1&V}HDl2;KZb=D2{Hnrrc{W5Kc60>aOOA6uSkSE5_7VRGpt%KfZt zW8FS1LjpJ`!OF=JgCJny!ibJ#&G?NUBEC97$6qSfNKp+0uc#+TU$d*7*^ zj$%T-wu0%`j|hRy+znNk${y}}#A z!}rlsxvHb__ZabA-+1;?WmwkS4~Ck-0c|;Y)NAQtS&OvDn81ER-GY2pME;5zm7_Hm zdY55N5@kCNHNidnCPH;tp#iKX1XVj-YDSl)QpF_ixV%qUlTGbmL7(bMfCdICO zdbT2=m(bOK{P?3S)j?kt1py7XZur$O7Nr~>~Ga*Ka{2#(xpy(nb>gnxYjpK z#@S3OH9>Q9iY!$Qhw_|$CUpl1WfcdB!KB7KRDM|jN42vf?w>hDOAf>#^(xxpo2l^v zw3OHa#b!~dT61t+-k@PQ?{Vwakmdc}t0G_rOPV4+sW(X$Wwl#n+$+6YT|bf+$xKhV5+!<$ArKMQm&sl7|cVE^N~ z$6xh9%`COpnZ)`@T8D+vD#A4ECP%;6L7A78Lz<6>0hg|RL(ThN_2t-5Cz!rE=()}V zVtMqk^z_flvioGtrjzuf&lXpj;|#vG8_8$S2jaeILWMqD;3eE&ec_E;=%$l;a^5&W z(q(=@{mgA zAm+mJH`T<*#KQUlA_WoI>4 z-4@^hg_|S5DK68X1nF$27js3rQQM(*@S(oigS}&Gm1N@^%pr$PFgSresd)51Ck9e( zVo$a0*a{+x$+W73PshOwD%uYsZvZvF{jKp%}_* zOQ_KfQ|i%Z(G?iYQr|Pzz^dL;FlokLz?B^FqeT-iu5g2*F~+qrY=NT@??HcUzd8f07NgY%p~}shJijgO)x>eR)aCy%UkNUBHPVE(EnhHqY+XnWMAVJaHpYe=T%p_PEKn>klw=l+93R{%NUC@-ImP-q!l-HiJ9+J zor#3tc~<+9O1|&7PJy_88+vqruL#T}UP|D3&cC=ND*mqTW>SstK>E{@wrPVgB4@`_ za(}&}cZ%#0yBC1#sbX!g`U|n?VXmj3OkaCTd-6EI8PE%7(U)SO5Ti&!pHVP$_z^g) zdgUOeBFHp&X6oA3;938^fJ=-1g?8r3s!GG%A3a0Bo+M{hgEjBk$iKe$pHjJh@g#{i z$9HU{)&5Wo+kX|-5Z^O`W~hR66l>$(X7%T8;8ZEw9s5qhw07J@KuCT*VZv9@1PgY< zU88v;C;CQK_*Be^Of6(=gqi=_ZJER=*0argRmAeT*nG$~I^b@Cu0tJRqyPcaet>ZMd?bf+k*IZBg)MgGgf}n#MyZ9!Q4gO>t5$+{C+c6SjT=uKW?p+_xVyO5Q~Gz_IB=%z#y5X~`QvEWpY=Z}klqmavyrq# z>ad6u6};et)vdGKT`em%(y>!pMu~6)ntk+bPZ8%K1R2#A#5I74+lL(8*KZWy$_gk3 z1@Rr@x|x^ceaRF}AP=OU1Hol^c=|RIFQdA*ICo?{O} zr4aZ}<323AWN}YNUcwcyjYpzK+e1U=TU;nOCMoE+!B`>JgL^|zVTW!_7y);@ycwB> zf)hC$KlFFv6xq&nkf&PwLWyFxf5f3J{6XHbXM7=Ri4-1X)mxY983vVN-Joy$f(b*| zEL-C8Oqit|mD658D8r81OQM;cVJr{3Tyan8eaH!nPULj^i?pX%?mCLhJJjR;_Is-* z+WKU9Fla20va)6(;N_|BFBebn59C*zyRJtp{aBW@1hG;Qs%P)d8$rKRUP!m9X|>ck zF`IOuAnjqO!W9m|q**-Z4D-aknq60h1%?VzYiMs?8Eyv0;!zxCz0n2JUCDX+v}tRk z=Ni`s^dTAV*EeoFe3%)iF{evcwEm7)f*2WrgfZcc$Z$8unnA*?|EuW=WtWV@v$A6f z=-s4WfE05_DhMX+%s1wE;_}eO#7#(y#d?hB%_jTcS8l{=OVVi1RU(L2bP8l6cA;D< z=hjmd)QLzx?Otuldh%(5Q^>^LMa+VLJius!WM(-AM`BMNzIw(z2SL?|)%mX`?P}Tt zf7{i|edj0%dt99%wmRJ#uhw?Xmei?!fN{D85AmGE?nFVhc99~*Gk6%xH}#QQcPF9> zrysp{cL!1$SJs2xr;040iP>pSL!-N`lr$;`nDzNi!sfHt|8GXSlArFO{gUOiV6v&L zMNqp?bbguOf3|bN6>Iqltb1vAOZN*_zj>3sxx@(Xj(ec%JJ^bEr=km4#L3}jDB{{2 zJu~rK`BlY235W*Bw+)jr!khTe6Lr;BU?v3(kA26wpjPY)J2;X&3zoRtH9E8PA=iV^D=wUKSZFFc3l9icn zYKLM@6ikmI4Vrl!=TCLclzx0lt}wENEN&>=8D}5pNB`O>{NjEqdRfd|lDJB%&;IS* zpS=h|+{5@$6T5IukRD;+MsTJ$OWdA4WH09pxPxR33Qc^4G0L_Hn(H0^0j<#0Bv7_L z1-l9C=pkqbO8zMW#NY8hTeX`EcdMqeBC3T2#CO5#rRS=HO0QMfKVf`a2+S;pG(>Iye^ zQ?*&>N9>7|s33>xA>i?&%h`pzr{}J(3^8;g7$b(dZ3ojKVLYc$uE6Z zgDzAK&O+xGO3q`MUzsOc9($yp4Awa5C7B$|ihoma8s{h2jo;}QeY<6x_v~nR3W>;B zzQRS=uf8;do`4Wn56$u(MfqfI9xG2}Tm?g}Cq-5djSFO0;{0p7amT~dR>#HTXWqph zy6V2YJgK8w>+Tzl`Jah-!=05&JV+AP2>$$1ll^pc(x++z#B}w++ThW8L@Zs?fD3Oj zr5EC#(f-Wdl>TVkUNk{JPYfQFOxI-E#Fl9pW0bNd+KB2IGs8S}sD=jcXlhApOWO+a z0LdC2K*#&)--+EaPcEmT5~jKgY0@t9HBB~Y{RdLGNiYcnljic0k!IoD>+2YSD^~aw zsjFo|ny~LQv?4kFb-#@$JI(oRouWJOs&0MM+te(h`8;hCC{eN2&am;M{bQ&beeG%jj>B3lmJ_b801;5LRD9= zQFiUj=9QsCAo-^wny`b!-U%=Zr5PnxUUDYttRC_o$dKZ6)=p&9n-bS= z4$<*rKQO0%D7A>yU0#CIOYJEm^_f(CAqi}fZ4r^@I_@d*3(?~0-}|oc$>GQY2B1Rb zC?mmt>h1YfChGTUw-~~P<+77geiSW>`Dhx(P4>@G%#CYCF3#bWeG_rQ3-#Wqj@D4s7E&R zcPFf4L4ME9r^sbwO)q42LC!ny6Bse};4BgdTJ@9AeLKLQRPqOst1t>`;)e6*z)cQW_x1}d8<#p{lPFl~0 z*Ey75gIaF=QraKlW*PwMWSu*4t`I!M;Dl}Krr8-=HB$D*uyq+lnlvO$_Hw1&c7Dry z-auf>xlX?t#qQUz>|Yh1>G~h*H@@Bp4VVzK(d3m9Bv4|B5alzQrA1s>ky?pE%SY9( zPbrxKfBaW(?htg@W6b#bQve@QXxl%xz&)OmE@UZF9|nx5_#(P z^_|tB-^+60^173k5Mg0pw}a4KC)X-65Q2;2&O2Uq4R~R@%e>LeV3L^iO#StSkNOIO zd~KV+?#thtAVuD`4}<#8);uQZ{1X;^`@)NY%gr`(X;vQ}uDLu<9(P_F@55VoFU$_R zx|W}IA>5;5FI9I>P;3VK&k|KnZpxPPb7O&spP{7XHMk1aD&rN<6e6Trr1o#oThmu; z-emhPvZQGzGWF(P*;Bg1cD=umJq34O6lpcv5+NU9hLW|eE_y3zBzZkqt|kjxB(04v zm4l9)wLV0U*E-6qc5TEdV?ffSg?4VcOJNaNt&tO^;B<4>6S0zCaAqG9+{Rb;VEw{o z0xe(5a&A;+ne?So@5Zf|fl8|Zhfd7pLPO%onLtW|3~Y))lsr#5Xm|!U7HFjQgk_6^ z^oTPp$8LpcEi-S=>by(6T3{40i2c?5cB_7&xh(%t)OC}SQ3F_tGpFkU<5bbMlevf8 z4#!pJCm}pV=HiR{9iywEQ#p;Fs_!;{&CBeMsvK|CEq~9X^0v>xFNLpsL44icM-n{z*mWp;!Il$r*(mYy5XOTdg7x`Q0@M%`{;sJ>5k zRS)kc7>Nm;IaiG{Lt=IU}V`sdm ztgd$Gc^WEv+i_TYh3f?zNqU|7G|PX;U65DCguKl?Z%n$~$Q%FA_K>+Ucqp^KRor)z zJ2s5f8D`%FC4mLX-WN(bQe=%32~`VB)dFf|wH++N>|c~lBLP4O= z{#GUjgQbZ(_nd`&k7e4B&D&c>Iwz;UZksMag+>wrF0--3DNe^FwO8x4j}bM(4>Z=J zj2xq1@(sreGlTM90mEAOv?6=KkVm?WB;m@N{g|%%*!j$Dg^ptU_IAl8n*M=Z6rSKu$jnOPuwJzKHG*a1RNm_xk-L|Sz zXe1C#3TbLp^zxyNul&v@w*GtyOrB(Cto@x^Yxa3BYDYWADnVzOFn^ii2t!Jfkgr=3 zmKnd+)yvS8V`_mT!ZTU^e8jAOvN&Qrns8tto0ZkC9PUm7{~A#ERUI@}l1+KI)pA=O zFofC#$^dpYoqBIppjUA|j?M97Ik(5gu?GYiG=KXyUpdcQ6g` zB!tD5{Bwu2_#&-Q|B3JsXRodvCb-81zTtt?zIuq!bLmOXHm&W5&V; z38ZCFiau~#xUv*3L zR4K_aP*@OtnLAx6hLh&m)%C&Fq4V|2Lx`2jlsx*{K07geY8myvYyS5h{I4DS|NdQQ zQDMpJShB*Eyyhw-FXGVCmZrmLz(W3d@wRhkN-HAt)DMW6}Lg|wv4jqck_}xBLy$?13(IHGt#OrHQa3B z3s+>w*4E`ja5lP~j#FG)Q&u6cMm6J@3v7scQ^T4BVKT9;LuUFKYK`GfGW-l*P~UO%P2wkEVFzSyN_ zk<~f2f8c?SE9MV!(M>ZS)6@n(qVHOF+U5F_@$v_GL>;+ngh?v(W2?)rf^Yj;E0tyq znVp_^u4zxy;XpK7rCC~DkI$NM+*4D9Q-51&X2tqYuURv~t|K32KQIz3e$cF05R4+h zOQeg}7d30vqZVP{CAx3O*EMV8jq93A1hf$2!8LhA-~au!|6jYwXIq3MNt3Wb4OT!% zG&Qeeu?9_mV&MwO$M~#V9aUD8V$zYLz1Xe_id>IAPB`oANcy?;d7CN-gN51$zwO&$ z(9Y|QC*0$*f7Z3bn64?)HfDZMWcK9bH6V+9pwbGI8wFT0c8#IEp7wsWOWPnkfdOfX z!#W8r_X0C{_KTbWlQda7a(ANSXJO16>y^$&N$vRW;blcP=4-n-x7a#A4WiJPva6(p z`C1m_#l@n8trd`{c29KEVnm4N$>F@iNmK-hemArkI296gJ=H3wvAH(!dO<~_xSbgr zsoMXBR+9XZ?k9VQKQ#ln!UvR|V08#lwL)&Nc-u9jj8`gR7)9hFGRY87feOM| zAl}QVf#FbOo=dJHm`ut=V`2|BML+i=em#UsYb6(&6=O^By`RvFMPy%cqbgcGr;;~w z$zJ4IRpL!$V=qZi#X?umyvU7=*79ac_N7`Dw}R$Pu2+RB$AJPt;w?r?lDwl%tr`>2 zQ;)Gf$X|(L1j5fJQ7W_LLeV}d zGfoApzfq4kswh#*9=a-Sl;VZvAb}y;m$l+(%eZhmL&a%-wayn~@APzBaMd!_+U@c%K>4sd!(?a6V6bUg`4W|rb2nrQRcW+J`rVnI=BT+cBO zu;?*k3)N7`DT=6%Nx89oB{Ru+&0%*KuMUBjPXp(EDpYz{9WRVSL)Z6N+Ez$Md(k^k z7d_k-O2i1?+p+6_UY*y}TZ@+lXsFt6rPO#SR`s9JqsH&jcqCcdzk7XP1v z2AwteSsL=MkJnYVx%!$#6hOH+Dcq`5afDfNWsJ}92PE>MgiY(`qDPW{X;Dh>jKaOmQ&I|flTEvd1u(Ut+9fofA^)jM=5xB&z6bTf-Mtt|Eg538dM22rCj%3C z+Gj{QQ+knMyd$6}+>dc}p%2moAvWYsZ`pCTSyb*blVl#gJ4$Zv1pI;!X2<_)J?CDzgld zIaY<#kOVhuSYcAV(MThmnV*ORXc>wzPkDWZ zF69?Q%Sh`=fkFTf9N;{gF=RqLrf7dZz3P1TBX}ysg)9NBhqfkn`}c=J2`KN_s0aDTsig|_GfLeP z0T$zVdFT+UR47VzEO^_sALW)V%WZV2F~T7hW*%o5(M7u&#aK6UJH`uCc|*UT=2vym z8_tzppcd-icfph}_`{H)VO!!kkO${reF=Ngd{0D2%H4=h5k{EZVKuF?wZU8L%%w?1 zh3*z^c}rtK%6r%2FkUy0pPJ?KiudYO6i*2`aZ8t)d4b=H?zz{mW3z(k@LCcwZB0#aZpKZpc_}FXo zE7dQ`I&x+}{~Y0(fXSj%R`KifiRzZg8}9)5OJ1;&IQis1rowl*Ek7q~1me!AR1;48@UVi`ou;5?d0^wf^G#d|ZegG&Co~Ds0_IZ-bVwztIKCIQ5FG~}? z50IcE5TE39{!O13Swx!35JhC&Au*}(YO^gSU@J*4o#{2pp+Lekf)qvgo>@4tl61B& ze!l1z_a^Gh8ISauyEbJVJ2t0KrRAuxa^3FcnW?YaE>Vc92c*@I4j?*0+){)ei91wE3x!)YF>c1Xk&L_ZPlJ z2#3mh6E7Ioey%nMJ8(GXKz95O4p*t}2FP3E3ANpi&3It_LF6xID&wyApX=Qcl@eJ3 zLWUqp!x6f3jVWSb0<1W$D3-0DOcNe#phdL}V8=%LTP_;wG{u!4xr=ZxDsU)E@^_u- z25SBLsa5#&#a0A$t8B0bDM)f%b_#v{3WO!w?{+Zz!yllug#7Cvbe;1j5OKr!Lb0sS z#Lkl*s=VgNKI007$tqA_?R3#YUcRVXw>Zv|TxQGyhL-YrZuSB2-ecTCJDa8Vxw%)c z4D#p;vIBC8CPeeOb6%h7vIuVkFyM0KUw9%$El?rZ`znwY0%nh!21``(8)&ao*Ol#c zFU5w~jtgF7gkroyu$il0X(;Eyy#9?W;w!B+&w5G1AByoWHgqA26`yY0dmpIrFyhbK zmd`HKJ5daiyNI+e+Tmm9W2x~ZNU_|ThFq5m=2Wvaku;=4E|Q3ZOhxP3zhs2*<-*f^ zj#_mfu##r5(5^zU`L%D$@le}Hmc_i=`1(_D8sfY2?G`+Q?AvWJ9ijpntVC;hS~ zxt|jR--2|w-Y(yG%T_eyQJt?3J(L+cPp;Mx1Qdt|d$2pfn@!XaJUY&Ts|h@mFWnU( zaDuEZ3T}pjwU9h5P|qWu@{2=+$G-&rtz(BxqEjoGb49ZX0?FXV^=SShBc zX|)w(Ly%N!dO3cld2DBnQN##Fa?+g}Q4~J!Z^Fg7B|}0oZ^qt6KrpyaZ`{y+y8X<> zBIqpdXH{#kKat>|Tg`cv2MX`n=1Pvx3Wxr%j55|Hg>%X?mV6|2;(pJQGv`xkbn;R= z5Xxl+RH5qknySqw^NIu5c<5paAkAXg#fVW*%YUF{ichmFK1@wiJE}8%)z0;esz~J| za4%Brw9?j~Wms%BPPV`~$59u74`Rt%-~-`>93`PFAxq`%67CZ1v0c z{OhzDa7#n6J^p>#x;#YLBf07aE4C(M^cqTp!aq1-p$G+~F8%oQDZ+uLgzcPi@pF#W zS)H`bF`y!1BfS+2>uu~Ad$@6YS7)WfcU#9tCG5BHxI zNWiTA^ieXWE$OsJUpsXDlxV`5wrENd9|Q92H|z%E9&ibL5C? zItw)jS^5=F66tTYw*Nl7(&TgO5f@t=scxaE zf|P?mZ~O(#PNFdYAYs94$fhgdsN~@wP{Sv;!d=Lpp)2L%@#YxKVJ>YlE-Q?9n#N}q zBYoWf;<9|wrW5y10dvT!My-l;z-j`JB*AToLDd(2PMYxMx-#4m>FnA}dxuv>HRQfc zR>baFdH4>rykzb+c6kNTi@aR4JUU2D3rn%Gh5uafZy@uxcj|@ZZ27Oj8+c~+Zvir3t+ac+?)dW;<8A*=Vch;BYHcV|b!kvOdT6HIOoJT}FPI`(j5AUrV zxxPXe+xx5Yxf4fkc7At%Mhd-e58*uuHjLDlyLWFZ$ZkbMJd9z1SyQl)3x-JG%-dzD zt#&xuDtMwpPeK|@3l-7_4u+AP3A_V#wt}WqU$AJ0@6R=w(wlO=IiQDWyJrt{mIzJ2NJ`mq?nG|d359E$lm^!fuSt1j`_Iq7tifK1g^RgHGs$!%j!ufzL#|f~+G3$8n+ce>~ z8o;`wmLu88ICj?OAV?k&x~Ay=?aBWU6bXOhT4IdvMBD`MJ(5U4 zwln!C+m~j*U{44UtwFTLi*w~+#0azZw1mnqm^xR~03s4JoAQB8 zuB7-_Hb)P+R=Y$ig+SBy@0HlWiN+`3p2O9=*Swa;a=ZlHs?9D&HY91l$$LN)X&Qz& zPyxoevoe87m_^7K6wyDKz5}-*iL>3mQHscwiO%I7i~IQ94OMfw$x*n*TYZ!Z)!^BH zJVK`qBuQMD8UH6^@*(OS_mc>MQV?`j`|Z-8%rLE6sJ#| zF%PcEBs_{DAdE!jQ3Y@-Xd!uGFHZlgP5`y!a(2dwbj?_3U;b&!jVb$QiANaxV+pKh zU0FsiG5}Tw-n1Lj_W2k7_)))sI#Es)|$!Qt7}If zO^5HFE&q9tf50$%qwru(EJk)H$*Oz5^hkIa|HdA(D>DOuE-S;G_>jfg;ee!O_;%Uu zi2KY!UTGD+%-fHitV>0OhIE>xUmY#8vztw#>*^4@KhS<8XPOi_*D}auRm1R7k)67{ ziXk0rmyYC7S`{avL{0|Fs|VGL{v1yvdHJnEXJ1y)LohaseV**@4$fJf%%CT`3!1N2 zpqd@pz=U)RVy&mD50Hkwmk?shTOIy@sS^zC0acVLO6lMm?f`346~CSUwE0Ea^p~pfg^AJo&axfQ(O-2v7jeCMRcqLJUX!%g*S^ zW76F$3@|%w4KV`1yVQ7$R8}x+XKB=FV=CsNlf}yq&RTu6C)Nn1)mDZP-!mUdS01Ek zQ^(oxyU@1?(*kj7DWlNRW&!yV7tET{I@^pgs9R)ZCHOLaxIR)TO{qr^Hx;hTY)s-b zs`GrHoT3ju)W>!|pVfBto1df^q-6lo_7d-yvV!lpR!OdH2SGu(sf<10>W{UH4LI@k z_CS!iJ7wFzsaW{*H?wE&MNjovZQFR3vdwJ^ag%d6SS`d!G27yF#^g5CKajYn;q=;G620S+unv8LFrTNdm% z@t=}AAm;}9Vl+%VfCG!|o}^S{L(KL86~_*``~TX$sqm{aT8h;H>gTQ1^m*^0a1Zi>SBF)W+)u4!&^2(= z7_>^HFWEugot^xd^eAN9X$bUp(KrSTS9aqnEqW?pPBvZpY(XYi_4N<2s(PxysO=K1 z5%gIN%Mq*`0kY-%W^648ElNO)@fXDkbdNIElB7dp+S0P8DwOga-hhqAG*%D?Ur*>#cUwA%#VWx<4h0@TMcZEB)8!3T~3hzx_K3%Ttj; zi~_p7$QZ0nHLI=*MP!iaV3PoPvJut-NLehC+$LX=ZkoN6l9Xreza^=EzfLAA%{cq~ z(Je)()0Zi?_jf>UO_;&guU!6su#2|M^$sZWK4E^wG$NZ_SR?K@Ts&5znh&*NeFcgB zrb)aKU`9g(&)DXyyvY@vb}h$KpeYXhP6Y2HU`9LbVqYD=DaWUa7rn{6h@IXKRcgZNW32P>4@ZY20(e1B%ILrFIHwV1XF#GACo<-+8zG?kMALKRF^1t`X-IO+EsJsx7^dT~`V2 zBs-iVm2<$fO|+kf3wAAhX@bAsI{d{4vEiPaNM(x;PN`~3yTRt_8!q1*h*mBFf`6YG zrCd}EDeJ|qAY7%05bch);y1kmL@!xus%@6@8ep;NJMr~(4Ji_x;ZpU&&w5P*FUCK| z#VoF7$rG{Ni8YXiWq-QTE7s@k5Es+jecB*rK7c?4h6w1B-{YsZ{(FOwOJqs%u0bZ5 z>^s6G^SUD|ty8Q-KuIN2?hqZpz?$Lud}cYRuGbsXSI|ueuL!53f}ulx`l;|LVgm1> zxOTe3-E@6<4=u~aj}jZk*&D{92Nv3tqtg7@^;N>=bS*qFQu!)#WQ79}*!SJh1q%d3 za0<27`tDdlp+L#-t3e){^~jrX5cNw%P|Q3bb*=3-x&7$=R7U zELfpnyD;p3v73W_b}9X7iMw0q)G$bdff$#wFNuPk6BKj1s`P^ zG3B~0vIB`=p<+eI*NtYu?Wq1mRTLUgkurUT4p$F<9cap*F=|gSW2p*_qdNiMdi!N2 z)xQK^`4sV7=vkO6Zp+s#u<5%)MpJxHWvFuTALOYsh$;1|QYe?q%ebX94-B2q_)T;KlNif0zP2lsHAZT?V zzdSQ9E2uk7LpqPC-%6(BGKnE;D=MERxUgJl#g7S6E3~Qz%BxVT&LLM2P{GEVXQdf+ zLUH=TrE5yT(`Ol z%2Ci;zUkti3S?CHjK7NaC@Zl@ykeY$XGyHPS}E#NF3*L0R|}adoQ9ygS!^z7FflW? zQ3}7Dh4S=V%crBt!MkH#B?es?LhSB<4YdL&<3B9p&%B-9)Q{!vzqsYs1NU=M4@@1{ z?E9v@rmV;S20=`XrQpF|4Z5NFDyDseQ56#$n&XNCtzx>aHQIYcss|=w*x&L_yPc5YLbR-w{JBTr0+&iH6AUqZbqpxt5tj9`Q)K@>nPZ8;_+#%tTMIIELh{00>|4{>{?WT zMe|~IT`JeXv`@fu`BIXygb7G}k@{vN))n5RnIzUq`Cdzv+H4-5oXQ_gz4O(wFghHj;fwp#@XK()=4n0z6tKF21I7Pd(S9KW;iTc`^o^ii}In&H5_$VfIHj`}trikV|+ol69 zz5*7!DGAAUeusHL563|Z8;M@GZ-CWNorG_}?8+dX>qGkT*AN)g)?l%FPZG?k*gz|( z59~Y5#^Wqt+h?b15RPKyj*V{PzufY8ehm?MJ2r9^Y_4GMrS$L7WdS@0mPlY0_O^U_ zd~T)-$Zm=kXPDVx$RN?u7dP+A`v$#prTY&-Oy*k89g4OSu@eEb7F%Wh<~VC@>2sC5 zAa}K>9zM(eI*=G4jk7Sqer+_x~~h%7K47l{ue@!oL#tnq6bU>m;S&nI?A!I*=BCOKV7rDE`ug zysjA0q>(j<)>5e&)&SgCuYF><;98MXDV3MVpG$4W3XuFXj#5-g9rOO;Btdy8l#QM( zCi4zw?wVJquqTXY6jrH?rTI#VtQ3z~Njd^^OkSylhE}@5b3p!8=jSSKuAzS4Ioz(O zDT$c+KtEkPKpo+-_o8sh)FU6E^K2f?-@94%c2anWRVXUWiH=fimAx-ZO*{wPVKoDJ zp$nF8$mLa0yx7iL6p*iv6UwnWjR=1}t^M}Ou$*!lLGmB`nCDr#?XKkx>sH`| z`Et&JrT9c&e3vNVHP05qHIBy4X)J~K~GGZ(j?*d4Hcru*oBN)`6IVH}iH4SAAl^&+ z6D$GcWJIwdM5Wpwbd^aGc-GCYRPC>5su2o>hTGzO5<#|ZP4yjLY&zuXFFBJg!gM&s z^`B1bvsZG!ri*r~iNBfA&F(5VyS)=;XS%Zd&z9rTh-eCkVjb>hCmGRiGaiE>Y^ylq zG2YiZK@M2kkpTbls|bh3h*N~e(=ncNjUx(E2x;1pE*>Ka6&C2XQ5Gr;#5L@`LQ z>2xrlTL}ulUeyQ@MTHX=K~{jEikn0XSn3zdVA@x6>@!I!Q1xMs+2wV|G2Tz9vcl8I z3`n!+ps-db?DP@a9~LaZ1JwP1Nc01ka+#{&>k5y_<^8Qp@sB5NXpDs9 zDn%R^CpW19IfR>`;mba==YwGI!xwYazL%SFo_tCek>r+%C9cr6b4*ySaBBj{ooV)j zRv+VkOMm`v4Nx%>5DInKbOaXIIdA>j`Uqck2HJ@50(C;k3QeRW;{e$Ny68{B{HUx{ z_XLKLqn*!(DP_v(h5-RZ7NjQ-E?QTK-Su+0&r|g1K4n3a=HX3Xq0c|HDx%s^BOkEb z!ihog;Anj-qI#GfO6>lf%(A0L;H_%)vBc5TI)v?Nzk)$#CBsCc7DGqZQp0_~8=r+H zW}YRkW+7x?X`d5pwS@2`$9`}3HsGQCv7Nw)x!Hv<;ashU zLeO=|U^db@wlh4@bs6OxzN)*$cLAhiFuPZuSVIKNSj>Zcc<#z>oJ(ZHLp-bg=*m26 zFUkq+chHhUBszFjR4KuqBv-i#oJ32#h=AABC3xtpo#6r(`3=!Snp{&q5H2M%~d7 zRIvdhI^GE_$E=k?BhB7`QmQ)tSUL3X!$?OMAXMjyH~PeK7bK-5^1P%}Na0eXaW3$wOcDd+Qr=+215qBzA8=B!<}fwQBm;RGVXBl4^ZVp-%l4i-$<)17d)^2HhOKr{?|U8Lzxe;kmAP3)%g0`gbnvLT3@ zMKP^N*F0PrIR4({L&|18-$I?x~B`!Cp!^r@^ zK*9O$35?U@h^VrxM@)PA&0UYH+?yN2{ntfXl6E;`h{10`Z_srf=MnHYa~n|3fL$Fm?M31fi#;d>AM5D^*~=-h%tW z#ZZ%qi-pYt@eU}BU-(Unk#%g1Qlt8aCU}FU@yV%uP$_wHR^uA{jGNScOZGnSX9GeN z0Z?ADkhZp^(rAP1EnAABtH1yU=#6=zQG`{9>7N{X#6L_b^3KpS8_skK(wEyve9}Ja3Y$P46by7COy-ntKw{?dtj4Io0H(AqiGPWS=6W;Hev;spEv5~s z2FB57nu-@+LsP%=NXZY_z-*V5y1PqS-t7^JvScRp(S-RJ?jOqEFfZK5nKxVO2D*%e zJ2s|k6{u2wjJdeu)zwcoSr2EvGZbziu1?e&ES6_+TWu;%bDP0^e*gnXnxKfOll1PI zSB(ynIX7xYp_G7JvVe1I$TiI#;nj(-8ZJdn^F&DTN&(k1Lb#auBaFCtVXr(h3MhWc zJjC2Sb~FF0H{X1*C5RNYrTo&nS-1OCP8)CwO%ZM?W9A^Ja7BRfj*d`RRuL939Jw}%vrin zG3c-^?!gni?f{*?5LCR5P5)k`O;{1QX&ZC?uwY?3G#+k!R2NkRsySfoQ3ni-Eq3x+` ziV_TDHL5~O?6+XLOqE^433FA9w-Xeg*AM1`=o z{?4x&0vh?uWExHUndL0S{mi7mO{MjGX79t7e5Sr30>7-B)lgvI1;~Dy3xK?+z2+M* zx7%=NO);)vPumGL;-vP!BCFq)Un3Ev{fkD` z2iL?SaHI%ss@@BhG{PLuxPgkdd9%AR@M+pH9C<&JY7h>4F*8H^8L*uW&xMLl9iwag zkZvEhaZHa4&uOYRZwf!`#wHGlRZQ=w8ku>waK{s$?L~(OF|1lEqYVpRX_;*`nsCeS zrXbLB==Zs3+gPvyKN6J?1w^72B3GkQkqLKE6w@DW_={D>IH_#ArSXw*0(9l&VCY4@ zg2u7@GdJ9MB`u(}SUO6(r)#)No!LG`lhq4_elNU0qZy0uV{zlb{w{I+qwD>Pv|eNm zS?Q%}Qiy&dS*lfnoi7#fGRdm&6L;yK(W+SPg|}8QDvqophALt+(5t^M1;?nyWCT95 z2uc1VL^+YsJLaf4ONs^&pFwdVYYrq!uxRxGUj1DV8-^0bKk}-rHa$iDW>Zq z1E&|#)eBfoq{#O#E!?=Juhb(#aQwlo!CE<|(Gm)6yCAKGl!J zx}mr!JJOBkDpoQ$P>j{f3QOnrMq6k$TgQ;k5)StPkiap;w)A-n%;CbRdwB%JT@2q9b)#2 zux5QQRk6W=23NgL_+Gkyxka(uGk-SkXE@F3XZ_YaMN$Qvysb*T{Nv8KKSX!j3+HJ` zOm+S8bSacR#8L32P&7{!7i0qpE&IW<^t{OJ5mH;yPSg z$O@6~ihiqVus3(lioR*FY&|XjG5PA?DT`Lm6>B&teaFbG?m=KA%1!E{BfU4@;|9HVd zv7e>Fl?=s663^yi_UI|fhUvGWC4t0LYMbMtxqF&@%=czENOBSy`4fSusycbW8)XuO zWXUm~&jyY?@ykd$kqoB@uqDD5k9qEWb&;OBgFUy>!`rSu=cq*_s+_5`Ce9@zT$UvP;ro>^lLgFHBud3(L($j`rQXFocUsEu4DS@%nHQRg%naU17eg zOI!nm(C?UEuI!z7CRdcq^si)9W>W=eMC8aAJ%o3kg#>jL)k%-Ev6AkboIdf&;)l&m zY~jT-?h~3sQ{WJesOEIOAW1~g>z1MY4^v)U*Hn?P5LIEzPnrAz*(iw+Tw6AwST+A+H>!`M25xrR5*3{Kle8#AZEjNm_ zp;{%!0b$@4tQdP1Q=Di1xftUcZub{hWkD2C-1o6dOYoDpm%w4|PZp(~8ug>8HX-5* z`>-Jm&lXA;%jtM_06SZKCvG3dvOQsYe$HV`9TZ$O-6juxUhrrj^lmJBt=ad0;S8spNkhQkst zY9jbTnORe06^m5VANm50qnFa8qUC1;D@j< zyXANg7D4FxP#^e>L|ciFzD^(TA8%IOgkfui?Jun0zBNfL2Bqwe0yNAdv)v#K0zo73 zCQQP~hWbHJ8%EKhe@jY3hpBm-8iN;DGVpQ>G3 z2zBAy>7lbo6?E(b+Ba7~yhP1>EW1jN5q0B@!(V^C6^pNn{t|l> zHQ6(B;?>`eC{rYNw;O|gaV?`u3^#a+9UR|<%wmOZH6*X*UI+-BYe(Kb8y^_tP4%8l zE(?ceA&m8=#wld+Vi#vLT5=KghbD$w3GUmR^0(9_h)g>#ixY3>t)VXzkKUlR1+b@I z_vh|C{Hj1MWGdQug}5Z(vdDG&pVlXkT8>VouWxeDCP-;((F6|KXrZE+464ZVM&RK( z^ooxsFt2PAzqUF1+WT?^)S;zNDm<}5cZ3}_eo$=I2F3o?^}+U6jGe^0u&D9$9#~oC zyuth2C9l0#m)6nU#vTOdy!8herdp5v)#2dqvjz#azF|3j0Q)BFx#86ywL#D*h^o)1 z_gIzzuf+RIQpTUh$2<+!3;Eg(kNqC-?G+XaZo40pXvK$%0(sHgh~Op}#iT+yacWX4 z6_oIUD?n=HT(E*v^d{Ozbp~Iiy z=RU8i(4Fq?d z_x4%%{Eu$y=dLfk@`NxkZ8yO;W9R6-U$+qF>*dW2E{JbD-9nX#s09uJa?sBNvi3p- zDXvWoep`)i1*V!oAUxonMA1t;j!31hoQ{W6`|UkZ2Ws!$EbZCu5qs3ETR~^~qTP-b zV5*YlXt{mHbji{>MMmtbyftN9CZl{`kbAdZsqBF993P*ktMpWhnB1KE_*^pCUESs- zapE%B6IGGR;Y5UGUW;}P2xXX>4NqTdA zM>(qfZIk%7xaIh)OM?hM^WQ@bIzCqNeda!uK14l17$i2zboj!`U-SyMa!R2VHOI8#C6N}mwcl3r>cs^wCITi z54aWM&yMbJvqq;AgT^LSsvC&Z#Sk9VHb^ycNih;bHr_(Cf-ev;7PY*nqP`1D)!9#} zto5!J2)O|W#VRs;JHBk9RBg3fg#z!70$^sRa#~RKklae8mq!-~r$b$!r#J==!Ci@d zSuUXM&bdwJ`69yAk%#SAq>Fdx}5Sn9t zY_PZga+G|43-$S6PZnAA)TCC>hgAt$&*fAs718SGUfj)>%Ld$tQGG zj-=w@weC&c2i5rOk~<%@?4@zXH-(rMvIs77oj1oE`<)G;BDY?Z{OkCKeAQWf?&`~; zJR%kP74H9j@^eXBZ8u#wRe&umPvXO+A*x|p*6O-)ZSI@UDsZ@Nn;z_ic@*9P60zRudv$1I3KUdYWXkOu z_x1vnMmx8@rZjDFGEmx0->B;ZW|b*`XPf zGv&m-I$DAvCt<=`RVyVnH`)iyi3_>HQt46~PsEzbHWQ>=?Od|BNj^oXRE^Z0a6|8% z%cv-;hHX%wV+5c9L;UHy?B{`CCQ{zIeLEYikrt627QZs}F2_~r<&Pq1|CV-+Of*PU z7HQu4oXUV#;5UMc6aR2%fW!t$gCGNx1yJALy2WAzJIWtb1pnLThsk&b*4A#fLo31> zmNorb0cac2)*Y28*@Cjzhn|KMHbh?-sp$Eqmw4Yuh+#}6XjhhGjs@nn7YSl9b&o_} zQQwkh_#S!pzq?)jPJ5tT|>$s@=T|PwOdPdc0R%SBq&na+Q29O1}%yY?4*oH9Ye; zOHwED-ESM&_U#&iU43pFWJ}9uda?-PFo*fU(zvo=J5eP(zh;D-6h{mdpY`}$QdI?G-~2HkrUD? zW_-%lN54|1xkyDFOL&l3lrgg@^nwppt-ds|&S^~5)|7-;X-0WIG2kA$Y(x-meZ$4_ zr&52Y*@{1QYG@(%aw}r=T_JE%&^|;F<+^z>Yec%EU>hKsT5%m@g9g1O zp~5_9+MWR5fp|<{h*hKH4_EzZ9;-pXv;v(|rV$MyF&%@5Ozc(_{DCfL5ado9K1{GJ z>3bYGYHzy&LZMSPJ)>#}ChMCI^uRgBdPlY?U2j_9HE6p^tdWg^t5!-1LYU|>&|q`B ziK|?jK<>|%`zVb3fbxNE#Td-Z3epp?YG&8(FJEWu$;|U|%hVF4s#x8rh1?uY7U@2l z*S)=T_?bO{T7lsPe-iXv16M5OxEd*RGopiV3fj_lYqwP-V6J0&^5@~81;ExdS1dHZ zlG(6MG@3G(tygubBhm0ep0X~z%@p9X-Sy#WwsAm`RZ6;mSSfd)Fhi@`f%C7Z?EBop z8F$X#FwFdPkMs3_TGH{lv|qhzd~PvEnZDmKKi^}nxMKduht2!Mg)FxIa@aXE1Bx)# z*H8roehQz|^XNqC3M9HHr*M<8PLqMuY%FmnxTG;Pqm_P(8dlOvhm-JJFi%bl za}+#*=W4`y<6^3!uGJ)+Lh>k;C2rele~C(e)d@ui|MKa-VIOg3vmK?(Kp+b!OM{5y z9)VD%^--DTVU{DyG3wSI!Bi`<-dfS|#^!1&!QUptC2%9}DJwrO{Q%`+S4w&|w$Bh> zj*;>BcLxOlyIr1v9zH`EY+LE^74>V=a@h*?if@cP@aFzS`I~y+V%+TdI&qK?JO7aP zP59t9{QI^ZkWR2I=?c8mkgVAmnvfVzU$z+2P_94!A^dOKmf_FP9tFRWqP?>&+GP0Z z>Xa2YUsh}TNduGtcauEZFGMNVn{NL7;SL(y@x0D(9>Zg>W-g%)H|GwU*pL9P$)G3& z8~!#9?lr9!5v;@gWQ>bxNA@;W(%Q|`^K&Gt{#Y+FS!vm#)edM7qqwYMR z^{t;hwZfR=S)K2QF6ex2%-q9X~}d9I(EjPKY-W7Zi-+3xij zjZ1P;{R8erx7PW++=fqI?{Vh*=Q&>=ev*N2kB|1`zIhb+t?JU!5r^f)53!|nLSh5e zY;IV|JnP`ip8u$WR7_tgVzz8b9~hOli&d3^%><)vFZEqZ5?M&}u;%l2%_jE{$)+xm z%s4U)zA|p;r!f2TTN)!7Ej3C&e8iuAeVM5!EdZQiWydD%0bm#)dIpIoQEKM)uFOtkShcY*4Yl-4hwD7xjB zxdSX;Yw2T>S1GaS2k7t_&&_?w`$hbCDK|5vfP5KIZU^i&xop7nZR8#an=ii?y-Y16 ziexk$eKsCV$pWnA*P2t!UOTX73rhWBx~uc;wXJ@#Yy)i038Kq~0_KuUsm(%}PuU#l z-Dol>3rPeXMz=?BvyP}9DLi8|cr0x^#@vHee8Vhjcj~|Y8#zz0#FEGLB-N6T4Q0~q0={QH1dgS z(T&HckFHW`%WZ6u(DTZn9j{q9cnBE7ji<9x@?a}ZiU0^p+ArDP+=TFpa?G35^1lsM zuOvHD65{NXrlg%fqnjyiUT4w>N@Ht)XbL?hg-8z4q5j33*1RWBw*nBh=siL7DWc?&2N@?gQf_M26L&0$#cI3(NjrQ>{oK3N@;m+MzQGG2F?7VeOPvb3 z??P5LL!lL#Vt_a%Lj(( zb1XG!;$)pBlb~@x2r)W|ATOTedZge=ZrxY>nCIKq|A%=Iad~0h5Cm$4D%qhIJ<{f= zo(6gGf9GH3xsYAV(+T)|+(DpjNj6TUW>pgHsn)B4;?uv&3S$pLDP4O}o}%GTb)oKW zKz6cN8eU(VR2x;JtD-sb<9?TOxy%-|Dxse!=pWYR6x&Du4!HdPS>l6JZUX54J@^x5;&LbT zavU>R+)f7qmKp32i*K+2G@zybZ?}wsMX$BBiQ{Njq_^IZY_&$hc)4gw8Qg8{v4IJ* zK#rM8U9n&Re0@hWzWB0rW3P2DO(be0j2=p`V5s0fY1~DE10-nsrxzgC`f&kIk+ZV) zC8Smx+e#MWrhXzlzE1L#=NuGcqy@DZM~Jt5;2VIOWoo5UAup!zm4JUyY=nfgDFQyE z?izruIv`97cfN`JG?WW4yR7gz5wH<+D5r z6m&1^cf9g_OtxZ_mk>vJPH#I(o-uui=%c@N-|-mvu*q4(!VA4K_6t*;^n9R&PE_;l!Yff~LHUyC&+!`hdJkK09Hz2XyMoDUUBy`W;O z+)&z%^Vzl=pcwB9tJbi1T7f<=>eIIUku$omGHXXkAu7cdft%mCZ$$W>ItH6T(C7Ug zF6>x=AI41O@Cxxs>l4N}?_bdH9x4oc=>c~;$6}+*lQvk;KmZ8SWI1>FA2s2rCBp_S zPZ%iF@z2K62Ps7&Z8fa12EKSHPN5#g#<7A%I=91cKn$sieA}1g->WqcTFin38@V z!9*9Rdq5U-jeywoJGAZRHW*G2YUTuP9aOh>3=`+wLg*LxcMw}Jkg%S z2o1iM&71IrCPso6mWA^aK3?KD1>Nnac@u+NnL8tOWkp8nTUCJUkJ@t;tXD94?Om54~&naU|Gjr^zXN(MdC+5eYVwe zp5<*!A1DEb!HL(h-In8NTWlNQ9Bv)E?Gu)rN^MM`TGMh!|6BkWML&YFV3_h@cQ9o$ z8U&$!AKu&~dWyd69v+At`isY`Z?oO~QVIupy)Gf0yCE^a8mMJ88Z=b>@L^o_PIX(n zonAWR_Sl!>%+%rsMWo*FVI$)S^IpxiYtQ`9@S^0?{2M2eq|)hZ1VMRcXTY@nlKVmPkz-CYNvG5ND|%B_#aB-*RETsD&- zA=u&D*n|kzy2`&G8P%LFSu7utg;PgaaS!qDPn(IaHhxZqMK9-l|C{*h0uPJdNAsd5 zLDWxS(;mJ3RAV-k`uQm|d}X?$7yj`_fAV$x#yz#ueAv*K`8r|Yx7iNh+3#J4+X5^T z-s5$UGv>9Jel})8(}g=XBmr=rStGp3WHfJ;ge7o{brd?Y>TuFLsHe|~dNhAa*QL{n zi@ePyKdvaij6U1lufyaL#QH4|5l$zO%@403%-~}Q{chu`E-!V(w0(%MmTOsHoQPKn z;o385fy^)@wlWSQbvC)C{Ytwa7y79>;SDJJwZQ-(+R8n+$ooc)CR}7VuuZr|X`}8+ zMU5UXKdR2g6nQFjG&&(IwK9Uuc)?(%1wNxFqxP7=UTHmJW0Sh9 z4dYZ${}bTR<=}CEw&O2vNVwc9_(wUm#`X!^%dCqrMt2#Wz=2O2uWO^RANnw{GSFhB zmOky`py6p(>;%N37>&^7k=7d`1KJWsy+1j#Ipg&OYM;w&f{Qu&x@&!81bM;@t@)jV zIv~9c0%oYNHp$+*$D0c(d&eAKy8FZkak(@HjQg5|AWsh*sq3PMD!sxTaJln>SNE>Qt zDsYD!cdvbDYhCB%^FF>M{0G`r4{JPbp3OYqI3lE!tDJ-_ks76>#pGa28QXvrisf0> z`4}(=$dF4CEX8_j@5s}*lU9dI27c50F5o-k+EgK+4DcK@^IK6Oxh@975vg61{&C@;0T+CAU)0bY#u#Qz9y6s*O&IB2dWa!f%*FQs+SR6Y0?v!7%PO1Zv^p+hV~Gve7z`+bg8; zW7RplX?KuUGK?1dD8z&;Z zTRtn0*_GwqO_Wo}!pOtG_#vfa*qc{r&c~X0kV-vbUtyl}=M4l6^>!RwMh`Wcw#i1L zf*-NclK|e^KE7X8@%A5^GsR z)g=bGcX5nyUH1(+M%jVO_+W`9*B~%P+Sp-1dM+d=!6K~;-a=awV05{OAMh8jL3xkk z&8`>lI}G4Lp%>r_ zIudGZLPXjQo3daV31Fu3lvx@N18g$)p%!N_l z``pdyP8I7_SG^#eyDMU0psT62NmK0AZ2Z{4%piLP-}Er=HTW{4yY7AepMPfobj=go7*C=QAa;)V z(k}ju!Y%cygj@$ol48UGf=b#cnBzO;o=LKtJHxF}t0sRH+VbPPQ~GY_@4KqF;*h=e zvJ)(O;a)bdeeqJ2?ReckGB zy%Mo{fk9Qv$69NXb^R@0x+w{lM2oJrU`doIYLPyPio>%JkwhSd)q$w;*7t6%IDLuD zQ}90rK!shWW6uH+I_9H=66$Gsn;>{=(wi9zyFq^#`++>{fg4tLFSrSV@f?|6x^EYKSdKs2vmDUK|8tzYe=&{@7izupudkhO!$cTH!ERe^3qFdfG1nOE>7EaW;ln4$ z8SE*?x*e0n-XFXrE{GJ3DnFU9E_Qh&+tG?N z;nMW5^uiQAxIW3k1>s)}m`pqr`{T z)B&~g((Ep`{1xW5JHpNRa!SuJj3^FX@V#2NxvkHbocaGR>jh%>H-ZEM&&0pLt2#IL3*BM^)ZW zD~SpHj#El0^x`-PU8$o4Z?e`0K~xi z6Z_k566&CpMIA5n=Wt=)yssX0h*D$oMvmUZ{hMhyY*xEq@1ORvbH7b*TG*f;Xi^eB z{?49=nmIwiZQ?6=wN{__QO_$g_HaDO!`U?m!}@hgiBTf`W{_qK(VgEV^)N|N&kYM- z%JwG3Do$t<6E!_XN?D-P87|%?mop@n(ix#^#>}s7@?DqanQ|gaCTi;S1OB*t%{#=^ zbGqVwW48Mos%8H7PZ`-P4 zSsjopf^pX>^M4i{Bs(Gc4P<%*CeN@veT^|i@|aKm{oFj7RU#b-1K2HJ z@OR75w6=i3k{bI9o;aZPc(K{mE~Ch(ddYFw(~)QwTDqqxWkBqLR=XB;FgSi`CD~d4K)K@}}~qw7UJ-Ye?a-pV(I4W*+N-pUmiil{!D>rAD3h zHT+xpnSUiBcjZC1`us-SB&tW3hG#ezXZwMEpSV^}%>j5Z%6b^n@!^p`zYloe{Y{@B zcoumx7_m&@#}wGyA&j*{!uJ(@uWj>mG$I}M;+kFnKA=b&Ai$63?)(4Q3c1#g&eo8% zQ|MzM9x$%l03)Ue79ZA1vmhFFV&y^-erE)rG(C|o{@iCE+5>NhR8ZaHMkUvm_!+}- zOMK_#ND7 z7ku27rwwsGM4OS9@k@riUNJdVF=v$*HXP?G{_Okt5w6jlp#1@9+l(&;xx~2y# zeUMe~n70~$#)4Ify$fO8E?|7L{>96?m`UzcB_|h`HeUedr1=zvhg!SCaqa?lixbm& zS7_IlWbasGP}Nli_@LI$nd?)i2{tmIztBV}1{zW1vGaOs1fc&c*z8tj2p+};{a>xG zXEA_*V`ZI~r7tj-$Z)b1eWUA5xYttifyEb#f9=+YcuE1sKpC9dAW*(2L@n&#+kn^2 zfNur@Di?OLRrG(TpT2W@6E5C#KLl(BW!lR{d&mcS<~MMSHGIN_8N4O$rurgebj{nYxv_^W}uO&1KG-H}8-Sunn z#>sqmBX>D*$7E=3LK??)x@(GTR9Veb%O!vgAoqm#yItNfp&^aS-#yAUNA(x(5~w>a z%cmwDv3=YA94sEMK}e-UruF`XSDhyisc7h!AOySxE!Cw+>=MN=v4zl>MD=i5Kkz!2r&PCj^QX%Ut93m^o$|5`d@x6EmdbL)?7PV=2n?ygNl5o>1t147L6kSoid z1Z`cNK#Z`JmsEV|igoTy?Q~3b`y}ZSdKDL-p z4Wac<(d=pNsHDwt42XWCGb}TF1{JakQ#35{=eIbvKJ{ic>Y!xM+P@!=&fUx zwS?bI`8wHGzwsJjnH#YA*~S!m$P7gX*3unh-I9c+K42y+DbLm%-tmD|KD{Ch&P|ui zQzUemlzoAX>ujEc_w?eENyh=p{2p<-M{)nPB>)52GYfZ|y;M{skBEb)P*C7dWC7XEU;|#ti(ddl#M@o zKq#y%+Jq(NHtV^Dzf5UDyLxT!$#ViZa^zKS{B$57g?jiyN3f*5_P&j z6}AkK+7ratxf3j>_}Tzn@MxRJ=r}DDnCLc1WPwSQIn?fLUHvgN>*iX_fA&2`Fkdtz zoy#+CnGK<4{iv2^lo^4V=qy@$IT^PEE}fkT8{7m+B^Fe56p%+LN{=tuia=P&(7nZr z@p7%bHpIds4RMGJw{$?n0`R!n(R14i023$);Uk-)gz?wIEg}p00`!SI$t4{~kX24ym`^4VoZq6*?Re^ebt--db z1`jZZGPl&%fXW0~XBN;pfeu+c;-g0rLYc~gGDCnDOv7Y7xxFQiH;=_i3Vn=BgLz`d z?5$8YEt9jy0|wo6j_D|iK<2xP)sn>1`em6R8QqS?ZVK8RVv28vXAAO&rfe-&O?=t5 zpTrc!8`V8_pMc& ziU^&=lh&HY&5m(uWbp4Sv-GEh|6YfjMQ>l z-7$rk(~;5VfL9Cnk|uj#!>Nz9+Lyty0218zC~Lo3;8LP@W{itDgkZ5CrB&_K`^M6&UM z5x49yxIPMBz++#f-ZGkAM#(<1r?7or4EbA))*Sb5rHG4@{bNd-tD&c!`+EZu3rnQPsuIu7OOBV? zLk#}61>u#8rm<%1WEtZ7Wf@0|qmNs*6bV_#P7i7v4SELu_6s_-pKB-M#msSEx%ji3 z^ABjd6`#HR%e?*-s8D|9>l<9k(8YccF~iSB217D-dcbj5hB@IV`tCs>{;cb|^ilSy zuvEG71ZAi$BOXgreMyyYGa>7)YZ(;Jh=tp6nz}2=5qkP_0ML`)Wp}4bw0`rOr58Af z^Cddge?W(bWHEz(a+JJ$QYA}dDhVt!&^Ylsvne>CU&b1(dhrJ#g1)bupGcT&J=F?3 z67(t@vyw0>6NZ1rY@C73$<4LyIRSgOztsb|Fc2Q}Ic^eF1YN1t2tc>@p~TyCcdk2WV!eaa!nWn&p3F0`u;V+KD!2hc2FSORZSJ0*m%4>BA; z+XHlaXA8~%?;0WMA)}qXsc6}I>&idKlREMX`f(SbRWyH+0R68ut(pf+>_{dYryQmT zVC*$vBG=U6?%(%cd)5*C7!7oBVn0^r5P)tWND#TGPTsHcIAXr?+99vmzW?agF`O$b z2LxemB=}1A#J>_MJ!T-IRka=0DtY$l=DXN3Xp76khC*o)}lXF%-+}g%eyj;5< zlXHxUSI`$v@z5PSER^RtA~D!I6jZd5SGAgcr63iql`TIda$!?kKlNS)@QT&CJjmfN z2A3pK+z6vBVdzAiR|;acr=P~1$YKDIrk=OeRc5IbvD^uR1PP+vmLXPbr!XoW6ZRpi z3(ob!i}CHBsgQg0Hu+jrT^jfBUpLm}Kbuw@?`m4G>>&VdtmXBvdv~4oLDdCByuBc3 zYdrnof&y|u^wDp|90Ex1*OS`s_8T6BdQi z2=dkvbB4G^JZE0X8g|QNQbAvCOtE5{Q`6mK<3=t?`ZG4T;O%x-nNjYgE)qR&R@3eA znSyZUWC7nEZ}^A$E4=sinQh3{2SSg}#t$xmUGYHdEHB5_!*gUj8+6Nn@pL-1`h&~g zW(foV0Jr~&EVObq#2m*Mwxc|nW7Bp)Fsx#Br%w#lXG)MoQY&|P{67!)doy?iaU7F4 zPf3{6ZPNj;Ix+PRDpZEG5@HyI=&izTBS(ui4Bf^N_cw+eW5UFEEtTy%c1m?UhMY$4 zAdWduEvZeQ9k|~zO&gO^f-{!iJ&lwT<G8u~+_4-tAXv*`y)=E}$Sr#MI+jikz|M3K__J;t^=?Lo`2 zia3ePJ84+mVaesCP*F?39$>&nj)+o$HF%d#(v3?j!wNd;0QGRiL_y3P-N)^FFUR(` zd^JgmAEE1y8)K(e9a9T}o8Hb!1)dHw@O0SRe*aQ9<_a{{#2x+FWU!UjTay6JVhdhh zVnb9!I0D(0r`Ia8CA&bb>;E1%C2BowAjMv*`0%j=oBf`X=@pCuxi+#4UiL{D{MHI= zz+yPF0Ky(wGBmk_HxMILT#9Sin!S&h#ZqL@0h-H9_{in;-VUQzBZ5bHy z^<019CbMGG0Jv2d!Jk73F+{RQ>2{+jY-YYs7d(xSxBh9c^iiW*zqb{*EU>w?s=D3A zdY5A2)?49?W(RyG{Ns%#SdWN9j#8i4hwB`u)~bP2`_N$iV_xYRav89u6V}CyAumPz z1JiM)U8#v@-+4laOr-aH zZ@KC9Sq}QEE^EgJ$P_PrQU9pX(xC?fl$6^>{|##@|5r(Es}1bf21ez$cpUBQJJtM; zncD(p$c!XZykFK>+{llj_dzkr1Eyt$$Z#7KP^%>JBiDY85Y84vi%=Hf%$n%#-mIQt zLYX16ua$Dm8(`xPG5(OMZGk(-EOHr2;^irIh^XcP_6+I~SBi)xFrfW( zzqBd&v21}SS|eVspfN;K0%w7k+X#hmu3xr{9wX0EQU$}8&-zpEJF_C(>(TOA_yGI~ zno8C_XhEGezT6$Tv90A%NJgX05ufIQe3FU$+6u&vvvq!a?QLJZ+<#F3=Tou0#pD-R zkVSG*j#6)_N$T1i_Rwuj(xW4=@z+bOUA1fLI^8Y0{*tC+F>G}fdP@zYb*xQlRwNE;b*svhPT zd#m-<7Jp^m*zy*?ZwCwQ3Q-UGLOOIa;MTgDY%(3cm2ONV)+%N~K zm&ZbMq7ry>t~v--Gs4i61!Cf&K)$-Q<0{+A-d(Feu+6%k^@1)9(JZ$D+{H2!eiqC^P z>xaZNV}`Mfg7Fh6F4hw$VJ@yp#t;|>F`Je*xQE?Ohr+HY#}DJL^j7g|k?T!&oYwJcE`bOV^ML&6 zR4J_%iC{E|;^=Md8HJGn+O|BFL@Pakf@|DR+r8~J#Z@7>&Nf!djtQ>h$p&PGcB40* zdjWpc8*p;oHa2h8743s}j;+7y4&Kq$a#D!Ylr41uq;7+sfj`Z zw97!gr!q2YJD;2kd0@%wj_4N$S+`TVTH-2yN{sFHR8xAGU{fC<`ns@t`)6xF*!g84KaC- z)+PT?YHHkSq18mvuj~pI1spI5YcDjF?PF!I`30LyPjI8|dhc33()BJMQftp=?6eZ@ zPS#S^%gQ!g%Z$i3nnC5`Cj$ zfPM$3B$7{Q~&@?+;F5WR9KT?X(NnPx?wcb^q&RRLh7k!5)c5J5R$OEI*ny6vtY-V zx4pfc=Y4CoF$Fdn4u4g4tlTKhUoV66PjJ{`$q@4JpFFZf#2UkUVCCWCHdSLSesjli z8(7UafSJeuvtXL6GHq?e)=?B6EVua>TDn!ShDcjiT$bGX0nm&ezBm7W5%?$@e_^r2 zCJ58lFi`faNZa@XgMmt|wgQXHKX9gD92qZ59}h^=Tw>zIHr8Sc8x!?H=3-Ci4;VF2 z#mB@ny?&(uG9ql;*XyiVges3QPUC%twuz58X{Cn@MmM6oW3 z60trdi4srbW0EEx`8+T-fpU5HMnv&pa_)WfUcqH)toBgm#yEp5o zXNOqT72jF859Z^^x_c98r#inL1C^Yu1^}qvz%&}O_tjz#TLf9^h`&JiZ1T1KwrjO{ zNe_KFxj(+seWJa){J0`IK2H&LY;Y1GG{HIwHZcL!}md)c0kgS%p0$xkP8Hxk$z}wIMgy9BAdTLYf@Q&pCXAfjVm#j z`JSr4fr<^-irV?d#c$1JHp7ZuthuC-X~Kb-QEYgT{oK>g#J}4g;HhrXfU+)nE}31% z7L1>L_4WiONyHb#dj8fB<+3gjq$*^8Yw&~!^^6GXSC>3o`00bV@NKCS$*H~Ydfp`pk@r{ZJGAzqI1u{ zKUPl6hyb1&Y1u}w57&Ek%y`>wC*C3U9hq*jdGg*Q*2_G9wp$0MfkX%Pha>0?ofBoT z7kWwxbp{Tx{aX86wTY-lm{pBlL9NDxRzMkkeR z!?SDdPNyEs(tf!WFw6q(dXU$f@*vxVS>7$bgfPgj@Wt}Kpe>)F8?LPVWyX_@!^uBZ zDMJmcFF)UB-cIuJ;;V=AH<=z2Dh`CMaSaDy1Zr2y2AxFsm@p8Ij-)M~zwn4gWpcN& z*XxS%pC%||IhsA^Qj%x%I%Fq9U40YBq_Zf&3GO)F9#Ev)r*^`o*^mJB$h9H^c}ayLukov{TkGQ#KNdko4Y3`an64Hi1JzCM~+uVhCt3+H|=NV?#oud?T^{(dV;Z(|jT+T@;=9R#~k5Kmc#qRks>k#X=~aS?~9 z15*){MuoX8PECQ0DMS>QqO%(>+dbyM3*-Bx*S)035r(H)o4$fgJ3{EXA2>DfN&b;G zd$fkY+GVU4)gZpEG%B_Pt4sYbhIe8eSzV~bsw+A0$N5Y+ z6P9se+e>h4tqB}(fh({-2Ex1zr}8$?7`7>{?e+B_{(v(L*xeT)j(Z?5Dw}T`(i-*P zjP1w3E)|RSlstRSfdQ{1t?_KT%?$lB@1f1W^xhvUHd!}?)%_cH;%tx|q=L(%u;Shs zTY>`5HF0$+S3RfSWb zopccU7UsT2PG`j^;=&6Bj|p&3KZut`7u3-hb|soB$kGkbjnk189tHipYd8EMMmsm7 zpNgNzk{Pw?SS224T=gYHvsMwk2NXJjlI8a`{8}Q}_Sf!7$G`aO!Fll^15C+OYq^L9UR<496JdUlee?yvjK$ZFaBV_>0HXP6KcM@IYXa zCc81#$|wd&Y$5Ovu_hxXiwF8N?IFJn=?(!8R#kWKh&r--A5TmJ9v6FMm5Ah0zY>y2 zk*bwD-A#=v1whk^D{4vT@2I6#<4**-(?%OKw!Rs+lm$G@g+KxgFTwi42J{F?D@eHc zHs92T39KdCdP6O{-gbind?nmkA$_VdFlK8aY=u9e56T*m=@E~42wPBsyY3w?u)3Zc z8xzEC25$G$owj3K@>HvA1co--3ASm~1f>Ayn6!=5*zbY*Y*q?9VEu!)p|Us6i(;|z z1qE7}Ey@1jXe<9mni$1r@ZG@KW1^UX1(09npExw;Jo9SLnJvXyLi)MP!3senC z%5>(dmbRZLM30EG&rh{ds0u45-PhQ~_!F@UWa$erFAx~cwx5_twkC;hfwV?8%NNaz z!VOhiDPd)nfy8B~AzVDGGLBD*soqf$gZ(xGRd9o>rB#IgkFvLqiz)s8$Jg53ST}&*$^U?~mW(ddSRlnwaZcuj~1GzMik=bseo)L}0_vMELoxQo%=( zd+O|xBa?1_HGAtS?WCJ~^UoaC9MfDIl2NnkqYTP6XCR~P#g@xdP!kO>wONAOoo~Zt5g{}VB(40U*-WL0wBi+!rHQ%~c z9!P{X4zuP23*1I(a@Tp?%RtIgcnUW{@wTnk)Kh!e1}X=>OY&) zBr}$S7DN}njjX(T^+b<>z2I(KQs!Y{rRhB>B^ z5{-Zgh}39Gmwg9(4-)->JGrmJ=j@x74>(Wix+=nv=GjDk)YF?!s?kD59aXE5@;haf zRJOf}e!B5c-xFZj#S`@0X>8-L;=R|DKXEk=&KYr^qlg*;@)BL7WNkGTQjb4|o>ae< zMNpxK8hNLum|sUrxatU3?eLToOP<4;F3E_#GZ{!XJ|fz-&IqeF&r zP=c-?q2@9rocapB_WkeS=N5j|h@JT;{%hV6?A6{X;TkA~r{2}`^LwqM!Y{(vmMR}A zc(v%bGRP0%yVDRNQW)_D_0qtqbfhon=6YgH3GZGwvYdDP*Bu`^l22);3Us{=rEtlz z9lj$&4curX+B|WUM8T+yN_X(7(-tGgPYqvDXQLzG6O*-v6xsHrPE?VHaT>9>Occx~ zdI?*xu2g7iEDp*Ilk|&HB$NmRXBsQk_R5X=a`}{MvIM@l^@^ zL6ry~Z~r}{?~PD*KWFRHDF9uIe1405wCu=#MFGD%Jsv;WTo$rB1qe`R?6O31kJ-DGdGs zpjt^VI@%Nv`hp1EQnCe4f1dv`J$O6%r~{aJNJ)8Xm%J91eaf5J9gbNF@LE%>a)~0_TfI^7}#7?D3E9{pvI3ZI?{%`uv{ZJF8X-co_<+z(BS#UE4WrR zQ1#Wsd!LfVF8}4*U7l=Li(6-3f42~_JRJK|-m9=Pz(|5wIDF?Fzg@)=I^w4EMRWGF zNlh{8YuJE!C`}>#q6f-;RV3nQvE#)EDECG$ne&qOAhm{Spm@tA;A{uY(Ix-juU?6Q#!1qsP&GyP_r^I-CO8rwXp3|9CpXN9RP1!VRE>ey6}I==w_ zW`l<_ha#tom^5leE2BMMi=t>1nkg+cx(!L#p1_I@#9~r4qBBlD3-3@%GEt!s0wYqi zi!Onv-<1U*RY*D927wsGe$}U_R(=$8(=+*jc2GIr1&|$FRr(l`S1pncb4=(<9(+ zBNaXD%^FzH>^48l~2_516N|hKsMDb zGwb`d^>MCz2-i)7ppj%Id*?abf7%}|cxtl(-}+ZkDrhc{Y!dxV&-x=tQphR+8lTH9 z?BX4B7R_NYy|%td$6`(hE;%cV?ZtiCl1oqBAVX5t-;5yF_65NTet?J*Ou2-DR*>9z?dg#g7GTqH^aOfBpF_ughIYieevs%1Is|%W}Paz zo#G0F`sZtAWk+RBa%R6-%kQ(_{#Q|j&@NpJs~G*;Md*1rl6mL=kj^sUg3_VKFl8{K zmU{F5mKP(E{^7jPkGVs*vo`c{_@s6QWGU!Kce2eNzM*ye&j&zAX0CDkW&!;M<26DE zClkx=Zz%lZ&%W;>+tWC&`fhXvO}KQ5Pwk*(MuwC#)TI%Z=mLh5{sF>xx@fZ@Zx3D9 zNi2SNE1{poHx<%1$%ivz>i)^>GgBjN>GVa(ybGZHS9lm7vUz<*%WiPAWOK=J>%uZS;=OkR?o*@Ej^7bGtzx-0o{fNT?|7W*2Lr=Hfd(Il#8 zaC3v;sXl_+LWHzH&-@J!hk&TNm9k^i-v9(h0~rNyLwJZ7>Ud0FDONm0l*233=~`{N zV2?K0a%6_${10aKAO7iypr#Qch$wdW$wO6`P9C8<=1M%l6d!~K;~oiKN2XgG9#PT> z0xCr^uDO!ei>-iQg<%*5%_4i3GLY>>^gkT>9WL85li_oJ8kRj6WBZD8^wqa`L+01v zEN4A0OM(BSx$E{qp?LEfmN`uTJ+*Ywx}C!B!R3m=_qHE|{R-^#i-u*{lOp&hNA5@R z+iP6nfw_w;cL)=lqsOd5EQLE~S!SGGTTIz?2Z^uw52y@&(1U+|{!6OIE;#UlgJP^8 z&Ng`wJlm0UqVs7`5>gDIQ1m9)8bS6=6F0v|Jd5av zDbMRp895jnH%eF0|^H2?oDqHfi)-)E%|{n`eezhTJ*3^${Sia|c{ zSH$nC551{F2i`ejS?8$hHI4z{iGoY^gzcg{{#m)~5LGNM>-M!xCm6sKs{y>|H=TXMw7fM%uKV&+gNcgJJJq0ClIa zUDyc1xtTQRH2H`5XtTZnv;=b}?Hfg1>CyUR_5-6pV4wIlun08p|J{xEn1zrpq-XN& zS<*`nb;S~-$>r2%b6HIY$f(3f?UrXKpu;l_qG%u;-!u6**yG1{!^{#-v|mVl1~-tzJu)fN9IcLOif@U`&4635f;Nf z`E=;x9E3R?emV4!+s8G0Sme}SD1;jq(vYf1wiiS#{FOt^*k7=9PutA31EFVs9qOr` z?>;jq_>AfOplrtN_?{>;Q^ab{y_jd&G-}~Lq?4s*Lg>gscJGJ7h!q0-YRW!xjZO_k z4l=xo^wR1oY`xZiUp?3_dpr_GU1D;VoKw*53H3Fua=mv*)7*RU&D3TL; zd0QeKRNhMU6A_2}ndzoTKUdpufsIhVX)y&&a*M1hpo%H-lr50ZgXZ5aLVrpg{0R}G z#-j3#Oa>?_AE?>~Bp>-ka_izNwM1jM?D$6aF82=6qDTJg{%0&j8F83A8OpfVclYEY zW0bEN^XzlQvemCcjM&3+vW>LRRbBSKd)jZa-uXCp8(#dsN*Z0>rXl1r`ypjy{D;;nivBtYTE8I?4B`f;B>&|2}97I&h?k>6ty zc4}yj@bpvQ$CYli$e?Wl#Q*V^rt*gFRK*-@HvHnEtKdct=xl0BEy*N{fZgWGhccH? z-n;?gLZ$=Wy9jPaUhqhtU!6(oKO=lXzpE=+a$C!}(ldRo@0d#-`f2z{i6jC)#E zu;^bW4;3yOD&NZPeeaAvplx@U{?|GSh?Q?D5h{1K2Z;seOhKu^kVaYY$g83ca$RY+ zd?>r(uT%U-?Ba3Mhs(lr(9*0pO-Z#iP=(7#TGQHRWw_!t(NX8Y8!?6QO%Vx)$W9er zq9Rp}Jkm{&a!T?h!a1&GXmbFlJLylF%k0(r?x^&AO|OmJ(Hh|FBQc&C02J1GV=Fi5 zH^V5F4bl5cX?|~%LOFu=&j(2p2)m!{H%7c|K~^N|`RwB;dMOPMc5ILuTw$aj!bx0vAxAq&14PHKHs+_4_==mnn}A`>XkN`1RWFS$5Lj4EK?fBgUyWrqDSv zjmz5^g_=GCxz?~6SckjBXn~*A+?v+54dom%tov@dLq3OmjRhLcgs-C>M3}DeCVS&4 za8EyVXHdWS6Mb!kGW%DV{B{RL+l9pbXD+VY^PNBsEEd#zC-lIl2U1Xmi$y?PS=)z= zpn~iTZOGa_i+hjQLmeGy@q6_}{sg{w@J752atT%=oAU~6?|&Dy?5nSN>eN?PJJKZ; z#SlMB9?`$^dQflJYZh~2Pl(L^j_SAWt9+H_o0!{o;EKN}vWGB!`3Z>AFQy&X6*_WSdId!udYD;zZ?jfvo zME66%42}}?auPtt#Q@n+O(t!)q1uC*%3B9dL#-zn>xo>rLZTxzpPMekP{u${F2GYz z6BSP_r@okIa2X)`5m8T|c_5_)!T=*YQh5)C0Ad&*-hYL3qYug#8n@gE$yLn3=++I` z$x%5EFK(^8*36So^7(opL zQ@SFC|1ax65;-!gfnM-JU73=L{w&(m z0x2rX9ivfB*vQDgoigUI2mQve35`qKF_td0XV{FH?BAAcr+@QZR{+`S7kBa zMSpaZIyZdG4eh-OLLkb#mu|?`;*d4A&JGFXA8WfZ-(coW#EP{@2ZL;wk?Ib%zP;eE z>o0l$MS71W4SnWFIv|1h^x(FoBURsN;S zO4n`D4;68(A|MaYlWIdS>9_NjyR}yVo$2r>`TpwRy&fIQqMH7z*-Daa@{0&Q_+Q=w zEMEA7-_Bp}D(`n8A%M;jb^LOoMH0OA5=*rx8Sp2l>2m6yx*00p|M>|kVB2rmbyFRo zycpVLHgJdIy#We4RRNu%a`k8nm2CVCBVSyZs1%|mM4L&HFJ*KCS@RI7oe(@-zSpCD z+2v(=HFEN*cKDqgrR2J_3Y5+<)e{ifIr$RmfCjjb?kdmkl#p&?zjrBMrekKH@my(1 zK42#!rYHdbLVNb+|6I$1*Ojs?L`t5tU;9cZ)^@DkJ+iX>JVGM{ouur8R6|c&rx%`` zD{fo;3j2DK_dM?Wg0FNI8-7g@y-et@&fCLSI<#mfWBu&+SR58K^mKd_gZ}3=2QO{I zdFol2$4TGmqNnTNh9nVzn!hS_8b-9bS*uBR>0GE_C4Ovfx}>HqGaAi0^sq%6AR+!Zv*!`d(v9K`zZD54j}xm*i7r$_^blWsGJw(ct;E5u%1)1DiZ0v{UZr{B+5e)#8NW4QpJXW*$f7ASn=D}Xbr=JMwdTb|HrS2IXS z@;a4rgMkB6FX}GTUKH;I5(3pl&~)i{Sarwwk}{1Keh zTr{QCln%tDCNPMK@$_{_TV2RW0aWO}9DvXZyq{xAe#>x`7u8`kaZLJF^Q-AK+CP@L z4Rod>ULABIa|2<&^%w5cf@j{MKa)1RN6#jkdowOXGtRgOS;w)Oy5iG{hMyCwv6M-a zb{xGeaqCv|WNlj)gRbz8nuEA1b+cSo@qR^zZFwX8Vnq$GwQ#!dEDECc)?wICHZZmj zFl8Jy(d8A{^C?0oS(~D6_`sM2T!MW}OO9gQHbj)6MvEI}lCvp}gUrikzEnCFUe|V{ zrfd;81VURB<(PiUvML?x9`(fj?3MRYQ(s#VXaJ=>qyFZ`Iqwf4qdOw!vkW$Q_3xIA ztPnC(vh!K|ze%dGKiz{D*jV}a3Cogf2N+@yG*geQBQ`mj~2FF38eG3=%-{zsIgE_*XBTWc#=gDE(sC%PsOro`|K zYF9N5+x9vM&Ae}OmvE?*GY3QZ{3fjNR`-Q&ZK!yIsf+3&$O9VzcM|@F*uQs1?0j@* zw11ll*8S;*mVv^B^X1Kv%9=w}G*2yYb-^B>{Hp_Qm9fY|fpsNgqQk(@bzRL^yXxR)8xy%oqLvJxwMEJZ)!d^eh#uTVU+dXr ze60zP4!7k8KR3C``M#eYRG{T_Kt9W}jLUGm-#O|$e94uRK z=D%J5KZB-b;GZi01FT|(WD}@08Gqe3&p_GVRky{#Sd1_l;}jSvOR5ZrHrIt6;Pixo zL@Uz0s5Dp1=DP!o&Es9jgn`nd_q15Vt}>&E=q0hQ@74*G6>woY9oQRwtOM%spF|*8 zNd0F~reU^V&&c>KFHO;`D+_e@cO_FCLZLlCSrH|)+=vWmG!>cVswuNCWh3}Dk4V=7 zUQ&H-Ejok-_p`_0V;0W(_Wu5YL zhx)72OeAR0(TRsFjmHm!G}b;vxHIAVpiUFBcEyx}({+Tq$xt!@OYc3kRg_y z$}CVdUYqNY(^-*3Q4+h5Z>-+O4IQ%H^!KjgqTN6JoKznad9m*l8b%7090^BEr@#@- zl&llNU8tv!(7;mL>ivi-R2j9Oc8Q9cJF67_iCjT09v!bHH&;+m=p`^(TctDL>F_Kl zn9^qH*@_CFD2;*y1nEq7Cw?0pt5H_%njk70g-z%_-w%Zi8?pnVpi84e3{GDvnF-JM zGR!x8+)(dy+(*GtNU;}Gl7jFkr>`>XAT$@jp+(besQs|PM7J?{+TEWit;D&-ah4D5 zNC{o6A^MAdz;}`#=5H^N%3)7wbE@vNK(|*4{h1(3bZN@M9lF{51FE&I^p5Mi!;n4_ z3T9s6+#5XI$01YL`pQ;ih)9MJ{Kb6Qf5l*SHS%n1mn`AB{D9sNKi-%v>nRlSlA3|27Kms@abx*XZW6ZN~98*K+Jw! zNp<<$h)`nxXRr=^wG@cr?&#yq&4Q?B^0*gpQ_dNO?;Co^shL^6MeBSutQIIt^3LF* zVH72lI~kt_Q_ngom5d)RfVYyH`+!3O%FsOzQ9MIiD0wQ9>N)N0Tv7M7`VfPw=9 zRYEV~^@$RRv#Kj3qkV(j00SGl1b&pPwb?=^TH>X4D$ZrD^$G|(ptk^qTZt7qj+S2I z9lA@G)P2O^77@0E*0^{(W3J)ZRbtcqwW~5#uAH2AAwY8{4^O7h@{7jmjh`Lh!$HDRHRi#I#mq#?^T6g0zvNwV|S^=5VQkkdz?>ci8_kbAroM z8F?7aMjIsk{_0$?b)F3*J;~=M4|jI#CLMiEULNsr*RGExIiLql_E zO|M);=_gMud%tK$!!{}#ZlDM@370w+L(9YoqGwuveyPc-x23~(irK|Tv7}hiIj81u z9DE(-b;)U0tQJ$Tloh$>#h;h0$ff^|mzU7I{6B{h-@YAAu1vp7Ya8n+E)cbo;RTXH z_N@|COFN6QqDt%S$a``gnJSA=WlJ4UD&ckB^($n&V>)T~9UQt*?D=>#VpB~+@dIL< zcs9Q~uX{FGdG&tw%=SF7T*BGkta1-oF#8 z!jHN#_}gL2Y`(9_O40OnkH=2NN}RtM2(0>MC_(-GJJ(4X{r3Ir3nNzsmXZB_DCX3QOMh3NO^|12wQ{oV z$t_@jT52=3`E^Oo`^XPq_5OhQ-^x?2{W~+bbawb+N7U!h`Mn^{srIUt!^kp{F(rZ; zS?om1n>FE7zwWa8PFRJO%mRkQvrFHZ zt75JIL=32eE>imxN53*xu9XukSKs75>9ASOY?D)PrxmIxZMN^-Q z0Cq_yCwa}rMQEz7J1lf&_Y1R*4~}Dxhm|91IszxD=HV^v^4}3DQ1f8etW9Nv7ctw% z{AY}X9>=Xs`j1r|iGx#}ZRyD0Mq&o_&LaV38sES;v>Gd8SPT!$-CS%$}L(>p79j*Be)%Zb!%V z&bwfq!sQ+SE1^%mZ5*rGd2AET!E=>=E?=*k)(6_HM@OSEt{R7YkS-W7ObBS;%He2P zwC18bqa9YOHDak&xY|P}|Doh3yov}^`lOKOf_1Yr2MLrKw(s^XM`WFwV-~n^lKqZl zmtZ^#*Xivx!~pXJE5w>%WTo=5);X+l*v9se?DOvGO@A)|3vF4#`|@IrMNIQy2HgyvKBT zbO&B-s&1q5`5_UdEFRf$$lOPHd$Jw!!Y642gzlkFHkjY7=TlUje%q)8q|yh{<_itj zCv5LHQ6&hLf#u0hipigO!{l$CmK0DO_veu4A)&24|3uI2ng-OL*zplu8XxHKlZB0b=dZkBX*S7I_ z5LfB8es=g=_T%RW(bmBn&a>sdMS?3;VMp`RRlPor2I=$Ys<8fruBV#aVpyal6`uJD>4wd|tKYoxHL}qI_b{$OrL|9nCu4M@(kVz9_wRja-h|ue_zj$t zwvTip&rDq3#kO}{N;ONUY4$%ZFqW_1zNyUP0LzroF-H=anQ$)o$_uy$V4a9T`j-bt z2z8rAUZg&zXO~9foaB1BHxUvAah+7;8F=C+xzJN;|BS2*u2=zod}W0GF+mXg)ffF z4hkk3EQ-b&R{ZqD^ryZYE6e*1_Qy+pYP`Y_#N?ZF40WWrzp!N7u#5X(9%AL={>u>? z&NTf_5_~Ukb_B|g6%xIH%_j%>fU>g>J}Oomi_SAy$gM!E82 zM8M?Z-AmSTNaD8n`NWQlV0M#q7nvljqy@J1uL7?|(2MN#)=zw_Q@oUDByU-JYfOlg(E z(Lp2H!GV({bFPDJ3Mn6Jy&Gf>maA4i&`U0F!JWYE1L5ff+Ue{%Y&qvGB-LAp@y^KZ-of(ouM zs>!^V`1F%*>vDFVcs+#{3bv(Z|u(R)y`xF;ztbenpxKE8!qPZ6SPc39Qa*$Fkq5?u!6KG308wf?C#1LW)ZY z5d$xyjQXBJKvblbfxP=MtBp!EIQfg*scUE_3%*9C!9^xG`_bTE{qh(HT}K*oY9(YZ ztRTB#CEBFfRY7&bSI6Af`jk#!2T;3-=fEx83j9ZnnEiKAEowxG#cY>3m!OcBzY=-! z<3qD~7w0dDT=0`j9X=C% zjE5;jkpt=%(^e;!WQZ9ju4jw)YMvZQdNHdE$&v1F4s#wkzqZbS;tA@k1>NXwx%5Bm z(3ME_NL&Wqm1aVA(N&Y}`@7gE~f-m%cFdIqffWCK#HX{w(P=~OuMZA4x_=rivJ zRUvTK%|bSLk;D3Cr5oN-5nz1x7g9TfVzn`5I>!Ru1PjUy!BEkej{1yPxetT&HH(n!- zdd1WE?%Ni@B}uk;;1=;~XVQ7ZR~{xvF~25#l+WPz`*4+-{_8?5w-uzl^8xf;K$ydx zp@d@gA~@wn7*7j*{{%(2gzzX0EG!#3Ih0?_CeT=FHb4#Fm`==I8>698%f>Ej34yC*gn z+%>GusV!(QRcmMxaeMW05#ULV7msT}t>$XEBKRJr|E^CGKozA_Cqj5XSQ3K;1Y-B@ zu~rx&SV#@$*RJDkm8zOpy@3YJ{roNDBYQnvx&x23)O&`ob&Fu719HP!x=+Djh$n~y z-FR>Ki8geLL9XK#NFA6EG$}Asn>sHRQvC!-ujn#5)4`_e*Pn6y#Qp_vxe9kg z45imS=0YGsY1bbIjFw2Cl=Egw| zqMH;KgfWmZ#R=dWWIEh{_ETQSBSu;hX$uI2G7!Cn5^+g#{B6_5N=-Mwbe~84q=Q!d z7jw=%)%rDg4t-`87lR1ad@4&DsIP37`_8#ICk5bPkQ)7WJOsy^=IbNOT~1NeU>^MK zv3~NgzI2eC4-b$dGCBM5YSAjPy;P;zXI@n&scx?$_)lj_J*{$ z@e@n6I2rl;3bza~CO8g=tWqM8xdKK4G#b$O7f|eUH_NM4c~hE>*>OmwS(^T|ScSKQ zS6kQ7_hn-1>4*vsi&;hn3Vq7u8yx!OJI+qH{q~+VQxLTS>T^9h()Q&87eI|@(hs#bKze&|g8rnSFBbK2*2o-mgUQrX ziYuoa2}j89)3#gEOOycJKZdC?L{KFr$F%e8f1uBuvCNSRieDYdB`u)jS#R*s2>;K6ixY?RDW50dxxUW$ z;M+5UNW9fM=-?dcxJF*`EpVj#Hi{#cT(P{k`V+pGI@G!V_d&dfuGh>?yH@JGyuK2C z1R@CPC6(INRVEWHnjXOo)9zPZ_2H}?Y=i=01;sd@Gv#CiT z98q*xNb?9&lhyBQj%}oOs6hDz2}8~CS7=MPIjzWLYS8ww_-~(_#q6||Iez;}*ZR%# zUK-@hq5I9))c5_Q4h|{$1V~to-Ja69Zw(pRY=qcX!9xt5CqV}JzMy!UgCb86yyL!mnP-~1GmIbY~a+CPGn`*aV_f4?M}dN;x) zvDN*)a~&6Ay@9*pGi8E`YbFNMxA6gj00(>i%e~vNvD!yxcvD41_}2qI z$$kx`tHoXHw09xJNW6IMLTrpR2ABOPRHam=u>c$^eOEENnN3RZXnm3g(cs*AU78o2 zZyAjBG;_d4k$ozKDj<@vY|v*Eo#g(~0o>aq62oFCeiYm{_S8(uj+#vlC2*BI5nR$O zh_1@>kRmFiO)j{Owi60i@5-f&n@Z4+AO%Ip<&>t@qm%MjzHQ=}W9!|$FTuNam`wIi zP|*dKs7r7Z6>q)-1gkd|8*7m1paRlkgZ7c71|^D12!9f&0tP9ttc(Lt2ju`7$4|UH z!I*t^S9D40P&iS2R}Se&C&ykrGK1Cbl!6;P6`D7Gjj`azZK?c2UvYJo2J&mi3$1?C z9-F$>)71VkJGlWd&>k+RQFv%1gWJM#AOiX7N!MV-T;zr>8?2d1gf9(Ca;8!>SdtBu zDyzb!f=WomAv-ZaWjL7K+IP<8H&wlXDgPLukf!Mxjc8(if@mdy->=&D?AzA(&4?jR zoMz>Q_;tIaN%G>puTMk`feh)BIR5NZVUFJJR8T>fw=Pr5b=9QErti=}*P`^)BaD`?FQ1@lw%39nKmR8g$DV=0hGbSQig=a?xe?A-~bug)>O$s7u0#) zAYDm&w8xlH{?Eu*{Jmrk08xCI9_r`=tAj@TmGyJ2Q^P-h$HT`T6+QZQFEQ>Z;r9>V zpsCn6MsCdxepBE0lz2$Uc9XsttNEAs<)&R6746Xby(N50%rhSCT0kaU&bz{^XW{AO zRh6WjHgk#|F$fKSYHnT!`DKV%XwZ4cheOI8A@0SRNBT!`DWFb%X~2%8Yd!egm0INJYyubmr^ks*ag4BEHL@wc1JPBwj)@XByz@~94rwWzwh4WjW<#YcJ zladAuMv)hAAJ|3GWfCfw$~k!f=&eq)7*SNoP8a)Hw%n^fd*}F;eE5}kZ;Q0$DO6c- zQ*OS5_~aMOGM2iUm0-=qqYj@!m=J%89#=)T zh~IrlHC!^7EXlH=*BaJzI+1H=LDCJ==bir$UlgTE<61OUx?f2utT@y%*F7?!@H9Ii zkfWa^`0bhvT#FTqd%6hj`_6mmS48&@coR)nMz`o6vrmE4C*d}*QX1Cj6ecIcKH|={ zb-MZ3kD0<0NkM%Ct*A8?#aw!&jv&QrkQf%BTw?YuDThyNI9ZULO(b_gL@s&8Q>m#Z z&%U?P$Bvfg_FU^{i0r69h^z$p++|tTY$Gmu>x9!9pB#LkM01tDj8a(7`<(!o^1BY02%RSA}P z;`mOHI0X7;*0=5Fo1_-smpYQ;=wNq^x7CBfn-E}wL0JOUnW9RPs`Pt@ZY+Y;q7ag! zeaP#F0aPPqM}VpO;mR^Xn#gH!tY?w!o9IPJ94#eH2$30BDcR%=g5D;#YeywVwf>gF zo;V=+seZ|G3Rx3Un+>+$&N1cW;96O#!dSXdJ#44ik#+>o|KLf7p)NX%Q=rWq9Vn3w z3a7b5o!qmWif4Vwlr%Z03?8GDh%+8x7q`1;&8gs8Bbi^0#>Gt^4NrrT$X@$PP_FmI z@o6G=xKRV#*xf;M><>4ZbA_<3w~E&pnuqfZ8h!M^YJ^Nw{(YBxqNSUYZ|41WSG z>^!}l`G~V3_()6zq9{WQmT<|!S~P-cj&fwaK{#jjaJ#8-6i16F5I?cjZ(I>I6|Pe? zzxxO%4yr&Zq~f|pizov%&!`4OPqF~Vkw7x^)LQZ@l%Q7w@ClGkR^rCd937x!o?OSbiLYbUa+hf5Xo5@sd z;DI~DEcSeta$4}kYQ^aO=>=F|qx@i`-69H|JnIG3jCxuNey?^Tjth1HUibj{3;68M zFJEti-perDn_Lypm97meMfMNhAT?;IpmkxE#zu>U98P{dMP@L}uwH<0b<{k7Q zoi^RFUQFeWET(Qzn;AxQ_TC2^XM6hm?bd4U1l-|`#IZgi z@0}whpS#^B0^G&>iQU8**7?C?WQ2DDXV*&Fv2{H&Vcq;ECuxlt_6U+CtcQ`7kOeer z802l=!rsm1qUqc&Ar|Zh+hXMG?8&flIjqEOWVP z$fx<}gMCK8X&itiCrdomU*|v@*Z?4TD5TZGqYSAA~G^~`xw9|(^21y_G2T$9v6 zjT2NK0Nb0{j*Si$@Aa@*u|%&)@1iq$OJ#EZqgA2p`6^oI2JO;5L8sr*y*^|IuU0G# zw%~s-Bo8dWHKi(z)@BivC+W;Q0faWmSXffvuWZ<4AS_`**a;UbxLf{Dn(BmtFe$$ zdsaWC8WDgtr`S5oq2_IP>#8>UY359u!E$m1zZ~QaN(g6nMEhE4*!nMGC6Fe^o4?!m zgZn|c)UcqVSkguBV!OCk=8Ap)8~MXZp3c-~8o)RH9ra@#5Ps6cF2rT&Vex8NdHHgX z4vdaUo8e_~YU7st$@UTiM?)ib*i+&A{_^)I2hXp#q-j{(GC{u*!HqoF0Rf-o}u;b>JrmEPA5XwtyFOU;R7c4iFg7c{&s6ZX;0wPP3 z+SW*qp78?lKGqPnh%6_`S=1dbfaz(g_IrmrZuY43e~MO^NZ||>yK|vlzZN*?b%N3{ z1DA~6rpCG~)-I=`u(js4@opFC$j1P#8|j}|;)ge^9cY^dbhjFZOk>+q`dEV8c50zc zQ7s0_3o-_H!0pM8KBH-)jMx=gNN$OMgNbkv?`QI0%SSol-^N09VGJ@@;-hQPVquzL zx}bZ%M#<>L!-A+XCUJ_GO)CF-xsG~oxM}%@{`D=D9F;O-yiRAt7sHM8^Ia_NApSDx zwb>48`c~cia{R7CZpX6$rzzbQ&MM#NJkhWxI8=qxWN3(eetp>5$Ooi-<(Yc0cXpSlro#BHr*bP0OfFEJc1RZ>9sKZ*gfzPdE=yD{uy~m| zWO6<;p6c{(`mxIj_j;#oC%ew&&S5DIU~NP^Cq@CW!{8`x8RvA8dV*Wb}HK-et^ zp@3(Emh>&zo1IZmMXm5!X7Nl3O^6*W-hqQa9YOSY4RZ)L# z1PI9%yaAA=m<)~Aj@wH80(R8{gz;-|%zR^N%Mn}4$}g!4)x(U>RRrT#ID|NU;(+%7 ze6}8I6c*8k1aXjPJM}G^O^byL#9D-(#Zl4M|C3_ZKgO|L?oj)J1mV03zlidd7%HXL z;#Dba*j}9e(JY!LXoPdl=PvLp7T z{3A};?6x%andFWSa)mUkc`S3v_AS&$W;781UCsr098e{bc5pg*j)1Yc%&owbHf5;;PxLOUpqlLW}857Y@#O z4s=^4vrIm#C6CWJv+q@i^2}l&!~`>uE8oNzPIZUwQ(h|Ckk%Z-sL0nL!&gBE26;ly zsl<1XubVjpO}jMEAvPHMtED?y-o_#dZ>pHj?ldr1x(7CEN*|yeB!3XR(xz}WjnK{+ zH|Dor)(RPt_?_b$FqiXtZ3BkR+qgn>-JS|wU%%9QsEgWh`|jM2b({khhG?gZyizt3 z)B<*XBPJ55ix4&`t5)?+v<~Pk&C*o)iwgd5^E?+N%;G2>Ul zpwOGG?6i@mDWN&6&Sl_dE`khj+PZ57&m)K6+=BJ4Pt01VAS#^yEXl7lVQDMweukK zoP%{kC1bH36wOrQPv!z2%IMWd6J*}-MvD?zZPm+^?P^~B)Ew2!bQ#q1APowfy zKnUW7%!j(tOr7*Bbd#j5>_D zUH2&$H%AGTkGMgKFZ-bo8u4Gdmz5V4U~7d-Jp#?J~a(SU4}* zKK_~+zjea=!voC~VN0z7=XEa$4V=8;gAE}?`wl?rgI0jgiK&nj9Ahh_k5oj4-3vB$ zG72rP5_w2NGPwi>Ftgywp4N7GAiSDVdA3tYL{-Rl7wCMdjdl%?g%nc{`7Q!_h(mD5 z*JqjgS@Qs7eW+bPslIks)QuUN<)>gP=qL9J&JQHy?ZZp!y5RlV0vR)KkWJTot5H(mIw zn{Kn#BnK;`F$+KQ_!W>~H@W$k+Fb3SC$Gv;PgSeR$5s*xXF>FV$9YLW@>n`tw^zFW zr|)rkbe{KJ<4|%)jt7CE(5j3St{dfdaV+&XNRT-0&vWbVCk!u`SSbyhc{5e^oW7Yk zVYc7&>2=wb4$~bffEKCKf0c~Lv+!nS8$d|{(E|#~j5ZI}`zt&^1#tT8({X^kSqBtd z9#WVAtFO?oNse4HvwbwQK6WXfIw1orqfRt{G(0Llw1a}$fo!>f9lYdA-RLlxNbOtm z+QHP}u=p^<$0ajj|18eN;m^Ea^&Ida0{xw2z{d#Do-7PGxl^G<3=P~OaXUF+b&7b)_0j7;6Prv zu#b*W|F6AokB4gO{|}YQDMBdsBSl1VBG(a}luO7dq)fRqbt08C$z^wwP$)tdCP|Jb zxi`pVl>2p5%H1$7Q*MJ{%w^Bs-?iy{pY!|U_t)>g=l8UFsn=`SGqcyM{aK&S`?A(U zn4!jqh@DLcDjwCFw`9P>J0M23IZL0TUmxVT4c}ZVsE6yh;LI*B$^`oK(QQHNNHpvD zx>UjQl=sRj5C870@kC8iBOzYm*jS;ssT{GQ>Ee}&Z3A-zB^I~6{)9PPy|PpJtBWy< zNCH6L=25CSb&mK}yjF=h$_!{m(;1A-mA3%N#w>(Jxx;8V9F9KXj`*v_AX z`e(a_0JLvu(3Gi^ygdk;{e~{i2B#&n zk((<}N!y{*EoRbNzgfA!K}vO-Z;Seo2suf(i~!9cl$JmCS6DLc{HTL~z#=iAL==jN z1UOI(gH=ZInh_@SxNuBJL?ari&uLaeY-Mo2qC@Bec3qFv~RFZm!1{YRT}US4t{WkAXUp8&}v zMw9gms$(8wXeR(U!vKYaKh}1~>`u8?%B-58NO1!BNrg>e|DntxN1;XiFm#?Gex~a) zm4{DVP+O#cg2lg>LKg&FrBaPldg?Zlsk5R1wQVLki)r%$qdId)J?J}S?&7dxxv$4I zaSdEIjsn5a4m|C3iEO}{QLLKz@{l<1tej3 zBf{$b<2jgCK_g5afvRf&c7dzlP$DSI$RjY7fgVPh&SPb&J6l)aZhioyB0(fH6o@Yo z5Byn`fJWM*GOz@zu?6zOG$3iF0-!PAN6EDjbPno*VF=*Ic-R>x%2h*?X+{Rg5{83X znvvTTt7AVi1o;6mIh|!(u*fNil7-YnLsUjS$lb041Fh@TOsBq; zUoNRIQKi<^c54YM$B6e(7xx%<@lpI76{0d@uqjAxIP9`=Wt$QtcwF2|De^e%xmZnMei_@1RldrWB?lydsmOB^2_KMFdFsa zK3_XicPHXjaBBdRAgy4*$SZ9SN&typBFHu{j8?)~j_4)>O#9`fjVKDOE^ctB zpI5ZGCaE8%D}SpG;J?A^l>S{?jw;tkj43ASCoVIB+y2~vR++b$`1XL)V^i5Nl%;y9 z43;-p5eRgsw=0E$ULcta+Q=%}6#8MjkQ<@bOqkhTce5|rm|w97XWu@tXosu^*im=0 z+5Ku?eRii*guqa;PNa4)!y&CGC+~Kwus7-aS*vv|+CM1UU#&D;4mIaWKC{f(yfWEPYYvsQPuf2FFS<&rCzCMtxA_Q{Ru4V*5TJo z3UYx{>Pu{>rr(tyXr6NBLRj`g3iW#c@b+m>t_s})k@OHT+6>mVQ+G$)NutUMu!H;*TQ#;zy+Tr>phjd`<7`y~`MM29XqN8Gd^i zq%i+it(+!KbVcPy4OENpfOWQaK3JhTxbFd_Vj{JKl>b%b7@lUdVjO=C?(2n z5;+=yF!EAQrtP!%OYPnxOZ|FjmD^#flHRS8pYU_GY+1xBy;LYtt=shH_#8p^@!7c~ zrnXx>kb<$j&|o-J#|GW_!3<#<0aZldfH6u0Jkl&BkurmNfZ}(9NPr_R2}u+CQm-Nl z)>JC7PPrRjq`jneT`tR-Wv_v%7(<%hO?SNZv(PQavCO08Zp9LhTQ9t`$Bn$VUiAM# ztJC7zBJEl8{`@mj_eQOmG&k|bXacGt=3E~q#sfJIZIbEU-#&f(43s3UiR=X5*@pm~ zBg##vjM5j6r#O8qqlxsDhNcz7D^|oWPugPgKAh*$O#kI{dHB>FUuR3eQ{!Zm28GQ} zSv4}sDA1ttmJoGhl2Hg9MTX34wi5W~gPXp%%-~!F{56Bf)T9^v$dq)NP`u zS8r!wp9vT`(Kno2;!RTvXQUbp{wX)@R`vyjTdiOO+8}q2@d9A;izdU&f2^$_Kx_&K z1PBEXo?b~?B4@pR2pb3~A1b#?p;}WQqeMi8MoB;)|Dz2(<^xM{F=)i@TXQt5Wr&SZ zM$vuQ#^Vz<+v)wv{UlzQm+;T~LocuNzCH_+J z`6z8-kmfNo^T~3>hkZ9PEgXyejKZTH7j2F|Yqjl6K%bd{^+OuZG<$c>(4!22bt^{ z`R@OiG63;1e>pYr86Bk-K;5{|^K2YejmDr~H-?J7e<_}Zl-1LC=A`c3fLL}RKOCON z3F;FM4FqYZbyIv6KUmA#nDNn4zV666OdVK&vz6sM6P%PAfyml}#1}C2<4SD|W~YV# zVdza63@gCMaUJ(6fSc1Dyn)_r!g6-8Kpa~}>ROjmJpSR;p(;sL2aX@Xrc#g>u|}c~G2o}4%os_(f9(RO>sf`V6_v-4K4KFtL?yM8K=!_0+Lq>RS3olY zW0gF?C-zeco>vL9gybTQ?Uh#OS+~~mj%6#ftBSMJ%8&BVTHbR#>Cn1tepX4*DD^tB z?0n+x52UyjwBJoi;gDqW=xh4MxmGN{2TLQcKk-Ntc;_yT8N?36*;JyjUriFOQ;`n^qY+r!2cajt!!D8Id z59M|-pQlI4PNTlc)wuy#w#9VaI?5NMp;I!fW9U$0(1^pc0BDp+`S2a@K=9#oidPMPKJAs^o(VC{@Y-L^dZ zIi#GEzWabKK%r(mC{potPnx}Cpe@nSwzEX8XaUBZ0fi)Mt*5B3`g^^sW#5GB7N9C3 z%Z}pF7+9(ieawT#aKnqaEhsm(#K8mo4G#s|%MWl4&a}IHww9*=M9Qp_4=2{kY+R#p zF>O{&Sl_}bd0Y3H4GWsS^I4|r@_^;?Z9tBCKnQNmA~+yL(&LfqXJ5KDsiF9db*X{ z@;(5wE(2X+Cg*&;LM>iC`lpQu1Fdz@*_ZjF_q8xY4kQ~ouVXO6-QFZJ=3rOLp`s`5 zV6jWnPJjeTTv-6W-GlO!8``V|;^!k5NDnDo@zu#-^`tU_ywMmxokb^c4YOxgAMf6> zW`*MwWg)#Id9MeZi(7S^tEA8HvaHsr2R^fdb4a7qEo}Z8=$l0< zN|JHK#Xw)HamB?%=aJ-m&17^ z$0CF-0nu1sQi%iEEj<{Zr2y0qq|_>klcphYi4EgOz)%%!8buI3Zp2Ig`J!;BzTOD% zd(-*0J;zAR1deZ`wLZ#55jEZYT?QkpN=lvSs`aH^wLjR zuDRau11+W2tUzTfzK6QrzVT-7w0)zsr$gsnLQYT(Y0u1&(!PlnlG%@VTn6J( zD|Lj*s_G=nlz!)LW-K{ee&E@JMhiBPTL+|f#T>8RI{+A4cDQ2*82Rl^)WbjzE%W&m z4MvgmDclAD=0N%>P-5@FfSi6P5IqW4_<7C(<0ZHDEfZZ9e$h~V{2cS|rg%OPN?K~D z4!4*(tH>26AMSNH#P>y0hal}>K`S|sJ@mwlsWiP)dCb!Mwjg#sHt5s(l`HhGZxC9! z{%V>Nyg(45vPf zbi$<;PMTDBXsuo+YEw5tl{3Ww+eH0!_9C~-R%s>^Aq@xA(t;9VXNV|^JG=xGW`W3dRsJeKq3BEVS$GjYJ6eW5OgqfZL^ zz7bjs0VMK#Kk(3`_Uglvta{8<2*~o=qFgQlEWKb-FMG4GnF7RULIDeN%qjT~HP;?K zq7s<6K9FvY=m^~RzJhF-n6lH)3m8b#DJ>vnT2|pOIfH66%AXDk`50EJ;s{3N<}aYO z;~&SO1K6wgZycrz0f&?Qs4k?SUnAf)3T~(#8M{l{h{m1gxZ}r3jkxZJ1u9(}cP}8Q zP9N%RGvPx$pVhcTk5Q>L9Lvw2;Xo|-rwN5MNJ)YkOjWd;l*g%K_d2{_^&~~>g3u+YT81rjj z-t_}0;JgiPl~U&j_VXK7!XJ1hiN7t}xgj@RBjGyk()95&tLu5hqZUCjGi=9((CJH~ z`@yL(fezn1riN2p;61*KKx6Yw@=E4O>R#E;V8wVwNE^pLyG9#M`b8b`_p{*@i-`C| zl52M_DW!c$FH`MECKFuRgQJM-x$a0mkS>_`{SIP4gsgto+R2P%^C(CVVl+GA&shVt z(0Q+;aCnh4hznl@vgWTqa_hxwT2>n>L;G)owPB~b8(2sI_!zKbZmnPS(F!=g>nIX= zCjr!v%Z<3~Al2HYVla+b5SS&9nUl$?E|ekah!HZFaqF6<(X zNVD6L)W*jb^NtxVph|EL<~b&!_DY z$+|OAy+!lFLig{>ZeAmh4ymugrxBi$qxRtfd8&1P1s{6#sNImE(ApUU*3wE=(DW>! zr7-U_1b6%d^8xLHMstDj6Xfz=xebn>mP@12m7OU=XK)vN~x`oo9O0=fhaV^ zs&UJhJ%8~i+>PV?y7F4qr$yBlpE8i~KK{LeaFGf43tw71 znma=E_++T^A}^%+n_rNnMfOpprhpXnLh;}KxOr5#?uSV(4y2w78oOAo5igHKDByB4 z*SB8!HuI^(oV=Lc zus`*qamT_c+q=y(FkdYv4WRjAZa1QEF4|6TMQC{CytZ;r?D9~_vbcZZzCKwh^!Cji z&IAvdJBlF$C*cZhZ=g~U&G!bAGAaL2{%3spd@`J(ZHlUJ7$5KNeMLJt(LF^bF2y-Vdu zq=H`iH&1(u{IFqP#ft&Kml)NWyI}w7Y2|rvp2`*UR_i3DKVB9hN3J=?y;F&vbOq@6wkACcqqVZc&$$?@q%F(o}r=)KEfp z1NU8c_V3$I*fx4h+EPfg6m<5lPeipFyY^Ey2uVvF`Em4cLgM?3rZ-M`tvzpo=Jg`D z-!xT&oY3MqSutv^-YZgUiTm!h6Xx^%A8A38`%<#J{AHdtvp>Hh2duLc zE~yx~(qp@D$9xhMHc9I$F5`*tuLt~kgQVA*X3wgjCl8mE!@Fi zb%3n^ukAj}wR?HRkZiUrM6sBQT3a%sH%;!yUDnK3E^K$kcS!NDwHIsos{k1}wgc&L zm4=j>F2(J>nPUeXhf8O6>sKlR%x%F6BM7GUXwgBsNIKLuJ6` zbI##Du7hNabYeG#-8WBt7{^bpwysQ^<`=VMlbT3(fVd>St9ESd%0K4bWXY{OSp9Oy zqoViPt~R+5lQTO7ad$^g{8=>!8fVtQVsZr%#mvMc~Wif9PuC*}fT^}^13#h_6d;&=1 zpW#ob-&bz}69(+hPWuA{dm>_=x-r~hjj6?o;SZFTzYU%-_G|d8x4w0Y;F2OsWo(vW z_plElzpY2D6>9r;!%24P(4Vb4zG_`Mgv#iEyviRT^sbw_W5(Om17O` zj9WkI)w9tD<4nST**gl!$iQDKyV6gltv?o{g^zLH;T1y-RY=$6x;JdaqO-MD{#3MC z&!!%L*v7JthG@Ubk8w~?OxNX?#Vv0!bUe}zKlv%Ay$!h#Qj|;g%6bqOLjNuo+D!|$ zTS5-L+W7K4W3Pr^WfOCL`0=lgAk z=mX}%h|;5&*X z?|+iavkYbTUVRV%_@t$Gr%h5nT6Q~nET#RCyY&{rd6UIcTNrId9ciHJCZ(Gc9$t`E zj^)oil0Kf}Vhi2=y?feH0{*fBT_R8+PE5?lDhSK4i`1KHI%LNSY2@?IO&E?51voKL zkZH@vG~Jzh1QM{bwh570x*Y_HU*}$8TiOO6NM-}vifC&mtRGbeDeI?14Jl{*U(~SP zoJ-TstrU6jlho^UW*v;`n^&(q-RHP6AgV3y8L9;eLmHZM*dKx7l52vMP4@#6Gbq8*dwAlmoPdCkTA(OY9X%Iq#?7I^ksl#IWbyDx<*|tk2hK0 zs&+F3q+b^(hqV7v)r#94;1HW!y&Wx^6)wYE(5VC7(5FZ0YTdL4tKLmAKLV*mSM0JP z=qg;QZ4FtetPI;MY^<(yL#6A~Vjok)_`>JkLB4A7&i5;bQWb2J|Bx%6u3rAL@|#F8!Ougje*$scwD$Ks`TX_-)bI`L)%Q=KcYzKoDzm|7PiH8ZHSSz{lRe#iH=&s_0;;!Q)= z+~A-FR7~(t+swL(^90Qr@+nmeCcgpl>^R?=vq5=hG7Q&7@P0uK^^P zzf`Ri&eW2$wwa)tc1C3e?=^(KpoQfsYE8`vsy>9ori~d3tgxnJK{heRi|u4N>wrEK z8d=$d>{MujzN*1Mc;?6ZYGTVUCS9FNf>o89_RmEe z(>6Wk_qCP~V;`Ds-rJJ?Hq8D6!y~5GkdZH1lRQk;+)m+8YOO+Qh;-xpD}9wlv1Tto z>`4$Gy}4T;624PjN}PA@4c<9-TjKIX35ehQ+S`}u_Mv1&Sz6>9SN-}+{4vwIv>9<| z)GFx3^SMO00=!^HZkCIbZT-|UR+oqk`Wc7y*`XGvo9k+BhxLqicD#wq7-oZwnS?SR zd9T?Q&#yU?{OW6o^c~+?E@7YJk_I@xg6pWHky#F)k68)jh4bTIYd&Ld#=h~HGVg%( zeZe_)73j^rAdz`{7XI}7Q4$)U6l?+DbXQZ2?E@Wz-b=G7B~g0<6pH=ZycE`wEsbX`m=^#`@;PrOCc_rr$HcNL4&_HNHT5Ua#cHE7p?{Z;CWr z=)QU)WP6Ths{(dsauEa3=<%;Ki8VJRN-Qj_GV)JHt-dGe852t0b1ZR-*lXgc?VWexy1(Je3vXX3o$X9)mEcGSZ^=iA z*$AaR!XR+;mvlCC0Cfu8?Dbsyd~$4>*T8SL0Hm)wb}+y^IPY#HCjtjH!*jG;5;t^T z6-u!%gt5(0zL3VCPjU7`&d!akP=rt;2|b zxJY{LTdnV_{#d5`!OYpkeyI)W(xX#_~%Tj{&xiab4Fms dMRf)hYPc1R)6uo%uK<4z{eF0Vj^(La{{xOjzA69! diff --git a/plugins/circleci/src/assets/screenshot-2.png b/plugins/circleci/src/assets/screenshot-2.png index 4e97cbcf8e1f3b2976cd498334e5ef00f869c84b..4f9ddcaec6e4521e540a31cabeba86763ecb7bf0 100644 GIT binary patch literal 217295 zcma&NcU%))&@c+3B1KR^QK^q8MUa3XokRphk*0`%lu)Ee2Wf#M3Mx_r6{Sdth=M4+ z_s~M5cS4VZPG}(sr03&#%lE$b-hb}?erI>~%$b=zbCR8zGqZ6PW=1D@FYuw zCMJd!OF#Ds*V!e)U!!QcCSEQJNFbM(WcMWp@{7$t@1>9T|Ga)PSTO)xujE;8H25@-hW!lR`2M$Jh(K=nTWNC zA5DBG<+HuT&tEjkVzb2tT3buHTXzp=Y&No%&1Q#P;Nl`)JN||X%OQbrbRMe1Ngk^8 zv7603cT-c2tB3Fj4$fFFj-!VV=V7~e*bcS-@eK#};q}a6GyHnwzp+QhzHAGJ_r7fg8z&7eOTtS+-#0WQM3)3vu-Y}5 zp!4<&l_{5Da^`OI<(n>B8SCroIXM&5>_u7Jou^M9TMc%+zus)O^BEm@fS)1TT)%#m zn2kI*V9ke_`=e)gn~Gci|DF=A?y}6`v{4ax7W>}%4!Z-+AeF#i#fbZ~Y|4(Y5^Y{* z2MDF(+mNj7_2w|_)NWXVmAoe-iF7{N9J?-Shq`Sd7n3E37MKlql(m0<&{VRIbeg!&>AUBo z^43xaKroqH5`|gQkP}VWBZE7I$X+&?q_Mw_=t-Cood1C|a%7AGkPzAw02x86-e4-} zMCUI~gyW)Of%=Y$4dX`pHRM^!)J`aj(7SeEhc3Ym{TL`-?fuzXa6Kej!s%?!a!9!sU2Ut-a|ExS2J#3>BEL87}B|2x35z_)p4aZ~co zg_8T~lDLiW?UU!Y*qIDd+?9d;((n=&W)@+$8RXeqvItpS7nv@guq#Uqk*x6|17dne zA-hBfs)}C?QJANBEh#+az~Cp3hDPw&GQDRZwUoV(V^nUqiQ-6qiJMk)Ptu+3b zDY)iI43o72M}ToZBvJu&p;$3r?OzJ8k7n&=&v6eC!v;w?n8M*}lMod0pAcO-1f-h; zT+57Po@V91X{(%}SFT$B<9-Tbw1Ye#4IAzFX6-<9g}JE^MljN*q{qy;kzGv56P%Bv z{bhzBfQRRT!<&Qk#pHQ7&4QFC2zswKfGA27*PQ~F+pMz6;JwZ5nOKR*0b18&998t! zZb;6OCT~A=6dK*K>kJGUSj|I6WD?1F>wmr{{XQ0Juzh`dK8_V z#+oO4NWjX>bvyqtpM{673bOtR{zZ!4KgME#7_zsNFzwCBm>7N8=MNIt4i-3LiP57) zEyO1Q4ZjlO^H!CfEuk5aLcVFgGByEX*x4t_G%+!4$mp+aEu*cGR|H7YlB^NEVQl`v zfZ5O}KmK;q(~J*Mj!8o760nZWT=R}@O;2oSl@dx|^Q+W7*~jaNz1X#qn^}?Y?*blu zs8D*H2IkqX@U$K7xs9915k3}zg-bI>j@+Kk6pMq`Qm#h<*un5kvL|Av$_-1GejK*> zQ}}%t;&=^?Co)AO;oE$=w74^gyp2BzB;0e7TDsh}3wdz7$ZK&U0wg%%@ zrZuJqwOzs0HXH}xwZWl+$xHD83ax$Dy0T}CMg7*MOTJQ0j#g4#Jkj&p3t53jN^90^ zbHjgFm3FihqmKvc`sDfG;sz_d9|xOFI40`syon!PF3UWo)9E5Juy&jH#++GkV15MI zmHp0{w4E4V>RF&jmd9)L^p}`}Sbw#ub&i3>w3VFCl`KZJ=D-$YW?~x__J`>WQ~NLd zYF>sAxAagWZ4rCUdcQQsR>y_>Uwe3$HpBK3%1}<5TU3$NrnJQrdY;i``6}=D2ta}pIB#FS- zS{%f#x2mVS9yg!(%pSEij9VEbp9*Zm&b}bL5BFBVBN%7y`Tv^AG2QzH*OFLUKH!{j zsut=vx4Yd{p8J|66H9P<-wQxe_t!JQ>!(kfM}5`3wBby*szx3^!yX9Rydu$EnR{jh zqRF{~8NHFVD7b$;l!?oW#1{Rmkn@9R0xib`g34Gs!+C+7j{bxpeBC&<6j2kU(?QtW z)3o1M;PVS8*7)XaqKoEzwDaW-`$;HjuFs!v7oW9zeVC@fyUN2C$`(#=anb_%hchZ! zwnLiG8p)@Ec=7azSN_uxfva-dVbF^$9jU%E2(^t-;&HWks9@=Y-7nrv?ij_98~gg_ zeYX_X0t+(hXT<#%wWxLj6-P^-&t!~NSBNxQTQ=P6;5K-Gd(qMTf@3f}Y@|g2td@RY zH73EAZ(HPXQ43Zi>)0e#o=^YVKP%B$AJ-L%<$QJh>p1tSlPK>U1rc8^d}y+>;F>HNxICh8KiS5#!+#g^b)+F%nUx%5%!Hf39Tuu))5<>GEBVd=^ls$N!0H^jvswWL)Cjcf-hg)_e!<@~XprM(?I zU$-h0T2^ySq?+cG5zKzC8?={;n0yet-O?^s8YIJ;*(xX_!<`s-L}U(d?sPl=o(n*Y z&&Z?uL#q6Z3+dYNgQOyOs(<)KHn~^Z1r7psA(ks0zemK#Ds5hOtwg%;C`!iT;tO+_ z?ba8fQNjbX*YKDJAIxa$-RAv_wbA4p*1!&HcOArxLFh7b*OEc>NqY9!Q<2^^Zz#Fa znV6ie{UiyxB$`9kNL7*JOm}o*m|!R0sXUkrkUJH1Ue-SR_C4=q9SOpw#-j!CGO~5V z`G@h2k5jZW{&~iwQ>{ND!HRdQg|2CzYcv^iUC}28ck+y~6v1V;;%Y4}&6KHs2cBog z+tF}@wVt=$wo7`VKF?Olzf!zMr%2U@j2eArC%iBoWF3+@xTCq z)$Vfs3y*T>auV@ez1IATuf$LIP?YRVcs-iuhZC&k)o8SJEQ~-bfHPM?ku)TG34mZF zgIEa#Y$ljN9c2?`;Y<>My_ryeq~LxR07zXU7>KjCj!j!m_cby^stO_9?+h7$e~gK& z>~=PWqQt@`GVR)Q^<$_O$Ost$&3)R@n}M`Ujej!MGF=lKW-y(z!KcRGFyB^yguO${ zjx5uhYf~1bgYIk@f+i#G-7vY z_7kKRfoa26Ih8K173fZMq>#&{VRUYF4JL@W#5H^%6T1}G7vULQYGj-(@^J6vCY1`g zJxLp~O3H!#OkoPnm6^2dP`Lyr(8;j#^%pKQ;5swH-6mKD;yD37M+;z|IIl``$HP_5 zpeHNg>+7)#K&KX%F8F!EOz2`OEv9mN1OZ%6u`Md4cfraf*b}uG$E0tYgW{q{|5zfb z1y(+;q2%ZvCv-oR3;&_DXJ`mhAGOoQP?#N@NA#XqUcUc_f}s4GG)+v4lqnYUQ!Ln0 zlGYl80We<_F^6GsX^*+}%!5IvqUq6Vi}RnJ_n2cnq00hi2N6|6F&@9(9XjriR4D{G zrUiQI+EzKs5n&M=Y}tH4u_w1qq^=?Vk5=l4C|`E<+p8--4m312Za%;F)%^R-E#xzJ z@XJ{nKTXQ&*HK7X1(A%4>;6>e-15pDDDqD0Zn^6IpqNtO{x4u^uj_BI%Tap{Vqwfo zlSMgL-lvAX`bk(pvJzh)hM?6RS;tU#vS@h%_wfm)aKwn@0U2%^eO7wmTI8y*e^ub! zwg)1~?bG1N6L!!Q*koYswCv#MzBBFF>{f3@=P*obbY<+B2=c*n>$57#&F1$bo|mz) z6Kx-Al9tc;KjM2{jUBa~@zfMuH1!{Q=_%^IHi1=u7g`cM4Pz_fsiLkIG!IMzp*ew6 z-SYh(EJf0Nmf<7w_<70utijt&6S+yIZq4r7IuPPVqhlqt9*f!v!pJvCl}3cDelO#3 z(PxAVpezXQZzCGJEZ_3YPFD*!;ow)J-91*wKa;3{Hat^L`$vb3ZPh+!$Ur!{D!>zjR=^w?g72?%x1>}auQY3 zUmnpD9@E{J=NNC@Fl|en+5aVFK!@D3=(t8vFFdlICqwmZk?l~muH|~FUTUNsY%Qt^ zh0fKX^LYLMjt6cM?B(8~9{Ft&JHJR?n#3W8{4Yuy>yj#uUh8;_c&FkRB=k$8KaD3d zFBln=;zB3Z_ZzzaZP3lDRH<;4IC)GL~< zLqe{pqgiVwQ{DF9uS7lO*Y5@k4Zm6a`8>hR4)U(UyksFwTLHUEd@8!Hh)Eo3yKcc= z5zOyygww*Mpb5Rfh z+lw)0Q2$w@f~Z~zzTecwOI>i6vQ$%lQH47fa>^<49h-tq>){U7XB%8sk%TGau%xkr zNK=aej+H^)A~^4GGfsKXx!^i7+^%i{)yRk4N`!OhKW#}niLrnVIz(vj@4II?xJ8~v zO8ZX-NXK<@ZaeCJvdQp|Z*Dt-2Bsey{wl%mN>%MD74bnoz7Dqg))o&}2bAMuo@Pol zwq+Qx1teg!$kO`&AC^R1I)yxdNeyYiC?{DXaCw^kQMD_A8(ee-5?tYEpW(8=V<<8JV^ zHQzc$Tq%?8a`B+zDxKHAUBhuC&b}e;mfA*43XP5gMeQvB(QzW?aE3o}$kG>1CYiIT2oUpw z9AywrTOJhwVT61~bVw=D>hneDUO#3y@HE4&+W+wK)j>^ve$f{=+XOlhwBL4{T$NKWjJXm|zg@6DyP%2iY9-Su}uq z-Wu>P6#QJF>oxt=9DUyX6v$Xq9Ll#4=30;mGJWc&9Ivh>3=LS$t-H;>S;!Z)ei(Ke zI{dxpdRH1UBB*xzYL%km*lqV0XC(_?63kwo`Ms#ZRH6qi}7fZsjd(w3j!S^ zpEm!sOas%tq{#yFxNBGwp!nqdIhyPwgp|@XA-Sf4fW@4tU7l^apVRe4svP0OHZd;> zeCKrRm7MncP)3~tfZA{`^Z+kCCJUDndcWu-7x;88w4SV1O}8xNruGGW+os(CM&u^j zE|mz5`Kjyr0lCH>{S`SdE9j6VKD(A9Rea^*XeqtZ;=t2D}ON{LrvN`MWSa zD?-?Pn!57O_8JZmNX;FsvVvUcZ<9)a?9P~~>WyV`6Sg8UgN{-S-s}gg2?ej+i8XXVZk?)h|^ca--_G=s)4ySxIB%25&=i!$+gw(KMK1`M4B`V~* zHwCa{+uaFyEl(P5=Gap`;$_!Gg&J`c>qG%G-wGPC=f;dIGl~teV#z40JL-y2&gc`y z(4jT7M?3Koc_)S6<`6D5OzZv@G0@p)p>Q@kvZ1$@8rxJ?zV{^jF0lv%)C52L9EGz> z#)NC__}7Mm*^mf%-*e+^Q$j6G*8mu{^&8AGCgGQfCwC%F!4-BD9}#LCr)`ozN@JWF z8ybePiTzIqXNyO)ns=IwCQd!SgD-E(0yNn9ph39Nfb<)dKKEcZ-c>lp|HcHgN=$3+ z%xl4YF9x^Rm2DVEhLLnf%>+swQJ=uk!=keH&9g z!ZveMxA+?vrSSP0cN>5rZq(E=uUmw%ovV4H<>!Ko$5fH;G@vCNO!hi2vh9#0f3eAy zjLcEyTthmWrD2L*fGjXF=FVAe-LZ;w)ve{IKJR(Ev#Q zRacP}tZUqSOY&8W-4rfABN!wA~L1pE}NX? z{?%FF5nqLC>OVR;F#75_*Gm-=V_*Apom9468jhR)Q{&N<4bH2%H>k-X&hi-3gJnk^ z5nuGi!tRT!sk4qoXOH=k+FXhve8MT*il8h*=2FIzuD*w2yqhw&IgxvGvr{Pk95F^- zNHZ|7OnRf9s$wqVXY)~P=#D_>yp9=CjUB<=AD9oA0Jcv(7CiC~H#3dqaP`CTkN|G* zkJ(8x_9j8gtWf-?%oP^jms?W1cjt5da>SdK>(IEHD6Z^Q5vq`%y!XN4AZTFp`gPLv-;rG&FU);ezkRX6XYjO{92|+UE{eNSTO^5ZE?G^2Ubl$;%)Ka! z=H~rHa^RC&ytsoGqe_e2Z`AXZ4?93vw9l1oEGHNS_5t2}1KEfUOlclj+>6u0OElAM zAeDY;p8_-@cyW8vEtbRDZ_d1773L`9&$rVgRZ+Q5C8*J;zb=A}hr8~~M-eI!k?`z> zKRy!#UY(xXEiQW_g7}d8aqi24kArqEq+&ZdJRFMH{41{&5RHef1BA89qw#g&=LsM`=`IR|D9fml>~J8w@_urBdMXYstA1H^i=7AD;C>j z9L0myFj}*8eZao3;I#JxlsmyepQClV?(TPfShQv@wYNzmQQdPeRuT?~T*6D~+h>%8 z^}uh_X_fr1D;-Bb1tH@Tw%|QWI}5kMWonQEduo z0peSkt^%Nla%F;~R(e?zaLv00o)_z!DanSo{aNc*lhZy76^~r(qb+KFT2?v7cO#>= z<6g^5~EFCC7)Z$xcrk3AWX5pvF5L~-5EFsqQ^J2 z2tG+(B>YW^44EpyFgBP!>L5ec5YFe2=|K+{HkWwL+wWGyZe};Q5B~1^gD@3N!=Qm)?K>)Qh z|4Z4{cDx7QPBivBM8fmP;KGKuS8=wdkX$1r{_!d&(-0h52`nVvB)eTg58v|YiAOjL zg|vZJwrz`lH;nb8o{klABYKZB1LQP{&Nof2lhTH^ZpZKr1H%o&n6!1>#)DGYG1Bb` zC1}%ac8hz{1-f@Cp>4Gw=iC+D@Kw#dCkS&*5LRRuz1Q{%srz3o|B~HieBV z9W4YAb*6_SCBPG|V|I2;Naj;YHq!jd5-LT>cN3R3vA95*@$adD|4OCl- zQ=;m&xC_qhyf^sj6>))m4}P$hc4+UgP_NIrQBlP7t$Eq;#2@u~8E>Lc+6_gT`1-Zv zC_DE3KJDdu-|gZ-8$w#->p8bJ>mW~W=~b8w(2sN&Rqly6udE?^f}bEsf@k|7N|X4i z#f!W5qHp@{a$Ye$GyhZlbuCMTaZ`jD#kW=; zN>cfx)9p2$6xqEKCK{WGBK6-VL|gtLF5vzc2&k!xg?9>|U;3>S?d)c~FDm)Ogl>Le z^FKCRuidyd`TCg9j>WRzO4}>ZUuIHmyKydMUIYuHxVf|Dv-{j|)MRt(zAWp`R6w1< z>k9^J#E!`T@>THK*vkmSn)n8Gxb_t*7I~0Yz+O9mQ94&kpua?xXJ1*rC}7!^%SbNS z7)VT0)cNfek9TBgm#u%Oa59S_^XP;~DOJWMi6K`+bWZ8?k&Gx#7Oav$D!t*JInM>5 zb3};;$L_MWxh%~E=R3?VqK4ANVSA$_yUl<*+jV7d$zH>yiZSLq%?aQ{>12@cX(Be8|?*(!@iXa9tL9C6p0%-5*Vui~B?E7bh*qQIr9bzF zTz@Q^PiIPK9vq9fb(#2eZRZm!_1hgvL|h8Y9ccbb{t2$C*$Jm1(a{Lo%nl^Q!IuVJ zHLcQy_haan-w+>awy?4(^;$Stx}iA6sfIcj&|DGG+Nj%rQhj%YWP|7A+LV+jlajl2 zA!$aG0E+nfjGpH{M-B19($p2N$w^a;u@AKZG=I26LzyP&9o#}Dfz3|RO#b59B87@I zXSpEDz0qTNbm!cXm;i*m>gRV+`WI*<)1_`%Xlu${&AZ53w6qVTy>Glb)VK*SC+dofNqlq|SW>1&s$6eVxB4MP; zCL^FVYPcww(zNZ?BG<5D&U)<8l1~i}`5vHiIUGzTWY)2s3sZPGHK_q!v zz`rJyBv4^ZHutD$wUn&f(OSzA8R-pQajMLiq}|D)T|3(=%gqZSEI)mDtLrSw7;E@v z^jXo=7svkX%E}yX(2cCQmi7%p6<@*Q@hH2$(%7#kI3$r7Zt$GuPS4U3+_n?`XwvwvngTO_rsWRd5KtFsKtU2 z*(=*b)N|wEnD!jHap|_*L0_p`4a@Bj5R-Tn?Vx z{2JKxcfzrj?0MP$?Sy~-Sp%K@=N(#$zHqqTE!kT-8vy}CtkZxIeM{K>Or08!JQ(V1XR|=iF(>#euHfC#8F_kE3q?zNm4VyQiMc zjez|Go$XUu+o0S6ifaUA@6bJb*Ro16>bhhC!#ZbBf|fRSrKuSt^EVSO4Mv{!6pqpx z?WnY=Z^`HebV|0cw?~a23yg9 z6E6UVHuWr&^!77|Hp`(^0Dp7*s(cvXGt>2`$()`{mN+_qU@TqE{A{X?dZ5KiR_k9H*H>BY2KX7#=h8F|m#vbJOcl4!t) zJW^+@aeRXIyggV=V8lPNC9vY}m$-&h{X`mQba-m%RUgATv6JZ3E-#VunEl27*m6_p z!fr)bOJ+C8p2jw zHQ=rr+{Jrq%?_k}j&!~=$cds?lKtNsU^LCY-A~W-NcclIQTk?o*F)cY&kdq}z@t*R zSgFhRxPIfh#;AIV*Vii&w)Pvu4VV+nUDsXGc_!^hgl115mX@9zwHX9krc{^M4S0CE zzc{cqTyFVs^@+goTw(HC+v7V7;E5B3woP(s@4~wjkK1&Jcy!r{1A2HG)0&=Da{RIF zPdb(ce)1Xj5X+OwV|M50qz($0v5qSXdz<_SqNSY}h4WPP4czRvf^!>-o3RNq?4@3H z`CAvdEL1e=1HViyTU|0U;c2G6t8FW}$+J28$rYuo)hMwR)_h4esR$b_ zj!pWZf{q?KnI{{`KNEtzYutp}QiH_#!wZfj<`k-zDD#fh2cE(9v7zf7Rl^{gur(i=A1~4IlZ*%9bduvtqJV4 z8VAM=vx5ZO>yH@WzOlf-DC4N;k3_QvD_Ex$Z=*PSbgc_D+ML^t#b4uqUzBBjqNeWR zPoBIw7=H8Y@8wgtg2PI;P0jU_e&QP1b-_#WlOFFPXfpI zg0_BtF@(Q@xGTRtYj>o_^$CA8TT*Z8DSpE|GWNF%_tN>8A zZij$4*$c%ZhxwKec&{5RULvB;@XQu-*uL+Xl3F2`Y)A998=2}W{EZ@?}nk=`MIU`6uJ@i5w?hAgnC)TL* z`eloFdJvG%z>i=$cg*V6Fmw4r#obopuNN@3XlTL`geQWMAt+PUD z#Pxg^cYYx{Yi1+76~ccm8nrBLIAcR5H&jA~$qzS#bdOy*LVV|Io}}@G0@3ZP;VRda zg@Fa-KRAk5kHs)#+e=6PZTji`Gp!-)Q=D3saNlRM76kj! zTve{$E9sgB>stD20k`9(CgWcFlU*$3_4N=uPAY~IFI-YX_z-n}h9<{^-aq>ev_N2< z0`NERawhZqmc6f+Q^{xmaVP-vRWQh=&^nNI1!8jLlTCmNZC8Afc;qOc4b5#%pAi_yDthnzeAw}p z>f#loSM-$^UdVprmjx+UTsM+4`-a47spb^tU!9g-#j)AJJ+#@D-nZ%Ai`+UQkq&+} z-GU<3+C2d(y#s$TFaD0dUYepJb%N+k{ zN1uAmqUGi8)NoCS3&CO{Rx_D73j5Qh3Fx~1GR7A$;Arg4x{3B@f`{MCMxgvZnTe}s zqPTyZII(*y@*(fkTkD1hO0i#6Nyrn%MaUoe6(InA?8Lk>v`R5#+)a*^`CWt%MSYiJ zKgt)J<3#_#Vn0UT)}7f?d+&h{ek=z&DejSs)5;wE^h;w5rwTQLO<>E^qq0&t8v*~O z=7Uvq%%H<{w;OCrP`PvJ6)NDudAOlMq>(1GgQEL1v=^{nXMh`d(6l!5#TAIKdy zp`rjk)CA!y)JYS$YW7VH4Adb%Nqdycm|A>BD>yACj}g=xl(>TN)YAofi`6#+U$#6g z+7E_yu<~@T)P3vM*bi&op31hyqJ{wnK!?Tp((3z;rO4H4J1zgMcLy|zH`|AJv6Qgm zXxA@|Iznjr1y?Hw6>n43iT1y~5sefy3LhA5cL@ZutIgI$X>x>;@EwHBHfyZIb1O@Q zk(OAU0~p($IZ)#|hR)+tTU#elLUnRAkwURDMqVH=teRR1R6d_Uc7+9)h-#X9Cy{kgTE z_7C-DAmhhXtAqW2jhF#QV1>2n@Ac9BCys{iN}r*A=$>iy_%-VB8@BvgZ{OVS8@d12 zo62nNbMR~gYbih2ujFtOyjY>!LIYKELhN#IX{ep>V|`atz?*9qId{V(-h8cttX9wImJ1ctjdJNQ6$9n`rTNLnKrPs0#Cy;X@al zmO2x?`C6u=hakeL0Rrzmg}(Q}R~3o4AHXUai{TkDx(*`#WdTGkD6B&e#H6h2&8t{a zc9p%K@PB5>fC;k2ENuD-*>XEz^<%UCg0@S6H^T9=IA zCxq?l*gMIc_)cHwpF2Km3OpD63w17 zd>J@}__@zuA9!F?C5&RXoB$sHlj(7ePuT;4pa@zcl1?4PGMgpWw5HJOKz;F6@Bvpo&8sYa8O*MJ# zU_V!*)1F^S^GUe65mO1W!7_w$7#b0Tv(@l^j38Yvj}AhMUpfJ{`7P0vuA~J^K}SVyySen@ z3?O8^bWI-2@ZBeV^gvB6-j1Epnh?|&5Q7WF=nH{8!M{wyneaREo;ituY$z(z|bZb}(895Jd8) zqcp7S=l2CQ#J|6Tj#rn;+62(LG2CkkKw95kVM1qP){EB1M?Fu}3O4oinP*7XGN;tM z*fJ9QKFmJd{@Uz;%I2LY*sAITaGV`BANW-$mLzWebJ1LC^q@24MUZ_fE53eyW#woD zzj)$BMllFCu`itZvtv%~aWg{ZhNQ1((Bjw=H zLcFHbK;Wr%HKTL!P3gryg(8lhrzaLm#HhG3e;GJSVSlQ}tK4eJXN;WMcPp29g^9*h<^rE~O2Jd_Ty+`E^xE?FVyha}b6`usL7AjhZu@V|U-`tB0|?w>Dh zNk-`vWhHz`%wZAac{Xs{U^onMNd!iJ^~D=XA%lspF7~U)PMvTVh?zGC_%|gUZpCM4 zetvRz9R6gZfU3 zz_)70LtjVQL?KKzCE*uVVOQB&Js#@2_0OV)_Ow%<_qQa(S#~UJuX7t!^@3ky?i+jm z^^3gwlCtL_WtI+)8BUl~OY=-%-J5@I?6Gkpurio^fc`|O`*8r|C#!(p=jiL z#PHRy`8H_*QDZ1^kzpb16~_UQRLNZ;8sm$6kOPoMpD9)#Lb8}}0A7y|=dUwq_*j=5 z&{-h<0=j?yUy~cua%1yd(z%~^5=uQo2G)I{F!Kf7!^(HnTJq%IqJz##adzuPcZ^B- z73#QJ4@ADiv4b~Mr%xOcf9Zt4OdOpOL7)~ zuedirx{r29^!qF^^gHUn^LikPGDE*6@wh&FdqLdHzsXj(UOiy8e2d)=u=bpxxevbI zcmJv?NPc^7)A87QdGBV&7RT(y`sT*KGUUqS1%c9t@BDh8Dt?s7Dr0~>E4CzKu#v2_ zwA4!Yx|momzmQ22>Mhisp?w*xChE?BY?9(aLB?)*)9Izy*jOZR0jqj##` z(l}Q`UnYfFg>pQ66{;wJVdRbQSOG_FAoG?4p1nM!TEDWWm?A(BBO+@W%~4))IXRX&%^;51bbzbU{6_kfuY{8?Pdh;8<})I3^5$~}H{!1AVL@8p z32vt8?fE3jV|(EM)Au?{xgJH|lC$hG72997Pg1h%TOEq+e7F+COe}rPk9al^q<>M> zZixn9L@M|1z&hg;XcY^GwFctB${TQjd_B$2koitoT=rW0{O0Voqs$s8MB6g)xks=> zTUMu*iH0v^yWa0Wvp#qq_FZ-yh(S;u30z@{IFp`wjDl4{v|N99GIO6swSK|D4!?=A zW1UUS>=U{|KQtw-DctjIPr%*fLcgy0Qob$6n<0JnT;xKJH(FeO>Jzir1_^iRbX|)c z2Vcl5SVW-DqBgt2T7^B&@b<%Gn{5mBA1E`$LAfZwpUitnlB}1e=z+5}^v%Hu%&Tpz zMmpo{=%LpzIkm*y_aLz_xM^tr(cGimV>S`*97ze~oeYIU?Ck;AvDAO?g87c5n8M54 zi48#|v!mSb?}N9Nx~oBqImyH7_Z)jV!9%ycYgPK2`J+PmwcGiD=Cg*@^>pjtGVh4J z^F}y@?Y;7ocZQ$0Eyd1`35AMr4Pb&?>tm*2?tWxtP!OiT=G+e;@kE$%PHLI!$@-~$ z!%y}l@TB2Ar@i$Jf}oIUSF zI`*A}ieoRQuHGvtl%<9GSaH|j`Ls)lxXuYtubGPfmV6e%{6&>d{+3RAdp$YR3(d;V zRaPcwm3Dz5CIWB;Fv4F-2y{sI;h^J=NsBF~&Kk=#tlygN%^<_2?PGHx6Ft8``{(#! zt@+E(;cq?)GNbF|@6x!nrgOItV+bVU&(W3TLDIQjusEPFu+-yWvTB#C#wcj<(9Y9t zTK#lvKx)3-yI&%SbbRO&k=+R~Wu>MF5?+6dW!k|9We+Q8UNS!@Sgc&ZLfOtqcz&DcXqK|c z8M)h>ePWY;A3hg;-ybJ96E4@u>Cu5yc~5q6S&m( zj#>FFp>vYaxG0tnivF5fW65yd$e~?TTF$CVZDg#MsOz+g*1 zhwOAS$)x4phyHO+h=Ygr%^J5HIBqYs|G~w31%Sn$bBfrr?%WuLc8+)2_h-{Lu5fzj zHz*s?K2rS+3lzp0W^;d;1K!wcqyc2djl2{m3fM_rE%I7FoNOa0ite`B4InYE{YEIY zLDJDMH0yk9j-23QfAHAiH6{v!T^sxZTb9Ly|HBe}hY@C>l9cvfq03#A$C3-HeRqE> zXjC26qaevvN9|q ze{rZiLfj388dO?q`0FoM^>5<(b;2*}=YnbM>)L3&B>1oUgQFV4^{^4it$3&T^NU0b za2SE#d$kZd-EuK`fQ_LE((Hr=sO0>czH_}EpEXkULT6u3df~7Hi8f&591TbP1u=Ianw>$@nvK>qd+&ST%euM07Aa`re1|y8pw}doVTCwqdd%4vYgCjXARs6; zL`A?tl?Op7p(r3qmkx=7fV4!VDkUIN1p*>XN@yVTSVVkBI;hB1eJ!CXUIR`c#o%zhiaxVLM&zlfAdS%4uM`K1 zYR4=U_y@hRRqgGppvoh~vJl4!&_?)X&!>g$hSC##ZMGTFXkNgd)r1P*SWs)jGcQ~V z=8b!*NPhqDZGDYQ^wZd{+tM&V@5TkDcI%3nYDDt9*x-nVDzmsrDL7(OF1G^D?i!q? zOC`vCVkG>7DFjziZwa3~!unCTo-C|WF%SV(f&`plam>9#H1+7}PZqKd?q4K6v1i@| zB1rk?6QG?p{JI6DZZbEsY2~6l=TW;|CR2Yh=!^CG2IgAMLt#r8=WERO;T_8{DBW=? zJUi^sWMGW>T%utU%)Rx9}&3T&rxV zHxHS(xj*7MPkzFaB4XlND*aN4z!ySs*Z$OS$rxI@wy*$4d=^rdQt~7TxpL_V-i`Rh zx+T5Pkirzz!tK`pzRB@y%@riPXMV7Mp>#`Gy6l89X!v_?#Hg2a9f#T5YG~Uj3GbYP zF~h7U1Sue_FV`c}Wnl6$5slV=8Xp8Sa`oW?VM`a`4fRIH~3 z`8cA^f3FNYiW3IqSs^6hb$e(uHX-9+0TVHrR?sxHm=v)&idz&yuLaQyDq-fte5(ah z#|T5Ak3Yf3zYLuONdM}$Yg;!0Y>X>VE`U|DDw*EjxbnkX)G^RyYuvG+&tw;IUu zOI^hx-i3TvK||n_>bzClxKF!P#{Pyx=**-a`n_7<1;3VC<=XyoD!SW<#_3#2hOIyt z*D)KdupfnhXpd3@#LqZ|2g{qUVF0NOLH##}GH9RkQIrjpTqb3xby(mvc%8Eju~9SK z8n(pVgp+Dwi<0Ud!NLmo%;sh})ZzG)i5M!dRR`2U#WBVwz98fR_uump*sbv8TqGyA zrCz@q4H5F@m0nY6Z{FvMK(-dsL+H^COL1bvBD-ecq}DpA*#BO^Unb>hULGPKwvz$1 zl#!q{q@Yc=)uHmm#q~lJc_q=K9F$lkg6(JT4-OKfkkd~c{~WT_jwK1j;H?-=pb?F* zp3;mDYlYxZx%UBl1?ICH)P)1{{XkX&;(hg+9AovAeYOx$=kzQ-9Q&GhN_~ufvwo|; zqdfI9RWJLVk%Ngd3ZlkCPPs$B%FW*{C$g$`uRhRNb&72KX*;q6tal0jhfP&y^+(&p z(B1obM`Q62jvzf+ji!`6<#jC}g8UBjN*M{w%#fo?qLRcF&#$SaYW&Vsyz1ETM)Yf< zwBNhZU=JEwlJ!tV_8Z_(s@D5jsql9B>D()YkNI6%V#B0GUoh0c4_Eon078yDZ*L8Q zFBV7Sfa@frNw&m$tvWOs@{3tswrqcXdJ4eA79^dblTWqSQz+q{oo4HDn0`BKA zDI#M3BL0CA08NkOO(~=J2$49w!o&ZO<#>(#_h0+!@53@z>{%}9hA*mhJT6OT?Kq7j zsTDZCx)9DU{JP!gV7}|(xug77-R-e8mN5wham=nPp4DJUyruVsfr4A%g0EXgtS0or z)}j$U3IDplJ?2P@U^s{toy(?F;b#; zO>{+mQ7l__!XlK`??6cAAY_PL+fCTf3S?_f`{njscRF1JtH+?@k&)-$*OG>MH1$Y+ znLBH$7lL?#za(mhxB zhxQHM|F>j(gmRzss>mU@>~B?w{)W%pUe+~h&^3$b5LlmJxmGbOXNGW+gFy_&-VP-jK_H198`{NcQk-N23ZBKitS{I1S5CSbkEhGYiX5cm9DrP3MX<@IW|* zlY47vbEihT^WUnpspML84#TWY6vxi*OVyfkPpCGzB`WtKQ%Dv4)}{38X?YA+O|H6R z7w-ObKWJy!P#AsYNah{*|4yTINQ?1BLxBd{$uL@lCC=|GGBXCRwd-rgdNcoZw=nuy zSh_dk@xa$CUvB&p9U;VDa9nV7^(4`08+>SRbn(q0MVy`syQ?bFo%pC_^Ih-2+U(GcY*XYs%n{xDmERS5Jba|eV$?l10F-6A}2R+4>Wt;vN zq!B>>(pcn_>)1fvY8CcYZ>$jCvkqp^mZ*ZBc3UE6Yfzm)oR4 zRF{x`LbAI5SKH`@{Kr!Yc6@t+9n=EN;|DJfs1VVU4@!E$U?)y=T`mTRT6kJ-Eh}vx z?>)O>2rp0gwK4 z5b~9$(YZ3ueym*!nVat5{S?NiJ;^XZl#+4gAcCRR%0nh)f+f_%o7Oj&KnU;duTRTK z2$Y<1*ZcPK6;&-4am`=XXte;zGMcSD75GuJ{i8+QADVu#rehz}zP*NmtfNg#B^-eqhR-PwI9 z_9s?j$cbLao3C4Re;#f)CsI`Aq)@xkAfMIxB^CgXi&h}SrnxU=0%tNyb?fv+!)Zg5 zdk7?17qO;3$&5xsFb_J-^}}elq1TMKr4_B`IrPum;eBx)%ZcsjoFZ{xl2?7EV(YXH z^%IJ!8QTr`wvNleA#BU4Lt4%=*w03E^JfV+CPX9y1YYc44R88FuNj;|>haz(aS~4! z`R)9)wf)KoFsO?I=(4b9nrJ>gR`vgO$eBmGsH1~Y{S5bx&$sUyy&UdRYrA(&dFmt| zAUYi>+RZsxO;TuB<{l{*(V|DTxD;!_i~wH3>tf=;e^YKaqsu$Jwc>o$e#i1n^k~r4 z@76%vB?lZ(`2O-P1WA91d`JG4E+6eie|4PP6qB|F1~PiV^n(pJYg>f*#1hnA1mX)$ z6UyAa(;HCrQtiL%6~TFnT70JRhU!Oh`?&sc0e}AwjwKL*6QT1KOXomuFqz;(IRN4& zs|1`BxV4ZKx-hKmg{MFgN9HK{0KowL4<`o`yFSr9Z8CesU+JMayV%QXhLBR0y2JGR zraPuDLoxcIAluiH|9)(H2U}uh_SG7T54!+a_Yq;jl6O$L9T; zTF*OxC0%knDCbdjbBJEsciWpX1~lSLW(5!or|PM5mAV3C(#%RY6fW6f>#OH!FH=Hw zikhJi*6tlw4xBM9h9=eT9*=))QjL#$-&UekS!yo(&74imDg4I5yoAqef^#yMN}Z zQGsP=m|t2A_uRpeQj>7;<$AH%uIdUbXBL9I-yVrvs~&p7JUoXYtuHT~&bckUb?1;= zo&)A!fxkaOAl$e(QK<>BRGjvEWXh=lDKqe=XPp#9F0OKU{sL zd93>>@+5ER53rK_D~)@;J&4A z1;+y%xv63IQ|q=COL=pQXa17OJ1w~VHnUvq`Cau_d+Bx8hYOhPTkJ5J#L(+U!k{o12~ zVm>+ku2z7!rZuqFr0Y;#%Xz z5G9Diu|rC&uOY+x`w{iCzW=YUzGq$0U!Nb%X0HZP9FD@VyGXW8f-)&l{!fPPLg7pO zKLSixq^dANq&Mkw(E~T1x(Ia5u_KA{?&t6BXM1}Dxs5Zi#ZVb@JtumaEc^^Sl76L< zVn?VympV*;AG1_Q%@#S}uY0mo&0P4hlj$ONDywroTd!QMAJ;|dZ0G1V4~lXs&8gb| zc=Gz{aGY?BW4l2jvIL)^yBv9;lPDz@u{3ZO^!;Ies2x)DAw({z^2pUgjk$mf*-j)U zDm?6h8d{&^>)ntL(Ml4nkDz4fY0(}_L$*%iRPgGyo{p$8P}_yjsoXkwF4sT0nM}#n z6|Nv`Gx1;}4nXNmKcot1OeQu6^0C`&hDaR7|A{#)er$R(_7ATW0{u7I#hn09TD_Fp zZfB4FCSFy+Hy6t-$tWs_sT_%ir4N4)f0xBJ!YuWsK-8@bvx>sVj&{-T0sHZe9*%@FR(Xnhl^^pbWs3vf+ z7fb&5zxsEI-iWI$IJb_e3T^*<{`RjpC|?F&;O*XE^Mw!8?gn_EKw;q3T++aIC-0yt zGckzzFj-)P_WZ0k#Q)w=3*t(?w2nJPYg;c$TVJc~(-D2HIrMQfZc?o2)K9y{&UnBO zR&@<2$+ETFMMY;B(Fb(!e-{$`QYe`@VXxO*BjhW$DIVH{Z(~Apl=x@R&8$cLya-ME|K63c>C62 z9L3yElW(d09mE)PN=aPTIb1ZnwKbn_J$xh(YK-JElzJ|MK?u~I;E-Pch;QK)oe$IG zkKij83@m42m!5o;_Uj`&Pw|Y_;>fz}9^D`Wz^G5g@i-ktd@qWE6wP&Gs4hJ~x_lpcC0WSsqjO11h?4hROgt+Pt z1CE+7LrdhuNgf8)nha> zxNF~_7Z0HX5M4$nBl-Y>A|&w%RNfAIl_BWv)wx?{gHMV>sRRi%QFL49pKG{`PL<)p!8~0>h{Wm)^7E7T8`WuGihPk#hN8wFd@8S%1sbF za;>6I%kSzKxljH-P+S_1W&V?HInD{Fky)imTUYTSRf!Tsbdlf39%$mL-q({Pu%~DN zz~0Yix>;;*4GxJ>^$`+0)Jx!(FIKSankSRL)X-!O|3;qHh%}cLdukrkz*eK zDqegG{8cT*l%;2*Zt?W~J93xP_)5{h0s z5zP10#`~7kP*skOn0HmAMfWzTcC(!`ynBK#b24Orgn;&&ihO)w%$&? z!_#G|kzjuPDQcn^!@rr*Zdylr@E-=reo-aY7N>A9P+wGKR(_npt+X*Naf{3e)wA-` z3yPEfx=}BD!Dh()eY&zpmDfj~3#qo21V~zkmS8uQWoKlO z^HQ7A3Hm>Ba})u*YY&A6({;lcbtO%|m+!X)qW>QLkROKaj|VMHRU_NruReng;Gvc4Hg9;>;E!~D45 zHgvG&L|X{k(slMqbxC3ZT?J<+Wro;T-4dO+b4+aPg~KT|kk*j^olB|DUzd0< z(XayHds}+A=!|P;fz#n$Oa(_yL_JBV4)@1Br^<)Qse4@sCaL%7_891XXEE=Hbc;&~ z12&uaQbdbASO4g^B3^`O-FWg(cTqdnQnlpd*SotuYJFsV|_^k|=@}<)By2xuABUYzy*CW+3`E=Kalguq7B!38e zG(Cpc+^9utJW8b0{Dd7S_nd5~@8QU9-d{FdvELPN#{PGhl03>+SouXHl2RHSzh=nW z4Iu$6^=m>>`dUDpnICUf;fNpVYG57OZCTIsGk+~jTCIQxgBycu{NK*FCbHro2Z>)w z7Ik`^@Gn+xMStP$#k7Ytle2YsT|`)kfSGe<&sAaj29Sb(ltYga_~zhiOPV-0T9V=U z+i8nzirwLRI=RIsI7)n>?(Zm4be&N*bift14KU6lSwQ*uXk39oPUxD6fulxBR>Z3I zB{eA#mwtnfDIdqq4dCmhZo6amlQsaG{#}mbUan|#GvuSpq?!g&rRo(+-b~Wzkr3aT zPFQr{gXZxg92^@?>se|sUy`zZc- zW;;l2Z8H8}cHzbk7ug$I0MF+p4vR<)&C?_NSXdorWgIm~J@VbW(=N8#rRO^SkE#@X zj_g(2ZvcN|gyo8bY}Nr-?_aFh!{;E&Tf3E({buB(q{N%+iH%3{iz1^z0Q?6dq7 z1QJU)nM@`g2k(#Jox3bLiUk(l+V`e>80`a={GM{8YhVIG)M*mluM-~-H#z9Lowm5& z66RbwzXozE=d-Z3MrNBTU8P)W7Gz6ghT8>z?uO8HXz?`X^qmpR;45R^Q(F;8QRD*( z+D)MMA3`PfUx-fr|A_6FgQKp_FjZu-ML$O+(_Um+uOfD8|I#$*Y)IC`21+|^`fB#} zf+;wBQ4t=Fsd^tAKM-MslH?#=J}>4#7%W*h>2>>-#h&Npt9bixo!q5u@n}_v9Vwb; zv8F)XT@!~L?XS33BDO(c&0a!GhtZ99kkBj2K$!S%okg^?CSgjzL)k-9QoflJnNXH z|NEan?hN#r4>!<9^WB;+3HHCJoio*;dDxtkoa;lk1LAkJH?=&Td%ebMhPe0qxv+PY zrERQ|3i1zd{nO7nmGIcKec(c;$TUu0Ss8tY8$AXz4hq!tjp8utXxPb z@lb`~g(VtZ`3xAfi43EjL1~UnsD|n5_DkqCdp9jvkzs$@CrS1 z?@tLgBw^kp6RX|6tKiq>E;ysy?m>rGh78p8g(tjiTz4#&l$^4;tl)@X`!>~@;`4P0+u1-`QZnsF_xMQ?(wgO3y2DxO z6-yqhq#rVs*qUtF7hUE%qS1X=1^azKlR7;3--n8zqrt4|QAN^VUXB+!^|XHQ&&goD zDL=Sv*wRzLL&-vY4+7g$-c2&n*e7qCc&;;8PsUv+!mrB7rDt=tU~XDQuI%5XRw+K{ zas^-ox70Ot47Bw1-$|f;8-yIgRnyFV_*%K$ma9z2gh8FSap@%3`!@`oE63zXH`c4> z9cH59Y**J9ejWx7Zq;Wk8$_0nFn{!F@5EJjsF1LfG?2lIo}kJS zw((afB3b#Nirp%ysR z7Sv^YCX|X+Vk0M-CI*t&iu4y1drIS`U`Wvf7-86n{D^Qffg|<-WLo^8zUm*aFBMl3 zdMNcvLMd?`;C?dIuu5kZ|J(!>VBc8SpbjR=Ohz0e2w`qs2mHfbAi}2bwLOVBaoJga zuqQj$%D(LjWuP9fay=RtXE>L8evnoTRmj)>vKo>g$GaTFJ94&*cH^9B6XbKW6~#nw zwRe0-pSHKb2iczM#+0h(V+P&yqS{lTjjxt7J=I7 zWp}F6=IyA6lkM(+76cpm2H+jf@f2D7llzP)S`Dznuj}2{2eRDH3jCELqzhXHV7hLG zY*x88%bnj$QxiQBUnz#aH{O2BIYdZ`K#MkVB0_HDJw*zn-ySPpBgXr!O8HXv0nBnx z$fkeZ&jwN)?pc+=37pNbq+ z*_*kJM?z~CslK4&_u4b}eo2!WMpHpV;^WEwk(rWHiw*t#rXEltvKdE`0dtCr2qw9$OEI+m9cZy;1}z*} zuctIeLIm$UQ5GqL`N^~_yEo!GbwR^P-I~6A0Cmx&gCzffpUI)Ia|<>zSx{#qTwQ^} zN1U5};3qSA!dp9$M^)z=Pv^n1*W!yA0ukq?Ai=Eo(}`Uvw;yr74a}zXA_&9XowMYd zgl=v^+nV~wp6rp+zWBKz+IU>(aN~vo`v!I3#$n9-Jw;OBSz8c8>E?k1pAA=Kv^<~8 zfy&o~fYYb`yoHn$kL!;~T+^%WzJ(vhzg&{#R<%ly;#lOz_LwFbidCKt`zOq42)1j_ zpJBQ|WM7j~i;lVkb=&C*n0e4ogA?a^{(Hy1J3ik6BbY?2PCJ|`f-JiI@YA(?Bny8! z+;vs4WBmCpKw&a@>1SAn0NAfjwJyKgb%rgHvaIdDy7n6t!Nqo$_+6ByAx^C6Xykpb za!h{|4YgGsSttqZ23Bd$jHRzU*6c1ivX~<0(|oieqjNWwRq_eTD&Ioi8#I?^E&p^% zDm;U!+;4-B3Kyt8s1++~?PONJc}d~xrgiP+S7G?OIfk1(OG0y_HS`yv99r{PuALew zyfDQ<+`y<@l}^vW`WN`kZo|9YWA}$pL;p07tMNmpFXuNVV?eru1TP;xmYGIV6zQcu zBXuS^%yrst{}4ffeawNPmjR4Heb?Op7#B~FC*a;JSWm)#?IW6RBrGuDz8eOv>p z)FzXUXWloxT0hBRpXp-knAj^-j+gw$7zL`}2UmOtq~(JEQ( zMMus}T+3NebkkqEK%2xD#B(IspS(D92iQRVG8DpVj33Azhcv$ui6j3GNDgAxNY!Pg@qrPA4oK7L)$SJOxre1on@~`*L=tO- z_JDm3Ko*SK&LH2}lfFYyL5~$%qw>PvT$q1U<#+Af_JfiQypU_I+$3efq7^s}_Wuk- z=hgru^%9_b?x;&F*bDgehK z>29Um(wydGy1)d_Y81IF!tcKtyVr61n(Z8^6i4;SBX^Y#_?8J7Zgj@mA<~rJx4nUc ztBW>evz^g%J$=_|TWy@IZTIV!U{ZY4Tkz{W zp1!4+A}mD%9v0j-KOzZI6a@ASQQQtc-<{L_(|+qpc;lCJ9j~Vz9naPbK&r=BtADFh z@i~f9$=5^2UR0W*k%>nC<_&7OM^OckFm}fl7BiR_~v|9T)tDEn$#IQ zZIws@VihnymKBS{%(TqO@6Cg~{G3DDy@FiioUOdxUn|<^NPB2neIGmCMG)?5Zf#U( zBo&xar+GOw!E ze~Pg-lSUt$vCaeA^Uw@KGm+vAyx-FKf+Ek-&k1A*&I0NE=r9c(23JK73p-F@VJH+f_$ zDLm8HiVGlURU~W^3#x6T!++%8HK|r4GVPBixZ8lt~twzbn z`oM-{Rg_rzd>TnCTR>iFld9i6YQbRlxH0Ry+h&-cn{*r8Ir*U^@e);_|Af~$W1^gg z)2fUXjU!NZrJbCtetjkxq6X@K_Pe_lU)3iHG_JjLM$fpStD}1R{O+AngZ8LjbGbHh ze;VAD&`Cd2R<#_QYIPph&tU@WIU!*T2psqQmiq)~imeX*0AXgFE;zb2XV+nez+=B^YNN9ew8 z|65tP^Ik$Kznm2+7Y;m{dTgqUeq3M863!jr9^V-jSnbuwwQ#Kg6EPv;sAY?zxbDI& zwkCaT=|;cD&VrV zU^tLJUNd}k%5Mp@B4DDI#J8!*1#HE9iK7s5ESgKNP`O=8dP$Y%LzAbHd0sQQjXOK9 z@5dH+1G}r$nBUj5hU;111Ihz{fut<-v*JxtSB$%f{&J`aE3@||2QRg^)@Oav;1FA) zId|}><|91PdfG)g#D2Up@XAG67FiVYgd7>^b_^wtjpplV6~3njFs@hmJ|KlaPyHyFU) z^K459ZL^vuepWBZ&U%01v27BaLY6P)Dq zEf+RJ1iM}P-4XEHZ1DSGir%-4pzki0*O%uXjJ~KDEo^NrkmiWlA3-UXosH$6 ze$bM0YwpT%$x*TkN!U~MNwfH(tn_c*Z|=t1vU_4;e*MU6zJ#ZG``;12jBd3GckZbG zHGRvC@vc0-bzlB9(4Xa_eU6Nppzq)NGQsKSmMa+>{*ZF_Xnp!CQW-yaHwI;gPj~3wvDn z^`Wc7dU?3`4%;MM`7lNfZ$3!;>Lc`MWZxzvExr4e$C;mZU)07TbsCPevd%d=PIjTI z!&7pf;WF;}j3Sf%8c$>Hc`gKb=*$QX%_haBhQ&M!F{}SPM3R_*t;KLpMJ`_bw-g`h zppS2EY`k9RkUP1!obhZFNJ}$<{H+mUV*-yy)GI&s-k15;;2`4b&D9J4{#Yz_KC1tz zpCK|YCNF6vjmgl0KjT)88nmJ^J`>((f=+&=NM0>z z|E0lWS84MmSZbbRM)jG0eBkrQs`ULFc@p~ycJj__s0~?gW)RbJZvI{YN(jWT79P)EUn1dt)BbZX`eXXBK|#eJh3)cT zLjARO!WlmTww2;qCDH;&6`jhz38vYPCJmG!)1`ifcsIvc8Yfc7D{lk5+1966)Vbu= z`NBEztt{2}UK&e>7=ReVy}Isz*3AW-`@UK4>6IoxAQt`k4KvLB8^1v)46BWoow4p7 z9C$)aCyC!hl!0IHKC{~psi5*zG)w%wh_}w{=p*AOi&}U`&$K?D5x>uv-p=6r4))Fo zWd&MaHC${=|Hchn@t7JodnZeG{>!bzcO(Dp9CTBznoNdkOGjdCH0alzVAuNay#5x# z!FuQ%@RHe9_%9g*79yPwec{8o-Dfq+H)XK&*dQ57Z`X|hEa36A1DvOvplSU85Z5Lf$O7rdMxfwx zSr6+zBq9W%-d01!UJC~t=qGT_H(eK^3cH%g>Ax0TGMaryO~0=OZ~WIfgDK=p*8eF& zdK!ms$cHi-ctsHLZyie3i1&ej)d=mPF-G&H^gn%Xq+;Q~z6akryVN_!K}&q%1TB*_ z)cYJSJYsWUE9zbAiiW)eQN*BVG<#urQpX9Htl7=GAN!&|Q!w?zfQND zCLX{=P|g^uOs#6v>4d-oDZV#d1L3__Us=Xvby0>qOx)YbQu=VV9ET>V(Yx zg!CDkwER>n8nNlMOobf0irubHnL+TxKss&T4GI6+>rsZh9PlH^%=k%0Ea6xBGWGM_ z%W@3uBMwbzJ2ULp5*_(Ie+GB*Dje~msyzBt)T4Z$TvG(qidEV6{DF=i+Ad?yz9T%F z1m^zw=D3icxEa@2B04@PR_CLs54vbpZ&hZKp&v;oO6+`S|DwZ@Ae6XmBgr!vCb^%G zvR;8ijyna+|C!V*xF>bL^U3gu>TTaNa^&5iEZmjb8*)Ej8SgJ&Y z#_QW|iTJ?2Wgur6Mb(3diB81Q(ltrcYduaIEm)1r5{b*N5E3q_+_ z(@Fl|gK75i2XnIQuC4b`tEMBje7+51E%`PmA^y4rX5BA~mv>wzaCYV;r5?m>wXnMbazoE*zYhx=Y>z2@ zT|ldHG&QVW^`6Vd6s)7iiVN|w?fFlj0get~>BrPA|r z+M1=V*3Fk$_UBBN%Is3qtER4sxLIa1pP4v~HyR9>Ryu5gyY8SCFqhwck>;XZyz9vE z)UJzvb)r$zU8*vy%XL64#1Z~8^l*SIXb_SoTdE=<1jglQM z%fEx(XbknTv8vPNb@V{YbCX(!)w*qG6|XyXTqdrq+Ia(b*PH%&kGUHZlS)EI(K5;F zucYc^>J0yOQfuG3>eu^w#2v`nc`4dPnavskWXg1JLW~7FU3FZ;HMM8oMN{dHYn3LI zIr`#LoBkOWuA2jMBqaU1YTnLOW%KbWZE0h*cg{6eN?T_rzx<87Q58I zINGrUi??kIwru|ag%3!Ygd?{h4e09(D0!MT>67`j&ujiGAudamNvXSN&4x=U?&I4m zy%~4)PK^7}GpF_`H&^>DF*DV$^5V#F8&VVPJHyqYnB*D_N zRW`j&$15rwFX-uPC34lB3VyHsEYG>YHzj<{5mL^$7l{$%610hsVXaVSn}wB5rLry zdLZ^nNq5+Aiz*Rm0Gs;&VC-3CHa{|xtc+&4Mf`(b^Oy$&zK584AVL2YMN&*bTNp|Y z#}TE-d@tPOd@elqQ2uSaA{^@BYzYTCo{DkHq9&WtUC_H2Y(Y`R0>rSIR6w}D|=R7wlPf151_O69HdYYn;W67wnOuC%B`JGkx3 z@zNaGOEFoCnb$_!9>|FrdIf=szsN=Yn(p`}Q>0>vNC=K9Y>299%LVkvoEqt=$FR9^ z*J7oO+c2A)?Jcwrhgp+Ey4tjNWlVdU@SfaCwS*Qa!P>7WZ{2;qyWtBiDDb*L50_1( ztZnGoqlN@F#2%e-omw=bwUb{QU59T$##&USJ@%?&L!6mD5N`Um_3NuvHU~dd*zXU zmBs{bJI-xkutlqWXS5DbaB?_w4XE!Mg3U>n*$# z=O^>Mf$r?_&ej2E?e41%!OVJTCNShXzgf22hCz$>J)coT7o;UISFquWq!xJBH^7ut zhDeW2lk@XyCJ{n`pQVbuw27M4+s1m0nM%8WVwF$bWNY%Flg(m&R)s+OrU%g z?jpSWw8kHab0esab^xHzS%{?kG$<+EnSQAryqR#?5+k5RHI~vK0%D5s71M1dRVJE`y*!l|#miie?JjCeflcc+)4#a$VKzE)z*4#o zM7CMm&0Mi?DAQlJq26&FMbEB@bRKG2!QdaIV(Fhy68h8_k2!>r6FaG3`sUsb5PfTr7erqf8D(GM^4RZ+-!6_GUA= za7cn#ugOGp4nbLCaV$I#A=;{>YrL)FLg6q6z6x1pn2S}8P>wbV?g1M1Mi-RiK(V(Vh`Sfa61wuQ*;gqa7;n!o)J+(yxa=bR!jI-H(?JJ`@| zl705X$2Y29s~gmt)S^r~UcPY-N@2=Ajj_>rXUu248%^Ual+fVAxhW>PE2U@OTScvk zYAtQ5@J4*fqxpXGiEv(3dEx49iHKD%Nhos3#w`JaH??l$`H!FSzhJL zhwk^A5%D|2<3Z!vxwaXvxbz0Y!5V&QJ?OEd(c42@lZr~?dQZ05=uZ7Eh}-A)hudo$Iy0b&s4F7utqNShpv%i4C9p9DZwh zxXFEiSdsB6XMeh3&kB7EnzAc1HkMX-zm|FfgEt9DEAA&i-5lCn(d-}XIB2@nWvjE<0_EYRq zgxtSCN$FmK8-%yAzAie(UD3S`OIkg?l5eZX-@bj8+i=nk6M7B(qJYBQAa{Lr#@i%U z?aMuhd&&DFoDDS!>bVz`0f?Tz&w|(1`yvlhBWJM^S{ZwPj}*llm@!`dAoRN$qj6g1 zp6U3x7_^Ib<{KV_UyO0 zD?-SGU2`Cu;eFVyhgq&{>DI~G-eTtgv@UGVbI!(%Y@j<`*+Q}H#?${C@VcU=S23GtVjf08Fruelix=Ee zcg^4aPPUlCID2>7ieaMY+~JoYxk_OAQL8Hie*F9E^r`O$!nRTY^tCPBS(zQs!FZr) z$HC3*#usgrRcT4}7Scf$Dg6Zy(M^ot-;smiW&@MFnlcW5nMDqv)?Xr?e@K7#QRI-- zE)D5r|Jw#9hA=w?A$=^M9W!p;11Bz`K>w?XVTGylwryiKeIO-v#(;c&bw{v0;rkTU z0w@~IkIa0s>fyls`P--wI)Dq7~R2Te!t$f~P64BV=J&@SQii%DT zq&8oT@=6dCR{sg+y;@l5u*3$fqA1OM1+??7vCJiWTgLJ#3=NDkWh@>g`08}Gn}w_I zpQhd{Ng<52>6d6WCP)HXBVr->^O3YmgejpE*J2B?@Dl4`ukf$4*4^n#SU9>2QwDgA zE_UeD#;W3D7@#pwoAMW$RijK9>$@at7GiqAMRX+FxN5wdlfW=syGgu*NU(*FEMdRj z9z^3srF-FTAoV!|52vQ@Qqo!XNIQRnt`SCIK&`RY+6mNqi~J08$t3{MLTT|8`ASeh zw%}Kq7qdgG=wP~stGR-J>nzt~SMYafdOLoX^y=`HyIfpk7u-VgOBLw_DpY4ZVOzG~ zwxjwIR5WLUpbUKFovklfgKU`EOvD#ERjnDyQ!Yv^1;1j<&*`w2Z$nS zHa<%XLKFm+>4os;ELD?5$>|6GO<0IGRM={RJ+EcO5EUOWLJx(8EK^IM>C)voJIYHK z6@1O;a{L^RcPTW%Ix@EHo#aUB_k$1|&&*okY@=z51=P+br%pPciSl#sDcTQVwybM^ z^lHT7$bU6{S}iLP_)@gi;ZbE(5*C6pDTy8PWh~K>Q?z)v$o$JQ*$EzPvQgSghHWf2 zRA}i&7St4a(I5VZ^k+0*XDSD`X>O3b>~?P#eEYdeY0x9j(l!NXr#81V+1!uo*>Y{u z+^Rb*vT48RGn1A`g=cz+31ySb?IBXonS?M+Nw=J}`N+yk8lkKun0JUoWrZ?=OM9=G zW{z2Pbz%_9d+jY*jdt;5Zo)*8i_Qi%A%T{X!76MciGdROzQ;_1+-*1aR7l^5YRmfL z?0@IrgN#7*e83BfM?@@Bt|AxQ@4ZRfTXEz=*oNtF_KG=t8zOhYSX#(&%xHO+88wXl zi5yG5fT+66SrKTlM17Dk8eBF}J5iY?JSMwD1ywlimF~kN?lbwIFU=jB7@f@I40rP- zDMvu+*tHQ;^we=TY&ooR?is@8Z52deAV`zyuWb+(UnzmLqUMk|=fEf@q=kK+y}13y zy2BEMZo;@8?`uhOofY!YQ^`m(YLFV>`+c#$Oo0TLb5`=^N*m(}DG-Ei>k(5QmE0w4 zN(_ScGUmHblmmf?hrrKNi$70s4S(+){(B3cy){E%RxwRq zmI@4a7E3F{?2ZzsEm0YVIir!KUZ9oq*H1q%Z_KKMq8UpH9__ zR`P6-f)5|R@5_~t&Xi5)(djLgau4|^Oe3VH0kf8SAPZage6dt7T)ZAx>)n_z26kI1 z3fU80+2G$6lrb}iGYgqv`nCzI5GCLI-J%$wKdsN_j0(TlnA3(AGAK*D_LDl@fscf( z+YWF533Tx6J2!qIRh<@DB=P&-0FjtNA>HNV*j!Mvi64$fAHDkLNn);7<`jKF`Hcl1lgG`_aH~pFSP)J)CQV` z9ent*)+77QsCyX?HTF5rXq^)D7g8i$!)<&dQ8~V!fZ z);97HzYl8hhvJDOb`{R^&pZ1IJ)Pm~vJUe(j@b`}4b1p(+}JIX9I1qcN9T_B`$%+w zc42djl|hI73Qm>#8)Ki3+p9DURDuuUR&k=cl(L%VJQQ~gf;vZ?uM{D5qwBE(*Q<)y zPWBb;_Y3za|LWkg8{PxtI zE!$Dymhan+%ZVL3{ zpT)Jf(Co0oNo z*M6|<-b~cL_5%JfK~lQqbewH-tmZVjT27UbEa7!E?i&w(p;AQurjmcMFuX5XZ!%oZ zD?&ngTf_net&*>BSX0qiy*>zvUmS$xxVA;lyCSYURHO(E1iprBSG8alrOEurZt#tx zC?jSW_KH8EMnTZkJ~bw_>FJDBWs%X68O0oJ)Id;xaJ#Y+YDt%xI8qNwrZsJtv?dq-oL$aHgKc2)K|k11KA{gTz!^B0aM1H-(x}P=Cw^G47~!IH4ej4zKkBT z_0Dz=_KBjubZ>`WoNynS_@u0}{v_ic2o;WKaSax^N|Jq=>6}?aR93yU;cdgCDv9VC zHai!3IP~sJ1fUYwQArcmbpTT!)@zBhvwQm-->N^yIbO@&e4MwDz>ZwT!{@IDfE}jB zA@%`(eg6^6E?1`3Sg4Oa*YG4f4KBQ`?46qn&+zN1Uxo}+ zwdAE~wm2Py=QjvkF{@vX_D}foCn5J4sCPcf>51>QiKpXSGVCkdUNvWp>(u=Yi*M^* zn?eeVEhA24-s2g2D{=yc|4F18IqePYMqBuQOqW5O{PZnKdhM-L22WlxF)FmLVv8%L zNVK~$5N1=YXQPYV`jYxr6tY~*rf09-`~i0z`A_`P+UnN`DX-7z?PsyOBGJetGC0kG z;EemMSeTYI4ilt)Y0{KvE+*a}JZ|2pEVmeW)A|4qL;ubP9b~57h|J-=s|yBr3^VgCajcK^&$QPH&PKZnszMcG0NXF(YSiSkHOXcWE6xOa8;TJRMT zQd$DP57yZ2WXIc6s%Jg+2P0=t`&(V9V*DIPt1`*JZ2n00xxMf6Jxx#>Hi7~vJEbo*maiz|fD-elN$l@2xe5^!Hrt?9Jd$kCBz4_4S|yEU7SMM-r&;xPC|e7bAmxXFFOWIq3v)J8z|Jb(5wv3|QkhKa7ANUur`H968AEOgyV__m|5{nc?{avS_X!*S2bKEj2n0ohPY z;ECJjGs8y}b|+3El~G@~w2N5p(#56zEjZ6I99~lbk{Jub3k&=@ge8xb(Fd=P*hkX3 zGS;&hswwtaukxVb(OfnZld5iNYXrPr6!^hP<))VknKuRU#Zc2pL1%IXI4mg6EwX6! zR(y$d7k=)#Yib{T55$YT?qwM%O>FOUeJM_HVr%5$9aqCjy1nbVoH+aXC_YGv)?ZmA zOL;C~9GB146;?#9ertu0k9^667{|M@nHWr#qickbIhJ1u4A0w~Z!XKiP^Mc+39l7CR;e`WKHGis?Pz{Asy6fF`y>3x;K&buXyEogC&c7P+ z(tbEj@v@hu-K&0`D`^)za?|%w-8CC#R?TKP;H=){k`|h1h+MP}CVOW?h_88i2T%IT zgB}K9)_%Df{U!0wIHeCp3P;quW{-TqEQe`(p&?veX5jZoOuRaIREmNA>EZcD`l6>q z;HR6tvfoHVY9zd~%m}O+=faX3k@9-nwMBS~$EqHkanX8)w?x?weng|p1Uv7-J z2D5?jV}dzFo~dg%X%ELf-(M9W`E@+$jkfY~86>}%1t+};jkO=6Ikr?R6HILS$x@k>Ev{VXo&%@Y5;-u!v`sklc{_?>KO`?$e>u@2||^6rM76JMiQ?StOy+Ot& zGGJA==h~95`L&`&E8!vgop7lvWA*-HPu{0b;(U7ZQF-2-*I==g6VnboG3#pg)u!^6wwP3AwvG0NAjw=RFol48JZG&8vO*e0C>f-+M4`P#n4Z8nD~Y zS2?%2>7T^mW#7h%0LyHuW|X9V0ngr(n>^aShNJ(ZYa!~V`?BZ_^J#ejyu2Fg-{&`z z)d73OftKQg*$=s`b=EukyM=8#s+)T#Fr@RBl_J@X^Fm7ml{U6+9By%;MQ+3r*T#%&zn6$C}ApPGEb^x`wp+7SQ_ID z&jZ`=YH3kFAwR&e;z@<9=Tb`37ikVhP^1&qqqeI!Aa3o)@s;qF{dsn6X2PKaY)h)5 z-#*wVt-s$w{862t=$c`D88*8N%c-EF!sSNQeuxxoU@B;d5<4u~V0Wlsqoq#ypjap> zREQ@grz@2$q|A{&XrAL{o2VO_*p5G$5=uX&Z-3tm3?&3|q;GaOXYYr-3?zJCh==pr z7DLC2^Cqv&oqj-)0zm&=yjGdD8C3-cwo`wTrJR!2QP9L`+ir8UW6wNhC#kzjTclYk zUifk;h!Dq!hYeLxQ(8^N*t51_;!^pF3lgUvJOdRkR)k5sM|<}#XO098_Y7QNxz1{Q z-&}pZ4*I@n?fm71&U}Swkk64guX_S$zvGjBhAvlnghn4WC>}8*gOu^J?C9DohL6KH zmQ4qIuS5ma-Zi{J_qh)TRRo!*smt!`SZ>$CKVFFB{t#9F>#xa-TNDPm!TvFKTe7}G zImVHE?I!q}!gu4>VVYGw=aOfI?r*!FoxV1_w|+-B z)+K!UdFc1*$zLItk5VAe7``7MYI%ifAxqz9R23~(68_$9)Y%y@V6J529K{{7U<~z% zSZW2MeYd5lAB8!rz412(RV4nU zT?o2t|9$_`+;85O?B{oqzMie62kO}$8rHUgB9#AduuD+6W1WM;4M?lfn0_EbZ2GJ0Hbwb&>6`xlZOsL9GtaZI=g3io}FQ_J~$>c>Tv)UL0a2jvv{B z9gp3A62ie>fKQrY8}=V6W^z?!)DCC1OUUs=7b+OYi(I-x=IaUAdRl7ZHj=f|zY$gJRP@2PRzMdcI_gxR=1 zxg5{fDC9+L^jY3@>ec=4h~@3p)_Ej_?_v5lgV#BVH$YIZhTdAX|=j_d27iqOs^d`!+P?@pG z)OA*MIF_83HS_2oE$d-ym#VPV#U(=>WHn7h+ozw`u(QWOB&(uuasML+x_;y7;o~uS zlahv=aToI!L=06b`R+@A--qQM7rsclezP6orDa17oHfExaxX39phbC{kqw&Doxch_ zGuhK+igf?;6tpB4Tr`@xarK5c)-3B)NYK(|xK3(xjzsFykvKJ6Fy!7AhS0)uTG`iy-CJW_+~8k?2!&cP{^-ghTgK7J;gNFLCtM>}UB}Kk*7|P4ByTiX$XJ zs3XIXUK;!NnQY0R-?m2sO^##(D@zhaeS8X;!B+r%<0KE?Ls20%%!CK>hrc0iagk6l zXSCALJ@KHpNm>Cf!-9N=HuWT8V2=W9?U3lw9RfzWcp1qb?c}YB8Q5h3!}G_NB6p`s zfWt?6Yf&^o7V)27o`p+VpNr}zCMDh24a z$bTqCO?Nl|kogZU_-lWHGFIIG6|jJP9y4mi#ES>&Um&|cErxn`?c03pfQplO&=YK~ zOF%P-oWu06jhnhwc6Md-)bWI$_V>jcr~jHoSEF9ZU1Hb&Ia%I)BcE1?kZ~cveXK zi9N`pWyWDw29~A#oO3;W9J0v({5cp4X4?m@ET1w8a+Ga4e@afk%%3a~LA8KXE$@lgpgXtqdjQ}<)$BXGO2M}jYVJy8pAwqRASm=#`4Hzn z+P5eqHL9WVmx;0jG5UxX-Z5o)wVyrGPdfrRA2_N;QmZidcsmnVB*zv!g9|EF_;?9M zVwRnHhIp?BA({C<0KgtX$it8p?7i8720Q${*<=XAHoF%&oCYDbO!=^6a)PhKL-?B7`jlJ-q$sCo_AGVD(TQHCa+NrXDmagNH^5DykiyqGw zVfiXmdC7ad^qb_dg=jMEzcH*C*<$P`^TMU=e8#aldgx3-+r$tPT)GX)I~uQ3fG@9t zWTFH*+8)38I-gB+4o$Zk%LYBxec7MQXMu*9T?iS)#j4tuJPeoH%)ORvHUyQ>K;DWE zUj6kN+uTv5O&F+9J@_tXXTe&DBv-t$Nhpep@OoziES7KPu_`3-yR=}{JPTU?@uET~ zFP;H9rIF;lH_q$W$Wma-B!EqOk5<_n2{|d+l`A12(W@&ia8d#7VB)EOJRkP6Xm~(S zzWa14V!%F>6=!fPR{)*k1+AWf@X@RgouBLpVE-Xc1ej{vqp=b(FL3CF*#om2FHBzCPTr5?pgNA^oyw;iftUI|@KXbX=XArr9bU zL~J5w^bl+u{Yy!i3xKAT$C>*9Q>pY-EX8m`A0!(qVr_e>h^k*y#1U2#hkzh1QKX=OEfig3ym zX=yd!onARNhja9TuiKIKlXQdUl15oPXJaO=uWkJ?P$Kx)D&wEJI!=ESl^*}+tW9F$ z_S$DNsUE$FK713bo#4}m;!{H`5wqoc`2e*)AI>fGn9Mi0-3?3p-)Zq3^bDW$W16;S z_>6X?awXEORGFt;Acr9+a@1}gHoVzAk2virQ95L8x)kv0Pug+4XHhV^sg#Fvp00?n z;`Q74X84QmVO5B{j^Aq^=k~O2mHrns=SnTv{6IlE;pz%8Y|{$c9oys}>BAB#=Tpel zx*5j`jG#pi&VdmwVYas0uzwMn+_jj)L*NI9JvVyQI%Y8^s*|8TNPla4n73UJzIdrh zVtSslj{XpR#z0`q+H;LvG|0Fr(9Ys!JcPTC+j?Q(VW-651R4{?AQU_BBzVdvr}3xR{TQqZjv! z(7*P*@jY#rg|6uP)~%M6ce$*y{9-!{8!>8yC-beQa~;CNgeGo#b?kBtg192vKQwP; zwp6Xh;=PwncV`h}VPwwiYr(k<;ty`L~Y#fw_9EK^B+)@yKr--|Z<8KyCGvru8>%LqVhuO-Yqups^WOVEfb@FXZC@NXv9UcNrC2ps@wmD+a&4&UvD|5n z)4byRyrD5whv3?HCRFJ>m0LWS26vV$x>O{vq$z>1ft=QdtW6~xB=7$5wTr{iT4^E> zOkE}U^=Z3GHW4gSY+2auR%Kk|?gw`FgX^Mx=O+{o!p|hMG@zw~J?*mJ%nUPPB0$1H zZ}*7>@BZf68&;R1KHiMr?|VmkPo~w`8}Okd9r`0h&Y!sWSoOmB_*CwWVhbOq+X*S| zYefpTcW$25h_2D7_%8E2qaa$E?c#OxvR*pGv@l9~!ErXh(cvLRSgd+c@-51v z39>*YcE5@@GCrB*7sD1bUlogB7C+pb?pdFmZ@`ar&5a-(-S5H;<#bZRPE2-{VRb3$ zT@x?ivR8%zk2mwpYUwf33sJ!G^X7lN_=UtbqVmjnoKDcQb%QyoD+Ya#sRpK}+NmQ=1`4?DG2OG)8M*IGKZUBD!)uIsif;Zm0K^?~wW_5~UWF?SpZ9Ne*$Q7f5i zj|4Bou0ev2=ysPtFOk&ODCL&zFP|Wc%d8V&#J!D+bNlMq?rmr*EBp;x&kl-`ewO5P zITvlxC*^GC^PV2rBjeENYpj8`PrTZKd*a&K-Kom}pqLlq51z;V&t6ebisM=3g>o2* z$%1mXZR-sgQjMD(_Zv4uf}7phSRatuqix0|2qD4lD#(H>Ue37XOxSP`2*ur&T- zmKn#(mfVI9*~3O!kZ{IBh&4SX;sscBS9_KBYzc;LdVBjDO8(bHAC9`F|b(vR~bU>{$i);Y3+wYia zd2Wddw-pZaW^+eR26YRw8K5%j2UDy~fe|EJX5n^);%{|~x@|g&^#tS*m^GRYz*;OK z3ac24FhioD<`k_bGa$lQa(|%$PL~mGyZYuf;3t|mQG(xTAQ6jM6^|JP(;aR138zaQ z8m{SQnN3b=(^H>^y13QM&2ZRIQZqXOVn*;8(y<&5B$*1jDapo@ha29-sWX93_PXvB zqGO`5e!TTmdVMwTY(spoAaqsOE+@-^vuI85Ixu;F;+1{NYZVnQm!UG`>St&DT@oUO zg-uZEzp|VE8=1Zk^1=Y4G1O@+Jbceqlk!YFm>Mc9=`P`AzSY5hBhnA{q2j!LAee?#N`^d(T3h zm`R{cQ!qt;m}L&#^OJ+X;F?F(h$I#cChzM}7oR+ucEqz_#GzTunaFYb1n1`a7xOAt z>s~K3tNl-9@F#PuwJYyj9Utq*!!IZ?i@rpk zZG+A2blgwY6ZQkY$z|6}nQm#AW#UQURuh~FT%K3c&fa%6pBnp6Am8Fg)=sf>#Z#v2 zQBM#CXFy-d+jc-u>2r%;%AL1y_P|?}?OAx0ic*7{Zf1x<_LXAMEAdZZLX$=6tuNXH z3MrQTw8dA!$BTDreTeP-qXzL^^%EtDNq$cvmKz|@PJZ{XB$s|-4<@}d*qqBR?DiTZA0x-&`VY$;NaKsjtHN-`SWl^f{z2fx zs>u>`GqLFp$aF~kP${KNQ?eJjWt5Q1a-DpCVH4yf5aTWb4fAH} zdiuZ*pYFYa*E9)t;8;L$W(wrdR!CxCFn6okD3bDTy;9KLBB3<9Ib&4Or-MIU! z-N^(_jZMyYey}N^=m3GV3;12FRee&)bqU9`POyc)RZ5D4}YJ^ zWPZXfeh=7os(SGc$(Oix!RtHIiD=qO7S(p2$h!Y2-hbpbleDA@l}pHanp+OGRiN6U z<(4{~clUA6tnLTYm@tU?i5XH4K5baAHr=V85l@qER2 z^(n3=pH^L7*%DLCTxKm>Ql9L$L@jFJ0$+v;Pkv4fGm)pSoV#>m!M(Yr|ctK%T}Ztmi9k*HC`>Mt6)M0*BJF4Q}C~g z6-ILc9>9w`WRL{VY>oJ$&4+3Uh2XgQf?I3ua~e^|gcHzeyPaUfMkx88O$5Q9kp+L0*5bRYB!X{cm)eYrZU7 zXnrERjqzN%_%UTXre*81lc$#TxS-}#FY`h&p>Ev>7Kb9}=8&o%;BbWzvQ;Dq)m8Fn zX8fE5D%RG05Js_ZYY31K=>FXMI|dzCYLx)1eKS*TjZ$7;I%H>lzKD<=mD*(0 z&N~8Gb6p~VUyp~g2y=X;KlF7L(`PA6{44uKmaTD9QF*FZtq2AfWNYn;LsUI@r!~!N zIuqM%Qa^Lc=I7Bp6!>)i_wX8B`e1S??G1mrv>34qaHKCDch)YloPFts`u4hg!-}pp z%=h>OFoU#np@4v>_yOL7(uRG}XV%^Je`*EJyYofqU+-lX1q^-k+a3yT&vu9}VKfXz zR|^RrUIxN5vzW~f+G^gUXPtfJv#yW7CmQRvuRp|c@m&)}n8w9$J%f{8qfZ{I^J9i8 zM=g5Fq(eHp&J2yA+N;fc)@lLBE0Q3Gx(`FJ$#O={Dp=5RzYiXtH$;1=XBz)UW+!EF zsh%?F8k%@)np@(9PwNf(rgp0VM3k(1*yvuR(C=dOmu;jm+zGbs&c&+2v|s`Jyatl6 zM*hZHwYRT~h|NaEpvtlu{yFC~(>e`NEe~E_Op>O5o(YmJ*oYQP0X~*}KOSpu8Dq8d zAs|hu)Ahu!7hLT5l8z21Jl>KQ(GRjf=Mq3m2AWkUPQc`|9Y}R!xZ(Zu<;WtOA$JkI zCREuJXAztwywd!^nmFP?y@sXlo65(IQR1eGT?N z5rcD5=0`Y(>U{NHuA$=P#+wCb1~JHt$fbpxA}e9J4~<2!!j`aH+`%wJxGc*CjP{leP12A)s*1Qrp(x?uxyR67qH0a1^`P}{??)k)Tf zS4CBFc}x$n#anKy&l3ZW#qMn|8sDDOCBpCB4lkdaPitGf{p|Nt=u>9b9$fe9OOvb@ zSo+m#9W+M9M8SN0Ri7AbwN)(k<1o8zWGvq7Aizr8t2Pzci|4#{>2*9nafyS8iRgPQ zQs#Gapl?VsXv-idayISs@zC@k=bd>Kp2o<%@T<8O0Z&P@-_uDr@doz>5+jUNasm0z z=n`_6{h~72EYF=(j9og z94wI%v+h(h4LCO9^x6IfQ0@_|15zf`PX`bB1Ch%H12ioMS%OK z<7nYhk}3tXlUP4)_?d)B91uBbYojhBL*<+?Be^2>q!>#&9QD%i&+$-sQ_I)Ci6*2L z&-?ut-Y(#S;5z(pRNXQ^!hvs_9Q#lLxrlu5hi-5WMT3tsIFL;g<)?pu=g|!_Wl> zCvTMCJDRaJn2_<0px2X!+2M$@ALU7s*uEB%**(Mx+Z>c0TT&lokz63kHngdsp7Ob$ zV|&Hgi>WND<}cm67vPWanP*&xFQ(0q6!Qr-<+|tpntek$p(Ku7m}I^cpvJ%IkSTK!jDC(V*^PfZ9S;&35}^&S~!NJ0%cb8~CthL)l|LS;TNmp0kO6 z{U_+>J})J$S6T@MclHe}1vt|iw_Ph91@hmNvi+~2hxzfbu+TUfBJZOU^ke_M?YAn| z#;pt7@i$qTN1kwDUMXw%Dt_X|z)j=LC;h6O{#vFA&p*ug)SwiS2$sE$%_`761x=1h$U>ue2MS;QpF&lD{WL!%ZDrS;9ugr z0ui>Ows$XV-m_By9`K)ON?O~T)fcF$S07~pG!bbE@$Te9Z01(~y>2|~ai|v*Vo44f ztXi?w{#Fv?5n@Ka+97j496;^nx0GiW^%Ir$c2VQeC=2nWhJX9{`bLgl-D8;`XkVa) zF}M^uWTBUtyJ7l10idI~S7j^T8ie7ra1LI3YgE;`VnwE3 z<${(`wBJ+9A)dkmsai#9c5yyUUgSjBlBtjAS56AyC+5=@W$0@Vm1^HSb)DOz2R*=1 z`_t!Yo2|mx`tpAD?uOb=n=;R4$OF$#oZ0mtSMNqw=38i5cbjo)m$$npdXJYjm?sw8 z)Rllf!ncs@j`o?iu(t04Yyc;xe2$^K5I+Q-yX>ubLvQ6$B&|6#aobxH`wepDiQkQf z^SN2soI?nse9ppLg_ucNSb@U#h5EVRW|Yc%0N;(E6$3j-C#>on@%cc6h?J9#(H!(D z`@*nNPNl)9b&7Dk4DD}&2HMow8f%gL(Ej&}0y9Og&Tl$Sk<0Y7cR3E?-GQy=`CH-& z#rD}>_9qt$#GLW8(Kb*9y~UTuz;e3Q zG|6zxL^+;RfxR_L&YN6Yu<^0D_5RbeLl04r;v}OZz^{|`Gw^F=)WqX9+7%58;!1UI z+MS7i1a(o?pTvL}tN!Dwkd{<;jYrvkxX0T0i{b*!ByMs2x0+uaZt6n zcFwDUkv$17$HYw;&AB_aoLrVfX=aB6ce7{)<)gZj;*YBAvA5bu%4nR$uRakpcfpKh z+}Pg0hc%qUqqXb)*%J0!g=wT{=&OQ$^{u#WcL5L`YU zAtmX=5oD^Y_s8G)&eglx)VgP>z}%<2)KN4c44Sb^^f^;!KL7VdLarQq&8=436m7l! z-Fc63Fs?{MJ7=?ED;&m8Ad~vCU?WlXKHiLXgVl*%t010m0Z=jV?UeJl7OY>GaXIDi zrKHSUhbg|Jvk!iut}Vl$`cE3vaoI=d`7F;<_p2%JWBsdlxVE^Cb>wSv&H=XDp^(#kQ8cB98IYUf zdFHBGmqzQ?XO3naJsjuL=yD!0qb~Un<(4bFU8a!gWj2~yS_7xWEL&cvq@b#a4I}QH zR=)JhbxDIS|E%$IcM{cQcUO9TChe{dYpoEIJXnIaWt*83i7mAf6_9Fulzy$k@DR_a zMYpvb!pJzIbp{q`Fm2m;>pJ!~bd0~HEZ)KHz@*5&pL*SRJLJYw3RxTMOyN=&oj+Kr z>5NHjW_$vzoEueN;JoVQIQ;67xV^-6NO$rK{d&qb5L&1R{O|YfWD<0) zp?UY$Wk{p{eSDBOG{P;@p*6+!ji@=m^5|Yazy7WFS!WNey3}%LHx_UGPP*st(`#a^!IVH^yK z*=Qe#{&q6*hjls&@Qvz3Bg(f>#NA~V1+f29=oy9H4E^& z;meX0xZbwvZW@il%dOTB;y(jbL|i+~0xaeWAD+_|_%#e;h*KZHNh|ZYA{P{b`Xl-H z#l%#WV!1qjuJ_VTH z)L4waG}zd3Q2-IcjN;eFc7Z1#OT3fVyoA&a0U;eW<9JLP)(rT))y})4B0;fF{}>l? zdF8A!;GkIXn^Lxm#mgcA|45-LmHs<(MNa^k6r9NcnMr9~~#Lx+8!yG*6( z$}~@FlBosU=*jf~g}v~A`vC$|@(Co|ce~8?$H1ran0qd6v)~)q*MQ(cTl!LNXMQ#J zv(r}JZkc1Wfca0$I<&s2`hWDi@rK(ns`RezGUsupp-`wk_6Bq0_z7PP;Z0hmNBv3& zZhw5G%gyCCRqu>Eu;p$(KhoJ&J{vi#sPSJ4IN9G4WT!rwFk0!6+Vx3I^krTkhx%eO ztdN-!+reJ~|5DW_XotxblW#F;k_fnE{*qiaxELOAubFz4YRn%a43T?6TOGHDQ7L;Wtaz>z#EigrHgW83e#b4=wrYWP-LVu7oq5gJWI zNKdVWEdV+M882Dm10(yO=%J*SJBYDL7}t+xq$f>eAmp~a8eU+2$+X*=Iye{wT%H#{ z=n7I&|6_=*1$FOV{r%sa>_EoJihxIyc#`R`pVWhwhd(K9J7tp7iLM!0WTzFnAc}Gl zn*AyfdP9GKW_TL%?lUzs=)#FT75RyQ>Jn(5J;APdKYue_p6jVmrOaMjApK0{bnMxC zIt|6=QmsQ4u1o7Os`>LU|9L%O|Mbf8>_V zCIto?^&QCVmaA2+MK#i~>AWz0Z!^U6v#`CUV2x1O`jH!+^BT5tse~r~pYk_eUHmf5 zU4|wBsNlIQS+B_GtixK!uue(iQH@-LUXx+nxc{8TQLA|aM?gEE1vZJAvWTp;V||*} z|DQbv#@m4RUe&_aCr4wh7lH(OKRfM;pyw`D+03dhW}X~S$^K!imBFy2v`f@6oo7Of&FJ&vt54YM8tG*yQDBGdW3z=3eap9 zP604~bz!rALG~)Q+EAdD*4ii z@vFCZSmG8(Ptr^Q0sm_7RWoV8powcs!ptIz0bb|y9{Qck{Ktn*_{|U3+Z1UOohL9L zVZq|C%z#^9`FYpw6HH3lN_tzK0lL#jpi^Ub3l;)GXRybT) zG>I5~aYrM_j))$i|4yC0JnL>kmY`W1_V_BkW(_IsRczk}wmn+NQlDI}n(VWLF9jq8 zH1MQsfLSMGv69j5j&4GeX0Deu+jx?FXWcdma+ch*Dxk8ogpGgl(sDB z_Qt$)BCNIQAFYA&I2v(m>BaP6ip#IemeE=iB)NS>cuJVs;WzAN`^U8TA1)^?XV z!Vr0sI*-pw5tJlArt(?aSaF8?u`|6X_y{LE- zO{}$X6jlO4K1H6Xc4ztUhcdhO)5sl2F0O14oSP-oNMf z0e-h$ux@jOo#eN_`~jq4Ewxu&YsS0J9lb{b)Hl!?J)b0?@tJsm@CX|PmeId({zqWu%!|8q>!%7dq+F?+K^D5Fm&kl|xQ?Ypb+AlZ8{dEV9p-biBc|QJuiIv@NX`y-8k`K{7WE2|z zhZG?tbnR|b^u4?{!Mcy*6_?|$*zC&ru4EiPw*LPt03dfLw6*UKM@CPE=@#C+>t@*1 zP6SwlVM-`6Y_UYh;>y2G=@Kcu?WY~jwJhiun_h#89Y&N}?Z@?m4zu4ZFe(2(f>xb# zgWtV}ZUujYSOpI2^J(fP)X1x=1*Ec8sZkeK479UQ$VIMRKr+Ya>_gY6_-|pSNeNIU zoBm4x@5B0g``Xj%;TpIP;Z0{SHW3XE(gb|vPsP^ZTfg}IE$W&!_2t+NZu z4DnM=|6XqRc{gEH3Yfd-=8UhZ+R6AN_Ku^fj!s}w>5(ZCv)c~2b z_q4O1xfNA{0lV8zB1r7CN{Swmr8%fvTz9oO%C|ToNJcti}}V4As( zSkY%gdJ~vz(p4;u){>d#^rF~S-@8a`CIXYec5Ho%`c+yxvaYg*?aWSwXcqBW$B`t+ z-OQtVi;_i~Hh+JfeHPj7NqN9xs?W}R>k<)z4+EdZE%!vp!KL1UKXtehBCX5oR@0a>vJOX=$L1wm$kj zVvodfbGTVHP;CLvh%)n92aq$`eA!kT;`gR;cV_8TGr*EVwW=Xme`+uYw^jC`U>mq! z^&d!?h=t`e#iuzq8`+L_y`ol1lba!u?p$2Ej@vpEs8;yr1c66c|p1E}PqiLnEdwO<6oF*t{1SB2yX!ZT)-j8NO(@%vE5JPfs z;FQ!<8ItVeh;=xLERlXcfCVaW zO)e+#Oq8YE3r9v?*ABIwWO*B?ff~jJ{cJwOq5D0H!s2z< zQ#BVXzI1(I=X?o@)H`W&F`a`rZN)cgMlx3>=J!XERK|9AeV8BajIXXqO6wb@@U)gS zhsCYlBwWM2Htcec+H;`xKu0tQO%Oho#nZH) zGYiTE|3#oK8aJ;R0=7Lz25+bVyx%XFt+cB5irdoCQFtN6Ni0JXTBq2W1fraH@4XkB zJjixT%^HX9YtP3F0uxjU)AbKbRT2XI4F>_)MMgoyP@ATJB+#gq{sfRN#|cpa*8Qmi76E~ilSL_TT~eB z=>vqH(a=RMjeNLz{A*^cG{HNS#0_dH+muYy*46qbXn++*a4GjGTF`ZtbtM4L&hh;k`xpeeJ$1>PcrmBi^a88-%cZv3t|n4QrvVNy@pT zW(hm?GjEAF6lRDkloK}n+kE%Bd}1Ef7-W32Om`<820{_bhm{rkl8px>5CDBPF@%3Z z4;IEcAhtiY^`&3%T1hXnbGX|=Qx8Qy2*k_8MTkBA_oj%FwIpUUd0j3|+)=%);V4@; zhS`3yUI>d}RuE%@Iq}7|AU}wF?-LU;==5m4%j_oaBl5ek zCyLn5%MqdS3$cVq7kk&FV#_#=ji@tV_O=FfW4Y^te*(K>8JInz4gSN`G@2P|B>kHD zsQh^vA;`1ao*ROxTlelyd2lHc*fxJFrZ%;#q0ss~huw+YRo|kES%lqEKGLgwKonb{ z;IzYAHa4KQWT-{;xJg`$nC3h!KInN^;g?p27Y!A{dd|Kwma_URC*hB1V-gbSTypr8 zeboxKq+)gB=yhoF+9~xjxg42PA4HYWX@tDG7p;wyS5uwqZ2v5xmg`-fcot2txJRji zUmY_XPILU_@)7;4W?tgZ{9N~aZqiV=@}sWY2|B{{N8SO;@lG(}#5OF%Oyi%%>(LI)ZZ`;+c)CXQ~ z{Ok8sboSUY$8=B*!#cG?<{Zr^7>az)yTjx|EcY!;Pe@tu2(@Vvg*x3!*ODm|Tag(X zv${)_GyjNrJd(gsWpr)Erq0S#^i#z;Tz|!(*A5n$-Hb0+2>e&tdgkfMaumn~P4O`0 z7!0sBc^hMYD0Vc*c}Jco)6Rnjvo|f_+)Sc}u`!&Js|u(X zU{?)o5_IZVDNwrf71IB{y|%l#$yY?T?~q}-Uay7v=OK7tJ^G0Hsqe4Qs_~nMARE*z z+2d;VKdp)uCb1}CxXCYdHaLk2hkKiEQE7KMbF;bVvZUeJx>L1CIfl?Ucy26)a5zym zYRG$s36m&Kd;xQsywCQEK#+1e?C4M)Labi?vjIooE6yln$5vE!5b{iP$O%B%Lc{YW z_GW_;)6ct?>mYJ2_|gNEqvxCw1e>%-tbovf31B&UPy7QO+C(4B%(D0ermc;+q;?Q~ zxq9y%lyMP#z&?nWf|LF4ACRV);Yv|n3fsPCoRki=47pT~7QMhysQ2n27=E!DcyW?& z93+Xpa0%5UM1MODm|M<68|Cr-Aa1_=lhaW7!;!3lE*~ADen(Z}X8r?i->T#Gt90z2 zjaX!WWp9i4iquppbfU+3n!z?Ke3U`ic0AVW5riiG`1NJgV+M)0BR6MO=XDF7VhP5?foeba-yd>(64NVB7|ux%n=+}PIZ!uh&_C#>xah$*(#pMnYr@wb zo-{c+T2LOhfSjE}2qGOF(5&aXguKQu2GudkVx=eoDx1;OB7(Wb>6rgWw_%Ld-r&8{ zLk7pmzi&T1459u&`fO`;pAPDKQ z6MYxP1rq(`);N2E#cjOhrXUmO3z<-+d%yXA1@r2gD@RN* zT7a4V8A6!S-gHNXc`jy?b=B6Q!Fe6ja{@k4{IO!Df7g58cuaW2rTY@YsxhWab&2!GoFr;{b&{BfGN57r zW^-DTkE-+L^~*`9d0%2>?t4SuXeH2nW^-DK>f`tr1Qmvwc9)7!+b?0d4m5Vy{M z7vKGj>R={>%+J#3!qUf<6(VKe+J$oAArJF!uyRcXf?C%~16myF`piTP4r*HsSAzta z#vKFh1z!zX=%?9?3Xl%_?p@3m=ztxz+6> zYq;yAqgXhp%=iA7+1j?_Ii98VT<)wq^kGTwmTRFtMqeI}Wd234Cb4*AHGQlrElOko=F&riZ9O)P(k1wa)LiF<;)~@b=5Bf?7tJ zu?g=S{KSnU2c8HYDNpV3>%vyvV1T7TspyfCdY4z@*xQC?G$R*V%J7rrQwbyYn@ato zM+O}|$+Sj-|5XyzIBv;a)3LhgSM8RQkZ1JOwy@Q{Biz^?hJ80b?=jPB41~AdEU)`? zanD%Qvq-{G$V2aZw>m=Ni#_jf9%pSB;cVV+_HU_h4S2t4XJTUKC)M8i-(ye%Y8SPd zK=@Dq1GTeQ(c=F}*YPS}bi(xg6fK^-~j-C9SNrgKORU{7-mJfre7mwSZHp#xI z3*9qD6Dp^em=1tV>sSnPMn%TrCTs?#7k|A{nsA23jvf8iu^npT5KXe{i=~^IPJzvS z6+M}zIxwl8?413cIIkTkb&`dFAPE`{OKGkX_dajzO~iRnCiCJF$z$oy0L4FW#(6$V zc0>H7vMbRs-Y#_?h)vo)!1K|KUa7(J@?kp3n{N;|-Rz_m2zMf1VU+NB=+QP3>u~oW zERH&cp8rC*_GNfkM;M3~yG@60z}LzD?HE}}zQzwthcqD9uk-v^dpQpj+hsGG(Na*J z&!BvQclfm|TI?v*P1_|B1QmAeYG*(UKJvNpo{?{(vr^^WtiUU?s+aHE__)mk+DHgw zNUi8#a>GCZK{m&>lX;xFk?>=nw?)K2MPH>==Y^c%v&9>|@ph7-7oB0C@x82|_(V7% z8^L!K#9wPAW!>z10qRza2n?#}fvH;TUFQ$|?&tJI2 zwuS*Pth50_JURFnwR4uIT((WyiEgFIn<6dU{-B*44OuHk*b+*b2R5{{0xWkP+5>O|!sq zVt1%=CHBe`*{l{;j(=t%WY16b|%Sv4*jl!P!&uN~2iGPdVdU@vE>A^mtvG8Jq0 z*t~MC6MOBd41Zv1~(P_CJB+FPXL32`TDM_y`iVC!e_S zo4VhyPGZqh2_7;(#iP5qgD?bNxBs`~9~nppK>pHqky zq*E!RfL%Dh%keYkE7(f!7v4H?^v%7Yz^BbtLUOy8J0mhSkcni7ZC|flZ)32% zY7B3i7P_IFUX)Q>%JHuJ$w#1;%=$w`16apIQ4!>w$Kl!7Emus4&L`Avo|%HH@*elw z;nJcC69z3ZlUE_a?;{WXTBm4Y^;la%&A&uG6UQs-)%Ry)Ay&#RWHw>K$MQ{eLkF{6 z0s7xz$On1pzB7(-Ji2aUYSn~@`S@d=ZJyd0Rf?nb^W2k3{EAD|{6(wR$9$PFI)c7j z>XXrf+tfEBZ#|@x!^h#eYv2Uj$v}6p;sKsSrDzL5Sub1pdM~qG3AB|t z@ph9j6qjv#r-U4kexf(4D<83y*CwZj{n7*{&9K>zj~93l-onncoK6WpxXpz(2#-VQ zu*=t7!`)a%2g4o@u4(mCIs4B(C~7)>H?{%MQNL%i7~Q4yPBCS1hiIyJTRF3dYJB;0 zCGjCiQBh+}sDo*GaK_p%l8W@^u)$DdhhqLiiW2SrFViRB_w@R+1x;g z*}Ptxixu8JbJ1Xb%ZPH-Q?P=k4*`cJIKx^D!OH`efGyY%@xzS@n8hX#40ndjIQZ0F z>TE2P8_U(ktJ`cRQe$`}X)j`Uig`GP_=DbU9+G-WTLH9*7VWOkfD@%R@QY6LzA~wdtnM6fsM1cYY}Tlz@px9@QO*A`c(TTYE=K z3INd;*WGlc?_&m*{~u4t^HkOOk_uR_30p08(o(GO@%^;|6?8bLR43@N1QVJwEBi2^+^Tc zJ%z>a-6$hmD=jJSmaY7gobl{Lr%h%jMNW(vFpV1pu_urwG8(gOo6gefW%iie+@@Vz zbEaiUG-4(nnmcF4^D_QKR5JEGW$t*PpFJyG7aB1u6NP9y$b?QG-wZlWfJn@Gwry~N zjsw+z>w_N`%XFe-*l~#>SzOm zD1{yT00^>*OiM$UP|b>l+PExgNMOzgOQRATr~E8w)S+BK9Qv7x_?r@8Udr_8gHhxR z>cORs+5NP1=W`>4%rR`11oSXK0r_Fgfa?zRz1T57P@fUP?R}l7g(2XfB8$67$k*ltocLOG6Te zlX*lKtHa0p#lnZfwMUG!N1HpO+SeXujIy6bFK7v#)w3ft_PCDqpFUG}Lwxm&cS`AW zqPHhRV@r-h`@}ES~Ox7N2-S#l3%`~AY>DVMW#S^E^T)K6)nwEpv zc2y$PnxkNxsc<1HDBtFLQSS77oK?=-{ zZkHH~G?g#^@R&Ve@!o$tcfM|kFY%%!9k(IiXCN=I3Xnv9Dfk%0_cWm39Tv!*aIw6R ze5gUX&mRhxEdOfr645PGslj!H5b_y)Iy&)M?xfRabthRlgEJ%bnz@ zIS}aOK5J6n6c?dGXMaY@{LGKJKmg_uVD2wzoGpEAhRVL8u8+=h>h$vfH=9f` zRF<&feEiI#p27iCPz41`{Ues0{ugx}$k`Yqf23%CER?|BEj2G?X@sN*cZeng^ja6?Pq*C z7j2|bo6mMied>1Re#EdX60vNB6yr68tpECwvwjjFF)&EMN282m-;3Grtld|)zmCbd zVH=5^tE4Qw6_*(0MXv_3Ro!7uv255Zlvs1RIZKB9kYNwY2l;FNSm#yD^kEABujbI< zwBm=EFSp3;$93J00oRC=riYJjk1shMjc4YWq_@`#_BjJg;(4AL4@_wBvHJVGd+;f4 z!<72%^NMbvoE9LaP+~E-9@yw-L=l3(&r|W8ah?Idn8%iD%xmhTwoNwfn|H(m1HfgC zXKLoWE@@V@w(m~yuXCP%dOIMYrEr)9T@(@~Iu*bAxhqA)FAcT-Q`n`IRnkn%Ys#%k z?O`>#r=2`qmM#O{rP`tbQ=ZeZ6S`I+zFhw^eENY?YFFG{u_G%olrf5rxGH%cm<+3c zWcb~3=gj9!4!ht553>w5e@p|IIeHM9KIWnwx=Ndv71sX!LH532jzH;$ zY{1Gcq;Hu2;aDLo3)Z5?`5$zp@WxFZJM3N`;W>YQ;)hALQ4m4HYJj=)dfbrNQ5TtC zA&mFvcMV3Jcl{I-lE+jrOUgt@b#M6g+6$kSzUsMtZuR!*07j)FN|9bNh%d*-=bd9K zhIh3+MPM^~Xzf|;x<^~qa6UWQKvN-jaem3+o)!YBF$6J2hOot7{}beySzDnAXDP!o zr09loxJdPRhx*J8=-ikq(S`sH7KR-JQL7~leQ91UA|Se_5cfH+h>|a{j#dGjia1pc z))aLSTXFFH4=1-_I*uLuE-+=Y(P#oY@7v^6qhL-rtiyFIk%v>0U8U<1ZgtQXk)x_n zOK&t=C$5kA>-{>^;P7XtcjSk6(yjM3?kP91EVV&wAR(4hRT6ROREW4@m`E1>j(p-+ zEKsvCN%y*Ct3`+s?BoT)2y44}0 z0#l2FE-&w1vv%;?;-T2$yrD!>7T}y;_p=b&R41Jg5idT)nfRKoBP%cG_f-j!>P=H@ z)>Kwpfrbj;6O3r@=Sf>#&OBNX&ibLNfWpsSMt_RvlyufNfUs;PQJ0EHJiS`vD5!QO z4ybm>MdiSTA%T_xdIwSL=vN9F`zGTa8iN@a`gnk=D@B{|yfjN1oJlohPgB)85XXq7 z|1R5m>_Z)%erQ)hD{67?havk^_eG+yi%Wyd!F}WMJIG24#Ojjn+Db$T^Uhlo&vx~Y z(#i7>Y7n|SHFu*}{zTE~eE*q@B@dK-Nx&M{vJv4kR0e%J{StI@=B3^}=OrZRjX$+e z!#_6XEsski26(sK@x-rFWT_i62;Qol0ND1}zh#kA=dY5w(FWvjWjY^^Vx?gciI1lE z(2T7Y&0!0eC}l{#j>H4RDCFb8B$@CJV`KC&Y46FzUM5kwrtia+x%_*j3bCSp|B2QX zTuK|yg#~ztezN@OA5$?JyW`;FkOdw#YdL{EC-gbA3D#LL>UmWW_4`|dg#G#2=j&`G zA;uO84o#D7q*lM8A*rqu2eR6oA6UvT@j~cfFKuXBY<3bi4?Q{p=ieF= zmfjY-C5Tmb>vKg`;r-`8USNr90C)vR21u=y3IUTyxhZUy%U!Rr9!Ar={DX~0BN)b1 z=Tu;O!3-mosbtkYvppV<@ob!RxQ4l3gu~f9;xQRhqp=V3`Ds4>%E(%NimdLGkj+dk zFPvzs=h07J`g<_vI#%%3^xsq?-R==TkV3ytR37{Rc;q1x>GVRL?m1Kqf5)C;#c50a zq+khFZ3B0Q)IKp0NG3~=pFl2V8h_x1x2ZZas@}1$)8ax1NB=ET!}_Ug!n8o8vS}u9 zh9-G>E0O$%oTlaWs^wK3+sc8`h}`N%=}bhv;(OHHAom_{?p-#kN913PW^T%oYK}Te z%OPH*(kO)w1MR=!_c%wBGPEUSINT!=si`oSY<156*{=Ol^CNeQJAbuvnRBi^bH zGDL>Bi)}vYgN~w9+^scq;h?<200SxlD2r3}FM?6HX6W(uI%6@>7 zo<5RZfOB@#ZXZJttwUPpnqri|B025uS)*~^3o_8e-@0q z@ds5?apq5dtX>*BIQqzofd)A0hyy&o~gURs+QQL^Z=tWz)fbKB$h61*4g zClAEQ`BU$1( z^c)Gq)E+d>uVXX;i&?2Yr}3T98PAz6bS{(;07?W9*0Rz{zp}anT8+Xg)-W}&f-#;2 zW7aL-vcCo=x6`rs%sSB7)WG(`l5)O#g3A+{S{YpFAiJ3naKcWm$ec}hVU4X_}ojPBQG&|$J8fA4p zONY75pwNdO68qGRLvr6&Ju}y$?boqh9I;EQL=(d+nnK(YB$n()j>q4ang^9(cJ~`Nvg7tYs7G;y{L2I~nSyjjQhEeLQn>4GD=}IuuqextzBYAy zW3u?i^3F}u9X6q4A(ENKe88uBGll2&$)`xpDJ!^CLH=Hr&Y~muG^pviI@&aAo6JnU z)t~oG6R`ed)aiDYuF+l$BH{V~W$f0)x*6=wE9PaC{BFqn7$s!j2KO^kbjlr52gGF{ z@AIrh77p8!wB6LJ<&Xos5-|3SW@GcM^TV>;-Ch51d&pWd)rTl?Y7aN#(K-O0tl2#G)~A4)@olXQDyRfXHUc?@vG9 zYFI2m-05T|1$cjTkbKtZoHt3OUCN_eZlaC;)O53_xBXqX47&m^PJX~EF^JwuTI%DXB0GKOl_W#I8>I9K2G4ro`FfJ*VYLS|*r)Og72L{nBAE=1sc`3w9T z{nsJhtj9WWhcy^wjAg1Y#Bq%z-Wk_WKS9MU*a9R6&V)D66&bf#zmOa!|GF0o5Q++P zt2>ifcPzLH>#pyN=IP)P>CAiKkmF)*k zI`DDtfTy9yw`pAAZR3OOe~W}lTfi;b)!VNT0l=3-bPXxPdb{r(j(HL|eT$5_-uV!T zbb1YjmuI8`%Gu=ECh`KKWm`u8f=&HV2;w4(v}kSpB%;!Y^y1vHw4f`iH(wZyD`JV! z&uBB=9HJNNbTdDBXix39C$&NcRbe&T@=Y7$5vaUUL{0j(ur4`~!KbUarnd=VaWYX6 z9qdWOa#+~kY^*aW@1%}9NslRn9Ia+p2N5s1gX>MrB{k>~hh@OYd&<9D>t`OMdx>kJ zmkHj+;*I7V!&>Fgj-a>ZbJd<&9As_|x$iYnPom^rl<+MtlY;7n7KB~^w)057I{&Ja zO4C7W7ZnTZ1Xp>`P8MLU&}S_QQJ;F`Uv#(T;eP$HcBW%!^c_zQHMdt8W3+{4nSZxQ(_z_X&*jWRlLFfTBjCeqZrb#)papj%VdM^T0@OQt;jq9mlT1_tVg$}j zu;K8==u^@n;g$4qe;-L=OxZ?j=RNp5$$4vBavB8CuZS+CWS27HVw~1X^6U$I}u;o2oggz=eR`9P0MQXbSb;;C4p0> z$@t_-AH3h@qNGDTDH@mO)BZ1U5{Ac<0b>_=)$4L>?2f^-Dd>01jn5_ ze>leNlTA7=#pJ_!^K7#q>q(1t8q7(+489;rZK>O_V$K`s$+fY3a6apNj*}$j++gu+ z=b_}-QkprM{&mjEPRliH#q{-x*FWC#1HlJC{7cr=8>CXtPF6OXrE_mlyEQ@CKQ0Tm z0qULS?c8bh?{?3RLe2VLC#!}XmQ87(Zdgid)2ydtmFN;au2GTtOef8n6 z)Cy4`G;AZ@!rYjP8S{4(tG!pyuN#Hqe#hVq11K?IUc-|6{AS^h)R*R zC{=UVf~W4&tsLld8jG}P*d63Ivlj}d^_*}4IBN^9g)&8XeVg6_c_0Oi|Nh71YlxE7R?@GrHV8nuQRFlHhsO~TwJHjo2zCs zH-W{9j36Z&L;zd+mdJ<9#3FG&?&h7?D&`-=YBGTq)!l0Ki7et@v}ke z!Lv8tAhCsMfG)t?-M_!GZy#*$smKK0G}y`N{@G^FiHinTa#%c{Tv^YrYrDEGnhUKr z3^Yh9QNXfSDTq*B0#4fggf7MvE+%<=$v?^JLM&M6Q?lel2!G}1q^~36!xZ={8=U;; zJhg3QTD3Qu-}qmT~lYfDQ&By)Bfe!QM*2l8h(Fi6R~tqo?NS>@+|KwMI|t@5J{bseM)_A zMbdX$$vqC&sk#5v&?o3m_)QfWCMOpbY?Z>baWiq}vyVXQB>1ld6=NA2Tsu$Xro7W| zFjVX-Zo3)7e|yGkIs)}a!3o#(1Jca|#N{&5{GLPl3$^bLg|F*X_y&HO~x{8dd5Zjh5Su?pgfH$mf=b=l+ ztJ{SxW)7sK;8MjUddST#szbnz=_jTL>lA3Di|GcH{wV+_Qu_3Zf~kq^)Skcuj0rQy zHo$jyhiK|>t3g@+=9Wp4OY{Z z{B_Y@M|a~*X?_j3*b-A3+HR%Xt|Ly5ejB~#d3S>#7U!duid%LtXfOX+LbG}oML|m3 z6dl~!SQ~PS-54Vip~%-Y{}%KSCTv!XxVQ%J0;$BJ3g%vc<{_;wa_+pZNCexJ9xa*> zH=UzB7l~1eym^#|_93si*<9EgulQN!I;BGplyNG^@IB-PvCh@Od;Ae9=0_q|<5{x^-9H0Ek|?s8m;X)#Mlby$_-LaPXS~YXiOH07X54-{$^54z) z3i-1mApQ@S+(F9A0@~EOuENF< zyvk4o(}_|8D7k!)PIgzLqkg{WD5z-gbhKia6K8|oq%F5tJmT4VdUI~Q$1bC>&HEhw}6ib^_7D(jC3@USFXTB!iq zAu@TupX?@B@Z$bc6Sm|pG^%kU2tgSvKy{zJ1jAJv$-B?IYLu$gFSq{WA$MCoq*0FJ zT>ekE&kJ>EM%9_j`?fFnkmq7QB?=uSkk5*`XWHQ-*vjiVH5BQs0-}^g-?lKc?v>n; zW)0^@bU-2W;#Yx=IP#;#+*9Z_;{?qqNHX#qFNBFT87Vl6Jbr$zm$p+x*^H(w>$*&r zocYDr^t|S_EsHw*Eh_fAawoF+e{e{CH}I|BVp8u=786%RH4iLSd0qZr`xB*;<>$^S zD;oH?8%98?qlncpYg=T(f{j=QNEx|1I6`5HON!-IM;t$ij-```s(b17Rvg$1QX&Y0 zbH~mDgf4iI9x3E4 zOND1Wr4MAK4%8{1w^E_C=Ke=O<$de(j3XVmvnjxdtut}%-#V9gV!9t=G9UOEMD7oi zeiA!AGqhZIe^ow;ww6{qe8A79EiwS*N@Xou$dSL!A;yj$VIbj`_G)X$?Il!5?hPLMr2_w=!_S#4VQY}LR`YbQ zto@!uqe-G0&6!29mGoDW)LDhIhrkZNdPN)+RP}w=D?_g?=1Z90Kexg>}(h$tGF z(r!4ZWjvU)%*~-w_3$2;U8^+H?C!Xl3{76G{(h%~r*vWY%q@n#n9n_CBL9=H=vx@W zkNV25lh-cyzCQ+EL+v(h!GaR<6jrkS^x$gdbP?-&zz@#tJsf)5jwvR&UBU&g$?_f3 zbgT|%{g$S$k+VCrrWZ$n%;HV>!x9j?o&t7nbVZ_d`qSWR{#fs;>NaaHxF1~{#bdY1 z*;8U&I-No*PDczhaLQd*I#WnN%8Evq?DMJCrxxxrdlM&=fH;)-cS$%u0NHS-; zXW8)sulyLQG*Q});V&YV$cJp3YI|f33(I!+&$TE{Fi8tA4h-XoGkh%f2ZF{5i-S>PyThi^-Rue zB@}nREA|epFdm7PyZLZq(Ki>F2d&p@ou*56=CY^ld$7FFKg&0G^q>$g1qcRFR2yjq zq>5#b?0Ga$?pB)4$o|A&N7fHkgJ7$&6E_4vs`DSyWMedE33FANG$a$qnL5F9A4+`M zwbi8B7Ud5%msb@`UVov-D)bQv(&Rj9jOQ#%J$`ij!9Mh)a@^zi-Jqli#99IS!WLyY zmsLlbeDu3yFV%495I}`YEagG5LY|qhg6=7w7Y`lz=32m?Ufao)SlkIw=(7~7%quw?U8p_ZQza~JaCcc{`@9hHP5JE(eLd;YrRfe>4=D^bG*(!K^=Kxx%|Dqt zJIEpbkDz2?p2BQ~fGLKsuURT_f?!4fC`FQL`H(nBPO+uR|g>L{mlnLE@K>K9mgO0;h zUs1|d4by=^j|;4f=+G&E`xsD>Dhnpj*l4cPg42~l2Rou+Jm|$w@N?87WTwYp(523I z72GEc+@A~^tC-fqX(YAtAnydBN5~ebUN$JXLQvZPUn=U0M1RIVMhVqKU> zrdX1SE5|&Bd5ArPuT^7|A1gImh0^KJ?mg7c{~nwL?v=K1c1oYh4E@!S$-O_Tkiqk% zL1FRv!KkSjDREVWV=ALMosJ*rMPo!x<9vq{Y|$yz1-E=e@fT7!KpPb&?`=i7^~qCF z`4BixZP+>rW4d7NbfmLQu>qgxVc|y~u1zob7xgQo41E|?yK9m;t1zv@0%>D<}hJO^> z6+80nXR)C1Sjz2RJ4LG|AlKO!4aBik$)fDP!+9(G%1^eL&1N2zO;o@zzxNNzdIHDE zs;w+s1@99W>fSg&cX12aHA^_$;l>k=f1z^SAm*{-7x3M?=&xF@@jd7Jx}4-;&zmml zj}J)w$Y9wMtJnb6FY;b(S0p;t>9{hub{IwLT!djowP6gIvOos+{c5YY9e1;E;?l3?&sGB+W77Tf*!ooZu5ZU04b>E2 zxz1t*~?iYX$>OMSC-a6xg(&WNKYN=qf-3pZEs$kQZP$6QvPI)n$C+-1lyVA*8sAaxr1>*i3LQc(c!}NuYXGXPsz$S&#?c4yNF*tUhO1mSIIU=jda8Le>vN z?(&q7eYueN!x#J>=f%tsBwwwr$Lv)U8_H*=Ka~n17j=u$g8pfLHb0XYl;xaWd~#_Q z!2a==D=12t7=IQ*|B zO%?L%+r9vble;0?J=8PP^zpj3=Tu}eJlJ0R(M?%-$5-g8pulsSqI}(4T)?(Sek2fH zsZeq&z<}$tOrR@*r7%6X%0z=qt#D&ysL(h*Z~wMol|`m&PfJv-CXn{I&=!wH)sVBq zs6Kc!;}Liz=;6>84JIbcN~jbv2iW^y$QnwU-bNs|lTLW#wSZ?f;iuy0#&m1xA-AfT zqJ7uj@Z}))l=40$z)8^WqqjQd29- zMP=^H%sr{B%uLP9Q4UPYy*G+bS(-aDwOnZKy>pA^p1Ai$P(ejNP>}KXd#>mClRw}( z7knMjnY(ZxB~2~atydN@wC+Ib9f*M19MtbOp`?)X#g-=)byseIO0OFs# zg1C;73?_E9Kdt$Z!wchbIU%SnKZ9qbFIB(eE!_O4gOwauQ7YtzZ27|T=U}FH#bXC` z6=K$`Aw38-Xmg}@JWXhQMVbE)PW;oeBhSMcMncEE9NamBv+nS-nJR}a&##md%n)*Y zF_pYh{A#SWP5FMnhhaCr#XQrV?<8i_kJ)%)cgi^0Iz@>Lk$$r1U!1;{|;OX@j+x)GCGbz9T#+}T=;&;7CeC;ZO;wMc6S z6m#WjDQK>;AfQI4(e zKmX?s5Hn<|O%qO~0>0Pby!SH>dgSj@KW#Uv;(`{bHsM$4>AUPe{q>Z&5m>MD`lM>a zuouj5b3!&gGZeuSCsQWpn#3-~9EX@kUkMQWQ@`GJt$Vs&11ArfXxrhbqdO4_N&S{- z$$g=g`QCI<>*wS61}#5xR5TSW+(iRO@>d!25Kj3EjSUM7IQi$>rzQ@qkK;|j1e5Cc+?1inqtDy?psH2NK9HVza? z33{I)-YV;a58n>pb~~nnP|7duCJ80V67F#5|KPhJ33m-B>-F-{D ze`B~y?ZC_?XDrphF<&QWtB5*}Dn&F3{RBrql-&qLq{(RLIQbo?^3febck7?5w6GUz z>XGvj)@*jJDU}U!Z*1PPi-@wNLO~WOUOUr(c}Z9_0`?UozuW0B3@Etbk5N-w83}k_ zdxHKVKg}VWbqjt5R|RpL$E9za@S)`ZX)0)%LJBA+Fpi`V{Nyc30l%>6gjLM*;{Rcl|3307Y8 zc7Sk|((JYJ0KD4a8pF*ujB>VBVgxeO-2jIce`-1_7=4${NvvwKHw=GZ-ztBy-xD;D zPXqKN3eU1m`nW79`Z}}JE--f9Fu!)?{ymhUJ>qXIz344I!*Woj;jQa~#W%W!9 zF;u!t*I@CMDSk-ofZIIOt^dx2vIK1dOs~U_&tbxT_b&rzZ!Xe;xV1ex?->66lBZK6 zpcF-Xo<5?pSdVx+6;5F_K_hY)GBvVB<@%p?X}?bWa(Gd3-$815awTGm>J3>s4Z4*C+gsZN6#uN8w%u6nEo`{1N(HH%AQJaJjwu>5 ze_T;cbAY|ZHYayxZXr4oZ9(LoTT+}yLlhtPe6|3}PyKF{>m!rSja8x28ndsP(Eh{( z%5E=BH;uuA=E*sfbAOSz%+aw?Kgk)7iZ!YH_%~?1K3lRhKKk(kZd~0hzkk{6^gkvS zFRO%CFI*PpB=ZGce=E>$$-k2KoO;QtMo{W|I7mw0)%j>Ee@Y-*w*HlFw8oEl$@0MG zgj-Z$w6}Iw-Yd4cdol-?$!&uEsa}@{OU;U|F0TbC__drWf94WCIH2O0iS1-QD&Aw8 z2ph7gw*&yNAcdXSF9Sw{f3yUFf83{%MH*>0*EUZwxbyq7Q@<6T{~{BZsggmA#pufX zNRuV%L7i+h`^bt@b&&*K2yKJRQOGNZ=H@zhOBT^uIf}&4>&YoGj0FW+1QodLuSqil znscF?f#^Z?!w%m_7u79o#+NZq?GU45WwbG4k-2(asrB_@ZgCJF;~5{}Rf7MG`V%3~ zG_p+pYkiv$_*nF8bX%+%FwflkmdDD|Pjkbi+F8ATN%gp^FDJ5=YKo5g+peQ8N8N|z z(2R?)1!hka%ru4!ES;1>tD8r^1z_5poo14$EZa?C&uWG`-ZJ??rW0DG$O zix_N5JY(d0B$Vp(yf8D{U=_=->ozXS?a;EsvR(NL&&x6CH?0wV&X-;D- zvx(R#H+HhDs;{z${;DaBZ^3{8X5Q-x@oSdV9+G7TTgSWA zb4zbXT)E42VDeP1=|pVSyIg+-6^w}Sd|}mT1&ladq=^you=xis;iG{ZBEl$=MKO-9}>b3 zbGUwypq%?Iubo4+gV$b9FFr491Ks{S|Bx5u(Q5WQ{%PejSV0FrMVe6}bkA`F{XL#< zX+z?XpTqG@JLRG{HySZT%@6c0kU73i`9 z7S8l{&$0T#*(;lI?P6FV4^BXrm!@RDWD; zqCX2{n{r5lf?>jU_PmfMI9c>v4%4+(uh;ce0;#c(*Z3MrtB3$B%S))2(|LXou zfUVHkTr{}>#L7p+$sPS(F~ zznNW;*Dkb5;~q4cUWC5<3?`W7&0fMJBRMSLDz_%4^rnCem-@2o258D}HSib7Tx90GU9_jDg>WoaH2GWLsHa3*5+f9xrf_wmU+s5&4Dh`qj632>{o^X19!HP1UycMVerAOCzTL|uV2SSvztB3cFH z+(n+sK6h|@{#C@OeAa!g`l96d2ck=qI`WN5DPNkDsu95KW0oO0Kr`~3kFZ50Rec+r z8d#{+Gb-rEx<5j|Iu2`BLVN55NJeY)O7-c{8jn3?TK{kneC*F!rV}VFnU}9$6cpAi z#!u}$_`+E%hQ!UMOYx*_9L2+qOLe3-U&YClZHP>+?m!$PbJ@Y&XUKmAI%&ZjLv@Ms z_y-q;)h}11_)#v-KwBZ}ix6|IgDwH{!k}&o3c)ecCU?37m%P?=LkW6u>4ux(H&U~L{L*IV5tHF)MMwa6IQ!sEvQ=5?!q7r^JV!_SS|*!{^blvh%KV2GIjG_^s}`qdUw#;GPQT(St)>jWXq!z*j@@1eckhQNy3+ zh6e()*b4Hk3@hk}Fx2lF_07Cu8tp?!*RJx#8m68nF(MB*0%9o(4zU&g3$n=}7uKtt z{1No;ew39kbWc}=F-7@=)4dKZu9op|&N|?^qa|9S%vc@oyK(LGwGD~-v+|&ZB}O+y z^;jT&TF?I@C?#)6@h*kkJ7&~^BL38H)w4wCKMTK+Q{f*AkY}*V^az5^*_Yt6{?_#x zDi#^1vJX3uMt2qS&Ap3$Psx*7{87+hjI6Vqga4_=&Bm2;BO&cZa5 zu;*at!xpIO-A@g)MCoy*F-+ooVZQ6Kox-(y=Z8=$Q9Fxcmz+%e{FID=-!Q@;0_OFu4&h_vueazV&_*eHT%5q57J-TavA$Ao-!3P1|*y z=aL|y?$}Su{N*RdBmMih@<2lO1=YGP*Un3mw^%+^)K1 zA~KzQO$CJw6g4%8ll;3@3*~8^k*}p$BX}%8)Siv$SuSUt>b>A_D$}mvnTe`xsSKU=x+#LP z5&^rVWvhsoQ$A6{m9|03>(xQr(`cU9f8D_R(EO-8+RS(5&=z5F3*qhz=97>M(lZj; zAE$?F3HbxZrm4m|&&eGI>tA3J2ef=Bfs4AXLYZMcT3&dMg6QnD^*;2VeKI_$?*c(J zM+7O2-g*!(Zc_` zoQbU;N!e{A8*{{D8C;6Dxwt)bbz=3qD|DKR<4zv$N41u=6HSkpANwoH;Sk-~gDdz@ z)%8X}mu#&=Oy$mf&;`=<|k0bvF+Pmnf&IdBlVlDdg8!cDMIztie{)&+Cw_b)Q5ZU}T^63Ghs;MKYi8zv_YAyGNRV;dwsL!_p04d*dtC zZ+zMtgO#=x%ISn1l^Jt$oT<*fULExK-7FCrUeY87fhGcV=|CsLDv%wD-&3IegN z+sYvI@(%kmgNQ%d-f2`klVmj)l*Z;kRd?mN@_cK~-HhpIU45U~<71}q3V`-%fUId; z|CQ@Kr~o+Gqfrwf?A$L(s9Pq8xRotB0i(CK=!g{Wb1(n<2j3G9<5zzr#TWA=y;r8q zXUEuJM||DFGSW#Q)r?T^fzqZ}{uZBQ7~7+o0*;41gOtBA`0Xv-oo*HS+ zsQc)UX|g6VR%8-~0v?L?8{_X7YK){MkGFP;M1pd3j!rlAU>!#_5U*636)bhu-EMA& z@;L9ujW-P%)Gd3oXsAUG=9f*^GM~+ zX~gg7`_LUi)@rl-gj@+0U$wM6n&PMmRcixSDaUage`WPs<#@?qu;l!PT0AO*+rNRR zHowfL(6i_ZU;!CUZ9oZIt0xkrhnXx48`=Nl3P&20Iv(1jZlRrbMZAm zSu#W-B#C546T#?WY6(G(2;buug+@~Ye;e9pxfG#c!UeKeIMGcth2DX&*hEGz%*%B- z0U1$pVkPIunBU|Jns2U#B9vdkO)@S#s!lll=W0*>VJhxv(x~RLv|~?unu?L#m!m+i zb@E5FqxJrOLxkEd{mobC~aVr}}9Rdy_5?U}1w^bVgF%8P-TZY7Iv%BHWl z#Q&$rkC zp9kD@sf>L)SiGeX_t3(_NQ;t}d{Bax1v1FQc$SKvL@{(WU}I+hkJvB#knC0`h!uke z`cL8MI3x67wJbl9W3AZs1t_TZ_)jz=WKYUht7Xq7Mz_# zT&A}1Ne}BP*>L`SZ*cL0QQ*I&rX&`j-@%?-wSNHI|KQ;&%4>G9d3TFF5w7V98|WuW zK0yEvN6hxG<~2Pv`SR%;6M;C?MSHrvDD}0>KX-&^-l#@z>w$&gOZ`*Puuefce%MU~ehd`15`cDMH=YI~77ZhTrHFiel-Y?}fAD62uqv8-$hk@Mb1@omW z)u-(e?Tn8+tnG7 z0~1r=Gc-ILwZjah(OT+uy;}Gio6rTXA3}v^J=PMpYM!iJZyW()yS58A`&)*+Y}jpy z&zis62VA&*TXN`Gmh_lwg;LFVH|7@2>h{w+h5kh~$G)Do#){^Wu)rwsI`F@qc+jme zFX`2Ff${IP>mK~yuS9G(5*PG-g5za_T`NRIEwejor4y5oQxhE5#uLHkwp9Nn@wJeQf@X~Y)_>={6Nq&HR+-)-SlPA?NkdI{$jh#)Sye6a^3|jo**+may?1D0KCgML^6})7mIL&ymBX_}g9>$AUMO+O`}! zJOk}jUGa;wylS}e$d&uDTJM3H8}AuJallcLp{Wn=yRwHYy)#_jA?@u)Ny|Y?S=Npl zht<*gNde8+Jt7~R9z^}3w6{LI%Ev2Mj*^9~zCn+)_z#I)aN2Ax_wb-1w1|`6v;V7- zxT84{pY}USI8~}4@Kk#H`d2|sakoOcL?tBTHtg>lB!PH?CQ(wjNPb=`l2C)FN9pI2W+bWoxDWu^IlDyp6;sjt6mFl2gYwi z%pZp$M0QX2xHWpc>bk%VWi-T1oA^{lDD7;9f`GLP1$=Ioz9KU`O~Jo23Mm1^q5Y2= z>2PXNc@hrAi*TI^eDPJsqCcI8tMJ3AlPe@K<4u;MU7!4rWZzhVnY0 z`%7mAcCk7=fZ(eu7`PPhumZ@qq(ItV`m@g~{vn6@mW+L;3@R0)^Ec?5H^t^({6$^l}$tSvw=&G3tQ0`FUn_&ScwslEMpsS(uIX8775A8DGZ)Wb)Yo^)vXBxP{^ zJ;ehdpwn8TBC&@_(DrT~vL$gK=pxGd0z_Dwx06P==~jG5GH+ahzjQoHZku2u^>c<8Fr1 z+%z7jX7*%lg%1OVnA_8|70kqOIW6H4YoDU?tI<=%Rj-1!Rsp!J94Bgi#mX;Im-6O3 zkO}gAft%(pJ`seud2s6Qjjn0td0-91ajU67Yd|{jbSzTA+V~=Z}=NH9O=V7FLXy80q8#iIFCsf9jYm~(4JEIuMK#Cwy;fXWT`>NXZlOx zaj2&bLOSA0Zt`Vko15qC8E8{sWcYW|do%=z9Uiu&7;%`Ph&73V?2%sEIDF=5IKGst zKoUV}vu(%^1hxwy7f$I2bKtZ~q*wNq_ZZoU z$+`D!UMiDBhf-IH4E3kmg`}>ny&N()8soU&MJs)UV4yIORnUd^Z*zR4r`%ZWNgkWAshCw*A|?6b3!^F2FuRAs2={|7hBe- z{)~3a!O8H|GB#5QITXk@XYY}{vbA|{MzSQd-%J06B>IZBuV>RP2&Pn)_YWQy)N5d5 z#A1@;mm>|GzX>Zi7=>h)RiwJ-tsdcVS1q8mD-#;K|Cat(n3Vrmdj}(RT-M{ETc;Iezo`KprB{czY!7h8By&MF1@fih z%BFnA*OHT}FFSA&w={#GbCt`$WpCknGCydj`;0(Oym&?~N1eQ8#w}~9*Won-hoWMj zN5}%?&?zj561Q+!*BRP}ML^W7f2+y$9Itk1nyUKO2H91LB51|7k1+RD4m z=;ur1QrYh?Af9Xy4Cg$chW_}J<@H#D4V4=vIz0LkR)5{^q&&i;1gc`%xz^s;E4$vS z#lXo44htL@<2o|mW{_)zpqW0GwYlz{HhzIL;_mzvR(s7d?%uIKMx-3blVabz5_(Sa z^Qo>_)ij6^9F+2MWC)imQPC4%+ZQ)fdHCb&rf>pZH@|pgL^PDhca0_S@>AB>)e=~A zwkiBtZM7EpeymDZ#?5e*&n>FuTzVDg0P+;O$5+7AG+*4YL%+szK!ttBtqwaXUy1gw z9|GtL$S5wSq|K!NUARx^eZzB^Iu)s+MKt30JB^w`F?b6ex^xUVo=-jNZt`(>#lBn)_#H;rZ2^w+k z>6IN?TItBw!zKd%@*@5Q9qv6Png#O?xD!J~_6yBVMrTdPhNnU*f5&}}mi3m(t0{-u zconrqA#l>B>SvsbbvViUD8qyQM9Mwj^=c&t<&9NB@$B}#2-Q~6ypDL!4EXDI%!x4B zs8Q|M;i0f?S!ncnmu|q8`ad`#6f-#>E?~?ja$)4vcHuTg=Y?q z^Yx~jOGlp?H*FTZ_s{YDbn}}WFWj)QGSI*gi8xtsO~0=@taUic&oxIsp{{k!3oQiD z%(4vba9jFG|DC^WB3!#cL1QfNcR)b&n)iAg)TRXtxsYlfyjxX^DPrAO*4&6BwjyDO z?dl^Xbgm(|9?e*i=91KbZG0w9;+Ze6g;-g#?zziV)3}2Rdt?%2D;YUO-^`)|4!xP# z8gr6bKeSbKg1Z$@uJDOMwP3GW7>n;(QJOffV_7U{B9#1{Ngg;DZm4R;7mU|DJj(VS zSyE5h&}803muvZcR!-VPDMKkYsKg@TR}VO7Y40;ze*m)eA0)U>+{_B*LZ#OYOZQ-% zC5pvcgsCGt{d()ELUl_uY2ejbG#f~x#WILI6x#<2>HCD1W$qjjQ#Q6i?#*b5_h_PW zBD-s=m+HX}Tz|Ik-w@Tn<@AMV?#PWi0gsnj=z3iw*FqV76 zHr8VM!5SUgaUdPM-E7iuSd`i?j_@zDg`Vb=^`Oo6{LF3*c?ia42S^_6w$>^mndn}; zx-9ev9VZ#Ab$EhlU4hsBD~TZOmIsIKn}p+~8Fl0)3o7P2xe7cEkNtb zQK*<$>%D*(H}$lkKg~o3wz;^|gLZ@ux4@QXkq9&|`Syr+)+bF+W3#Pf!s64`*W2FR zcHy}z*UWs1|7*%G+VB!wH1q3NdJWuvpt)^t{op=v#o~WEp8Y{IYv0U0u*clMRh+}y z+2AUJGX&VTk0wO1C49%Y8m^uHDiOtisnZG2yjPUr(gcqn)<&~aA~7(8ezbh}V-#~< zK;AWJA&A|qP*v~MV;z@@^ix)qTEvTG8d~KW9_gODU2_@@-BC*)<{VdVADO|yo>jl9 z`p9zuA;I8GNfT%lr&B*spWFg<|w^IuCmWOj0@UKjSE~WU_=1x zA8Q>pmsjZmS>wru60H4V*=y95M8lxhR6L9Fq)Qa4J7bv|TON$D3pdz5mkxVlW?|*M z$dS@KErUPKD5F1Fc)ZafrpgMCsrxz_HIT<@J+i>cXOz#^v@eQ*RC68}I05j{7Oyg9 zDTr9j*#zno?WFwT%cHvT^le>v#_6vcs&TPhmo&e#reKZ?C}Huyo@s0+-qUceZ{af_yu|+_&$ph=a?b;VS#smYaIM1 zOu6Ui((X5|px)-I`3>}8sw7F6i}ZwZuo_+9;7a;>1>|%3)XyG^8*t8~RM__o4PBri zJ%K7W1Ej#o$&1Z`AWH4NUZFJp_FxDkEmCrmgCpu zS50lRTH8+niON8IFZwrlQ1B9d+x*+2EY)aUJjuR+Qw=&`(>lG7TO6)*II6~68aqND ziwEm+TJM8C;kP7UxiExk0@Lv|6-E6AjR!_2=Wjij%8k%I?GwW9`1pOzB~_RNlCH8= zq1pfL2yc1J^*kWAV9Ng454x+ny%}!W4%M;=)KT@<6!P!NWVJJ z`w@7USNN@P%`u_{&t%*VzW{0tievO|#HyD=9;KQE<7pp{H;NrRAUO`m@b++JB=Z5x zndB&kpZ`N~YdlHy_n@)l?NB7>Z3RVrU{9)Jb|}-?niC>`k>v~ZNj3U{ zzc0ljBqiA3<_bM9|DV*>Z%lI!>T8xrgB9z-kjayxmiy_wa7x|TeBoN_>TbhWQQ?vI z{e73KD+|-|8lLui>5sSz3L~Ol4&4@aTnpJ>VQ5npPG{`|F3X7r$;X@&6OWLwtfXYf z3M~g7wu$v+&nFs~y1oW{bX_wZle-W#j1Sq|BnAWMw$#o516gs9=NoFQQnh z^>K%;{!*}_$EEIbMv9zQ_b2Hi}72X`%yn}ham)6zPV;d*5)tq|;?{Hth5 zuI-IdsTVXzUs0@!M(3xl@F!DI-$^I$64{FU6;iVmHHH(!ybiyQ;VVWw(q707PDj!;H6 z0oZNH>CCfm3Wz}oo_K*W_hZTe&;mE0cO?*xMu1*i(I8^fUaaPwg&( zEN2x41G-)R^sTynez+BQt`wy?rPFPP7BO5Yr~XhNIYb_5@b8Nms;Tc?2n-twBVs+T zNefF%W)nLT8?{asgse5FjB`_4e%ZESx1hDJHS^}&r&lFoFy69UHdjF8*mBJM?lr+Eb?IZofkzE!Xn= zghGiqI^La45wz(P!mIZm$*1?Bwe9ww<}qxWunqzh)OtujVV=_9#SO~iEX$#mLd;~$ zen|m`pFubHx)w$csPj^CeXR4(*Z?_E4YYzEm>jI13)P-|%x|=&t@*EDqvOl@sU?Rs z%jqb`FqmWO&pE(dJY5N8xLpgFv?GZ_mC6W@&F;ZgmHAPovY`chM|VCjI-t|Ym;dff zSo|PAdcV10NOwZh-d~KlXWIU=$tIJ#?nF}tr%O+nhqVismw~VS* z@=M8QE#7ss=KNEQA3G6y-RRWoqc;H2 zwvDb{e=he-q+O)2_5ND+S|f+S*|`9dCr>n$=B<3JD0Jm z?v9pDT*~E0@u@u#u=YFX+`?#nvV(9<6TPaeJY%h2Txrk%$ifm0;i?Umw;*J{x+LS_ zmNDY-<)+HJZ&EoDSi`}O5)6AOLU=H1Lj=q3Q~=1HhPiqeag$#lio#n)5>xvlN%zmU z<483yXcKV1AqB4q*UU|W?3#Qnu9$hCW)rv5&uQU-QC49g4dJgiM<#8Ns_R+k({m-K zmi=`YUfSLU%=Sd|F$AY6O%_)9#;-;xKZ8^s9thP~s|Zg-x>WB-i(74S48gRBuURYf znGpXy$k2t>;bhr{{%C2`BM>ue>2MwYIv~%zW4#CnU160SY8~v5`c;!HL9wGIA6*UmzKb2&UV7%*7u#Wx~II(_~7hemu3u|LpvWHte3qnY}cZ#`}CVA zFRgt9n~un8C2u~zZ}=7)o_SXjo71g(?z0%X#}GZuJ^n(7F+Q{TN;U9q118Ly-oV$T zt4gd$=ri_SCU0Do3fRuJ)LCwYA$$SiZ8k;Ex#|VZswf z1KeAZ5V~seAxF7nO5NXX`PC_zWldJq9ryjMIEbTaU|jluvhUI6xee<-F%ttJPv*}7 zKPG=OX~*XGOuUF&9q>KOML!vcI}1nTh?GYvn*!t6A+yH8jE*upU-b>#5_yZbI}I#v z#+hYU#2!|2T_wh02)Uj@9+zMBTsUXV+C~19C;v4jev;i8Frt4@P4xI;@{YV2PV2m% z0u4?>R-6r)ahmSm%QeSD&&1W*HQOU zPX*+Evrsas0~+5F@g#iS@K48{*Dq$uz5=nlewc?q)KMq{zk-uLz!5ZSMC20^*uO!#O%IKU$Y#sW|1~SQP z*kLUx_H3{~S=XMYwS{Ytu!zgdWY!BcDp)X(7nL;a6*8a(1jUjCSE6&wC@eCiG6!j|H{<5kA3 zL+MWPxgaDr!|SCVt%+5_)Ga~RRv`S?@S*G7r@aN4y*@n=-iKFuI(y*}pbQ`fVXRSt zy{A#4=rQr2_4yE<6d{2pP=fx-AzRgOEIa&ScG*A?aaiQ_6~F9AsRDr;qI~E0Z#@2- z@+~s5Jx4v|uba+epX=#1f{W?#HI*^l28}TtN?XytMs?MM)JsRXwNq!#JD&OTwD~`t zD-YM9e5a#atUms6zdVV=|0cZ&-U%57FCP>~^#N*Iivltnh8i$wF2fDS+bTSSLhz|@ zhAPA8ltp%rHO!Yo$sP$a>Q_|W?#xcv^z>OUkWAmu>bg&FcmOhj<+MHzoE7EUyjydy z%lt=TR^W4jLhs&gF#rY7<2)K}HpTb+q(p{a^wr3|OW=F@lETX(_PCEN5^zDc-O;<> zk@YekSOTDl&j#{=L@JNLe7*{{}}>9D-7{m>U$k_`f%< z1*G5oYgN{46i{=pxh6#Z!cvB*cIchdk_e`WT2H6Wps9+jg}W*b{fHm*C7bZ?M0t!{3wu z%*e>sULq9dqw9xe#*3UBApbn=n+dE;;DJWqLw!}1kvyr}dgqrc?_9P@?==0cn$l1( z^ZwGosD3%;I|s(iCghkI3FALrTDJpb<;8jJn^(!6aQ;D2vwE#M0SW)ku<%)g+p4y~ zM$21f$NMpwO2^6pjgof|(woYAH4LKOZAfjUXrcvDpYan^=DzbD=}ucW@U-tD8R>`` ztok`mowwVTh=`3;wEVIUX>H@Z^PQ?-e*l8Pd6cFkQpK`vXA_RYEiOUs;yA&CO(I1s_m3r`BxE-S{$ zkAL}qHOstWfLGriteM8zE+^Ahk#mcgitjXeWSE-jtw}Gm!^%tkm51g}s3O0rzUj6$ z_)MvpGdw$r}$kBQ)Kp5KYQQ+~n^j4MI(Nuyx<*bQI!?;iHcJTU=3P`}<;>eFF@P_%|h;Rg=?*)b0vG8?t_>hF1Ha_k2FK7puQ zsD+Dq>>i>jhUx8vd=}8trW)+^h27FOXvT!LvPx3vv;x3TDh@|=dOdyGmRWT5Fl%6A za?hyG>tl=XAiK2RXr^GhVG6EuqGByK*}wb0+v1bPLqz5it)F7t{n^Hh5xU&~(*uPGnu z4CrLH{`HSm<$Uw1AB|-TqYN(L9!9p@&3OP;XZs86t%V%bg-_y1zxHCt4tk^G(9|;n zvK7w=?Ly%{Qaz8{S_S(wOlKJNi}bt;Wz+k7vf@pNN2^c$YGev%z$QwINs&L^$Z zt7uGhK#lpFe(Eq#8bPhS_D6-vs)8^`>mn&29SNzGtXUm7^OLL#Y-**O1xtTX?BdeBm0onVEzo^F$#%j32P!mt7e3s z!L0EHyseJ2E{`(hn&jFx>zfG@p1^N3)9=U;`y>>e+__4Drv zpZ03(>2XDv(?lTJOmjlySCq3mwj?CSbJ9gqX~iJqQyK;pg3#LN@c}{b6f`(~`1Li_)@9y#XbJZA~qW z0Av2=+?QisGVoAreWjD#g%Kd?)qCobhm$=w@37<^Yn1fVuPIk-s1xE=y!liYcI#)B zIZWXwuCL|xq~rN&lRVx1;Ca~wE(n}A{r_128Z$C?L_l62`Q>HlGb`wC9+m8@+vbU} z&$FvH_e&~6b(OFs&jddDM-9g&NLfY|H`SiF4Tk%XuN2$B)={+1NA&x=Qrtx+t5HwX z{$Bpw5CJceI4$pU&?4wZ)uH(zsBFa(i{j45eHXbnZGGhhu&USU@`4^1F zrT2K)dOoA%v`X)bow#tPyc7vYLJD@OoSjMq8M#?A)p!|mUj`lIFStYh4^8L&Pv!sr z@pmaI<$Ow|tkV)@his>kBylPgG7hO!$}0N|l2pd2WRDZd$T;@q*fNiO?1O`Y!#U34 z?DO@@_Yb&!eO=GnW85ENP|dgJ%NBY6`yAmnT=3*geC|^IA+W-euvQ&X-Na|q zL6aNUf7}xC%V*Abx+G=;y&|Yphfl>qER08M-Yo=S1Ahn+1>|i`6%am2HU$Q8S3D{|y8s)98FA4+cV6(Y#7Jf7uAECtgornFpOZsIS`St>xs0~ZmEX029 zfnu|~^&Z8uOZ10-E$j}npSQ;1?xz_kG@by^ZaTh5VU^1hdH7xQ!<&%UfDYsB9aSczMT@{;kb8-SA)VVY+|#L_7bvrT-DTJ5EMh=(C5d94B_&Y6sUmL+^( z+$VTF`{fZ=k|Y?Z7iTo6tnU>(s^j)$M}X!HC;jVDtoQ&s2|=5V;54}D#m+%vBFU0@ zxCGa*EK-j^yL`aw zUq8uD$(ispqM+9cR=@`OfM)f@mxUrnee#WLkW3S;AVp6oGeP`?5Uu8UF?PnjvyB}S z@_x~Q(-XS6HM}Vg%2}{v6rk|ih^E%yg?G76%A>X+@)q9IF(Rc#O__j5#x&tpy(Sah{n$)2NB725nw@v7}p%p_@x2H0$j_5n1cZMl3Ab|5dhxn)e znVC9#b#GaVob?q`vWP(GR9mUp78Cuy!=E+xi!fhX?ig(Ed*Nr=(y;2jNA1V`jmo^Q z!EqzSt?G_zBB4VYseR8ilO@swBHBKuQ(nB=+3*}rzyGd&bD-WI!*w;zdnaKyayTP` znF5yH0)B^~3MxqUVoTQ}CBc$UCZwW90Sfau789KbG0}l>6A9DN=CZq-i_I`2-ClDsDyYa&(2Ny+f}dJoa=va5cz$5`+E2(oqtOgn zlKG}!Ouz#2@`3pBnOiasgR4`?*~~W$ zq~gFDa&bugS~Z*r#KZE*kF%-qgA`%DEtm9Hoz>%>f)K%o8sNIGsA}3cGS-LM+dG2;8=r6VYu` znbo2=`1qcug{O;is9C){;DJ5EBFXx7FX|HHkf}Azs(M18h_-r;4N9oXawvqawG>I_ zHvmZo*(Zws^SyH0@NT!;{+gFtdkn_F>v?%U19+mHlBw|-IUy6y3!17GgQ06CH-{`S z{12X`1}Tt_Q7yp=?9(>*%8bOQ4nNJet!Xz4<{BZJLw|v!`?6&N;NN9-ifgJM4RSo9 z(4A*=yTe;}(-`JT`-hG*z9H0-hf2rW_4>_C12OqWBd;xbmF%eU-pfV3b_z7<{BhM; z$?v*cYE`yKF8*h5XDV#{?W^^~plaBY!;81I6x8NLMsJ)rLl3Fj_pIgdGmD+`o^Tt& z3)2taZ0Kf;|D0*Uh)-Wx4j&Wkowls}V6$l%uohE)pc(XO1d}E00zDQVI&24jb7^}X zn7J-5aEbIk_ZF0<{t@7MyaMR)B!wE8U{DgS2|Q zcFU%hZbVDIY^XlK>u*e7pqU(~GxIYW_oY7HIDhA;&OP77cXI=11I~4(E$ ze>;p74f#pF!?AGkjtZ&nxd{5TD1PZj&~Fy7ZY^&7{OV(Ni!6N5@8cBM=L7&;e@P;E z<|fSX8}IISk&!gaicGKD%34&WYQS`Q0BO=icY|f1h}9&h6{zF1R$0_gND!Y3%bkRb z;dCH>iN6{*cRZ)~tJucpJGPAYI~f6;9ak8zH7$7(@OWTq2F8EvyxKTY)~E%0*DZCq zOQdOK63kHl3%`chV1G1+G;x7V+o$U(tT0gg)R#W zLN&>W%ak1$U1|+ykDhF_#;o*|vM@NL#1^!A)Mx#_cllyA>}!I+j489aYn|Eq?E;{% zByZ<;9UTINhp_1Mg*h*%B0!^j%07wVy zj=sJau?g~f@JZsqqz|U=c)G^PRnV87r<))%Y86i})G~deA~7{g0V_&1Phz^fPk_WCz?8s?6N$#mgXfoQA^u;) zqeZU0bsjdoQbdvOHYtTKW^BCfZ*ssav99v(WXn9Nd_`V=ZHld8+uW0oKA!yY>h-U( z_zd>GCX91Tl+4(jv#FuW%OnLU$9eS1qx+A1gq?L@f|Z8IdR%z=j{vm#$TI+~ z+He~LEl0@LxI-9frC=cp7_uz0ylq_XHJI+dRcjiv-KXeW&CQ44Hm4e`%bW)yI-Atb z#RUE(8w`XTN0j3B|MZiCMn7&k0Ahcq8=L68*Z=1~d&h+8lYWHDD3Jf~XP9(v!hL@d z70TP&7SWH6YoWitzWG3|kTP7fUA-2oQ;d9J@?F=z=`}C9^fNvle4pRTV&uvPYW1}M z;mf2#yO93jCGIXR3K!UYwr#o1t9}Gk5ViP&J#BGM6(pz?$VddWgW(k*XY-hB ziXc}f{V#C|$-I(KPI6a)geW2!GlDq@yHeh`lZ273Cezl(x&i1iMXKk0MR=s}^#hEK z7x|Hy%Y5Fx4TA%SOCs1fro(h9&TwV%x6u(e&I-`htu3G!k^*{w5Y$x7^fYd1xM205$<1t`Guy^zz{hJ6^%}1i+l^ZPMX#8`J_NG2 z#(4AR-{sy#b?@^)qgW_;$f))@!8Qxl4-s)#!OI3`0Fn{DccQnD*@gKFVEB@eaRJu!d8Nx7k-u^TTVg1b| zH|?OIr7&&;9*WLDY->OmKYq-D*KSNggmvy@!LGQt%sEO9w>Jhe>xE}#_b0*F^<$@c)6&mkYe&(f~V440PmOlD!ASvK&jCbyTi%A@ZLb8 zL%Iv*E+MXXg@9aRbyF|`{frdh-7gs8n$ZQIS@rHIgWx}SMJ!$dsQ-4-&j zO_NgHf=MCkL~IxLeeM*pVZ&;hNW$>C$6GqgB3|sQ>+%KUC`Mr=hBF4n^Nsnz7ySc8 zchl|tBQWZh;NT7~3?7qp$p`YY{)tp})6RaZe}m^xM2?govYPBUYI^}aj${rxx^F_# zaStS34*1;S)~=@*C}SRZjmEF5NZHy;Vbn2*c?GWtSh?DN&fWqoMkaH%9)g?w2z?$G zoRz6dN{Mz6y~|bQf8LJ`c7r1XA@EK*i!9t0=UbLGphBq1b8A6}*>@%m>@lu^POb&h zga4o{9cfF-I){B+fDRkyJ^+hpJ@@{pH6gHbpo$aFqRr;JBNNM@ubt2&bH-Ur%XdRb zGm3Zh`sjr7+mek@_7iZy%u6~|ot$>Uyf~l#%5cJiH@{y;;o0z^%3E0YrYAHvpbgE(@jGv?c3~gnn#?b8631c(N0S;2oic0ASz_VLXPHK7g zNs&)DrtZnU=RJP&)r5GTHuJ|)qct_Y$xQ|{O+M%1+qr#$4I+X}b`bVS9qBJjMswzX z+b!$g?2!~J_AIc@Cz`N7;3Ab|U%ei~_x&*_X5O)RKe%b4qb}5(;1bxY=vA%aKUYlj z?3Wr9T)zcj}kGyg6C@s2>JHxVP#y%?S{QO}nkaBrz}W>DP39j}rx zxu|`pJD_I)#N5RC6G2t&-1p{FgdF!)WA+eos_`fATXTjA*00<4b}_7d`T4^))@7vF zq7Z)wuNFsB;R`t58ILBAO@s2i>Af|dvSWOo6m1mT3>vvt59U_)!vVFha zwsASY30UlY$Y*3=1ov6*b|AgDe5Y7Z|Cq{aj7Mz^Dp11jL49i(wNG)pV}`iukzu5` z32a=lt#mf|`U`b%M;EgKjy4?sr%&Iq_}}Yppf(9hQngE6h*sD|etGVv{kqz(TEr@_ z)dZ3xU&TJHxR~=%9Qyg3;f@%17wB3@^2t2(Y#JD(A6j|sj)W;|q5Px4rS1E=HB6Mc z9Fdg#v6@tjo%YLBQncyAd3l;?K|W=c@a!+j_El`yc9kEX$-h|VYzF^AM2u0wZCIU4 z=q^H{^Aq6va90&)i)-|qvas>ngi?5$`-~lA)obQ`%O+~`-;cIw>UG3c364g4#xgUK zNfpI;A6)rey>!Y>Q5cneTC4Z878ny0!MOl%RD@+jvQONDXy3pH#%c})n)t~5+&7=7 z_!$^;LX2Z;m*NX8}-1Se^2IS^Avn8KE|}N^r`3n$9A*h z=SMyGg-P*Z?|B<7zazEV-mPTdeB&Bs^*&e@A<>Ocr=2(IEfXVW+fMn=!t7ZtWZHb} zKC;n%N%v0daduk`t!xXqu)Y%%s;!9`7K;aNm@`sE(U(3{A_pGAhaeK4F)gfFURH}_ z)>{T3(68fPUqXGBchuS6$Ef5ApLx47j*|4)929lXb&t(8M z*e5XK@eVw?0Tw1A@-ohUgahYuPRk9X-B~oSNb&QJM2xpDgZBV$)$^#Vb2=T#(81!sBJ@% z0bDdrktd-B@<<~b!V4H3x@&PV<0OK0mz-g-$H1Y_8S7C@o*mcuuwtH*{1^l$s$Q9483Q!~q+&Ro_(W9I zJlaGs3xvkYdm{v7wGN`SF>un;;wTo(jYUwEgOy;g7!87?NYhD+cRW)3CjA(iDuejd zGUcp7@eNgX6#cH`$d*hv?}piT*`yfI`sg)rRbvK9v`9OoPLk!yFSy6@2|z@VM=0Tx z6jINj1&b(v^erKXG9kk|Nce`1h#PH|Q`rw37vTZ_h+8n@%~6$y>xE<~d=uA)kDZ0+ z;-64nb&ErE`8kxJOP6O#cHA&q;qMpf{72aweB*UUKEdO$CASwM zxSRez6!Gb`0Y$Siz7>RKe)4SNVh;U)`m8W;Z);+XgNwF`7e5Lv6EfAKGr*4;`6 zu%Ov+SB0Q7=2qQFxzxOsa7cqie7KgiP@c&u>fA3p3+uSDW+4xuChVx~4Q5tCShe*9 zYW1Vk=B^%(x9fN|1kp`4!&7-2p_egYrym=VKnNR952U%1n@FUl_dKC0mg`p40iAz0 z7}@j#cy6L%XU)AT$mWgxoRL7lCpXY2ibI8d9$xjQo|k@8FZN>`me z4`mb*bE)DPc)l0n)s8JQ3gtz3nj%dN;&MTC+!cgiWaVslAt49)ke6ZrlD-BC@5j67 ztp}9L{`d#Xsg$o*Q!tk=v1d=*TdB8)*t;(c(gB!0rqSz+_hqPyu4}2Y4#A zxC9r^+78J)LFq$E7sUP7yOz73O?B1`vJOSkDVE1bw${zC@Xx-7A2JlmJ;pnWk z-SP01Y?s#cxwh4K=opgKX?7p54dJDyEJuuNZiV)4>U5;n0z+J;Ro7`5Tk`l%Tjk3# zlUFRprS6iP95I;QrUJ6XRB>BJ;piYex zl}qxO7vO!8N|ql17SJW6n+;oH7x820SMeaFoXKk=oyUpkDm3~HOw(a+Q2v2gYvo>)MU2t0PoPdAX~XVxtuk9xx{_`mT==NPW8#FNzEGa zPo-7XZ(KFy9dvsUb$`%DIiPtpE${o*=m*hFDSvVHX~N2(IMBgKwWa?hH23Y??6&E} z+DYKnRi5}g5VcV>qh^ybEvewTH0yICL z`B&_26s*&LG9DQwG9mF7RiG>lkx~_Z_l$TM@DuL#N_*T)=SYbFEi6-{2!?Hqtsw0B zW=I>NDZ{68Hju(lM@*f)GO4xwwtnovPDI5T4lSMWo`3;Zh3Xa!h06%tT@qOB(UYB_AQLy zOA>7kOH^*{z_Zy+j(6J-Sr)=8O&Ww!aPUUPzHhB+pr_YVPggrnna3azUYG{1KzI&b z+@J4fhx{o+wqN};t%&S4z*16%;uQT=v?#n{zSI^{7g7U%Rk7DC{P4@@pV9)HxKIaS zeC@!O1SvVc74qrnu$A6uktt|uIxD6Tl!i=V9dcYnm+Z?~fCLwH9vAQwjs5+0PBwyA;%KU=w7Zy-if@u( zi3zdPcI~>bSA>SzuJQ2a{k@1~aaeBy))&~eyDy^$syrLvDdZ#~Ja#(q{9pBIxPyZ2 z57Py6oH;p+^d0VRH6`Cvn$&tLcxsowyx8pYxP6scM%Te|(q^k+{pA6?1J|dpf^owD zbpcaXnRA@!xnl@yvM_-(a(wne309r`Q+i%Qvwq+o#T3?*`XoJ>7{#w5&pZ`4Uf|Lp zoWo8-5czYv-_+Sd;zu`!4Gu1!v8^tWWDj`d#RgXH~)&MZSboWcgE^GqT^ho6KxJuJ~tIBGn4l&P{`xIQ{h`hDwd@CFdp^>%L`|TN&$T4pc(6m>_=}-H4$(2v+Xk z1L8ywPd-QOHT{Tco6L2Utk9}IV<9xi5lH2HPTI%iXNUDEV#!-y7rTaA6tU17P(e`e zy%LUosgl_JhJQupKlP1=>G`H{`U8kv3xgb5_i55y2}Afswxl&eDS?V9oRR6d-MKmP zH;ym(rw)Aqc1jm{4*zG#zkm4?TP*KWT?DY<&oaL%pi?#MoRR*Q2a1|XbpyatRe2o) zx1_)&pvvaByp8u$+j)`w(1+o#Shi?}E&3KebY3X z^&gS~@vVB(fUe&0GrG0SYuz9*hD-Od?jG zGL~Zr!82ikqM5TBthna$gi2Ko$#X#wGRQl0uFWUj(BiW`AdD#c0d49-jR64pI)+Zs z*^KW6^e13!*ZsLI0+3xqpVBe&-ExQxa*!vy?i9--#=KerY#Gn+Xkw1O;;MY{tB~~X zTA)+E9y`nBY@LJ`_4T-ofimRVzXJHEp`W`372W1kW3eT|{#wXZLML`z9o6aKoTrb; zYVT)9^1BkG{MFg&Cn10HP^#Bo+~C6h(5{y9pp=VqI`|$*-!c5| z)B67Jf+*VkYq~Y+(kYA)K4s;@>3+HLy^oNfI zjef{PV#r79cV@h!GIF=O72Zh8z)Xt6)>a=oi>Yb{8$0>Qm?l??Mo?EznG1*D(Zg<#=2IRqt~Nf_?XfXQuB5F;pA z)?gGWkeSLjT;=dr@Dqz4lnZr~h0Q$T$KN}`K?yd>1F*uyT*@3x0N_frf@mxfBYw!z zcHKFb7&q%ZqIe5-uiA@hRuiAZYZ?}ga6yQ<x7oc;hYcGo5J@IhjlHOozSQZUGyi$AOl3cq2kbA)oK%>gpOuh* z=@@kEG3=K{QV_+h16gxrhF1(&c>QJMsmsQ6EVdOij#&a4KF2Eh7z^fTS_4chXOMBz z2>(RA)gIssYSH=w&ol2FLR>XkHw%N{Y}`1Kz(twboOITDmk(2GPw!i5T4J=V?Aw3{ z%NY7jwlg)=$C)d8X=PTA}Yggf}cb08F}X=eJLse2(5YDX35jHTuY$B96>tG6usu z_;pQNclJC@_w{L9oK6b*2H+QP-sf%N9MRb(IvIjTj?(Upz$~|vs9=gZD={y|XA_$z zVxb~%1-asQn^+UUS*JW%in=PKOGK@Q16!*Q24*mJ%%=N7PUHQb=`kCNh^45?Ia8{u zNp}D%#7^ta4Ka}2Pd}yo9E>0%RyBAXWy#z#qreen*To@It@9Llcboz{-uQ4$o%_TB z}4O?8WB~{eCDNF}y3Lp16f%-Lcx~5{`H;C9u9lE-7;l7YJIar1tDD zib{I+Eg|g4ZW6<4>er(Om+ojN>ML(77AQ}?xq#S=6!6K*UeJIT&@#oUdajB)4h+ht zJk5G}%Y)u>jlKz1FmAYKea_}^rNuv+B`Wv^a8T~4Ix9?yGM6cCoC%?+K8|iL32s$ixk8~$DR`=h~A1J^a@5`*X z04=pS7j$bkf+9dpxOc{ecbvsMcTsr|*(eo%@!l(?b+Z#q&@xDjem873#B&g-ScsD8 zI)1Ay_Pk+sm2a`7ejLJFY-J7G$FBsgy9a=MC#jJMe%<5cj|RM zsnTbe)Fh-WyGP3(ln9z8S_QN1{W=Rz~U{nV))-v!-^3W@8o;WKN~0 zi#gZ5Ej^w%6_`+S-O`osMCft%`B^;RNG2dH7o#FHTipJr`mUYL&0wuM`fc+M)oN@d)RKQ3lA7nn1lY@AaC zA?0(TK(W=%kS!^YlR6n4^c$|NitY7hO5bfmi8DPQNcd8lAC474gZMH?2wG*wHeyjK z0k)EjAjTFnMM5^b`ldNc=59u<>f}#Pn@&CP)<0fY61?|!H}I-#>#_X0M0rtZg7BlE zARN>0^{Aw*{=-c7A=`siy(Ao23h6VDAh+oj)OnP9}eNyK=yp z2<)zvKY6$5*@OcoMf=!6Fgy;Fe=EE_L0yJWugk zl5MT(BKE-hHLU{$OPMwmQF+hNbEMEDu_MB3WPINi?gkv~ke^!PDykpo)1P5^v)WZ{Xh zmbC`?-O-`g?pJ1PlI(fcyYbZI&EtNkhi@;XHqR^SmuV@){hsy5In^hwNy)N%&S4J{ zYF#ch1a{a05vx*=dhRxYUp7l2-H=)<&&q*ND-_8YMzCeNKVq5g_vpkG7Q1dF8hA2k z8qmbkWyagg`p%3!lG^i7d#>Rt{I*mc>-DA7E@tp;0krzbd)WL6k|JoabS~wJ)g^^H zNx6jtOqxlpd*(6ecvcTlhH=8UZ@jxS}*T#+Nxuy_d4AACqF+(e@N^?H)kYE=`i1?v0D^Wa2MANiFY9dp>}PPx zrd@UXmT@_Gcug5a5zJfFqY(W1-Ex$jyw-H11~j(Y+Dt33@jW z3)T2#!_n7t{N~(Wak%23D{O&1~XxqTLoUxgK z$?(C@Q|}UG0%YZ0JHF?BPsDic03f`}vu6Y92`PrOU#K58m|v&1MzGNSAK=5pZQuSV z;8Y%GC>1R6K)Sm135aal5Cx&80<7E1X+tQbSMq{quPpuU6~pHWnb*I^9qv}G*?d{c z`eotL;XbR6WVUV_NnkE=w>>(gf%-tGOh|d^4PDRoF(n(9F(^U5*4F`aLM<-Lq|MvcM21_UL}7skt>PNw6WI0xzm5KFIw; zUwrk_v0v)%s}sdvXt-Sx_t!G{SCRR+SH$|;{gNHIgy-@KnE5f@QrPCTAwxH=4z=aH zNiu>VDitq{#mu7Zj{%plim1LP+uJ3gti^q!UFBI5={xoFbu|yAY!=k*x~?w^&-gd0 z@CtYSsVA|^t}PdC7^1Vrsup3$ID~#mws={aRB_SWlcj{MYmb}i7uU#aG0_}rJJfqk4)?@)f?WY}0<3?ZF5sNmH)Fhy ziL?N)o^sh{K`c30M6{{QJhNYf-QIw=!D2=k&Mrr!Ym<0-F7w}1{;|W4iUxn zmZ`5ijodLrgC0x65orx{xb;kNgw$YYzUE^Ve%qOj)h6ub-k{3 zezlo&AXcuQCCbF=`otiX(1bS#_nBb8P4{F^a2MyBIr`T3$L(kWP6y{04gyqN+G~p#!OM5F$(@Ckd84O)Yz~xZkEQ76(QY{9%?G_i zVmM!Ct*YSD{O}5Ec-p3 z+!j11^LIGQKWYSHuA{oS3DeA*nV)psHN*!pyf;tO)x0B;MXI6D9mBf3j{Ws)jSp*PL+ClA9bt#1YKm1<@niq$qxT(Y{6l{b9*0`qv zww#p%9$j0!AfMGYw8$tp5pvY->hhb;u1orHT`DUmJrfp?6bkx|^1 z%+o~n?{}tM(0WkdJ+$ufqoAHTx&^@QtNtr{BPHxG$fikjNlc6+67~bH=li(E%Tp8a zSZ>E&?euDUUzmKDvbmG`O5)HT_{nO;x6{5xC%i~eaW(9v%`*w0UcpWNW8(~CmFc4` zVym*qM`_Rc7ca5O9WdY@ieuPuzLw0Cgps(~vi=%43;8KZEE! z2f5`AqwWc)b@&lgQ&Gfqh(7#EKXJt%I%_cVjGSa;*g>=ro&p)S7&o_B)30jkyqWFE zDian9^0b%Yv~V&9i8tM2$v~+ncQa)##N-(wCEMXri!|q zHz)a<+(=yl(6nAN6Z?Y9y674#ZY_y?ea(v%}oSl`~hpyB6kL7E^2Fvy%f@Ei<(`CP&Z3rrb6e z@^Lowa%7aGExj8e=sixqiC(U~WA9UpmKmF_8cjY|oJBdTuqURP`Q6~4)$A=by1|jI zwB@%DwVK1qVEc&t)HZED+c_JdC6x4(sM)}>^(`<2SH{-z5ryb^(}yHYU-$g*1!U~v zWf^WS>!UHesAMmJ?VhYQNz-H02+a9~rPVUKe}gResoR45>eFr@aqm%c^?zaY&Q&Zm z*iXMmwZF6Z;L3lWck)*)Tf+@A^LI+XT_>vdwbQ=z+6glJg=2dqd4f^`u31W0^np!^85WD4eg+q zS(qbtvsGQTRson#Xu-AH?YMV**Lt4TiG=9}n#F@VyrOMFUu>Ycmp(HqF+a}Fp_=Mx z5%4R~`1qF`JD$yQ^nXg|TshUZGtxbo3E`rJ>s;RZQHMH7M z+vgkqJ#H#-;3f35*GX~n0k!#TmB7n9YcJaFhMCA9wA2e%o$ASB$u;Hw+0Gs&0SKBE z`H99e@C&;#?*zzvU5}yt2gmhZQ3pLf)kKdEd@if)|7E0hKHB3oA^{o?TM$#vyQG}z zKc)-IjruX48+)kUPOtHw#pQF8Ggsh+2fL98DR;Y0<_eD+{8+0#|NPfUkQaFB z%rlh_WKr8kR@$A~&AfvJpA%k0h>sRra)fC(l-izoF`~b9iTuK#0p{-i$|d8(H@0u@ zUzFT@N7b90O8v3-ak}bdbG&KjY|D8VYxxz)OtsT)X3>BxLts9Q70W(J$s+8Nu0N{( z$?bpqG}u*Z*o(lSBC!_5p_dbS-#-4S&zG-Vd~vGszUI(jOI+=u>;)~gQ?RA{CJE`y z6DP+l_C6%Ux-QT9z59F-*@F>uz?Y&dVapfxMfRvL=YwBYZ*OfC?>kA6AUrNNFHDU4 z`zmY{uKlWlkgIpR%eJELEr}!ngYjYwDdV=`_Fr^_Ou;3D2L5e5NFo~YI(B5K*syx{ z!X<-gS8sV4JeafCI^;2Ui|0&OP0oish@_tq3qQJ1Web{qf5-Ef?a6|S)7ChGJU~Go7p>XkGBD<;u%LgNzbFqoy>b5p9#$Q9@Em9eeDo3uyVqs z8bOYIa%A$QOj7+&@nDCx(&8(9!Sk7f7ofYs=%Fys$U+wNA#eqk`fGI3cXtL>V?F=k z4}J+WdO5Hm(-oL?G<`9ym>bjSd0f7Yk!$=-(0*&A$WUfG56SRaj-za0KP4UIl@m?Yygj=RfK)?;Q64HNP`O1@5Z$L3QT& zR20JgB+x~t?ey7 zR^Rmx%mG;RCy5h+@~M|JZZkH>f{geGoBih8_VDxR>GFethl1MWf2;XNh~HU>eR?v! zby=BbrMk;%KI3|Si1*_A665bJRgv)T$sT|=9q=KvA*r=r^n~)jC!_{0hjy{fXIXKpR z{vp(jH|FwfIaN9lr2q2F3t_1i)o>=Sd`{? z5xPke0p}-#Hb?_F|V?Lm^qY!nW6K7^61fPiY5zE0l&vVgH*;($m{{`;!VQC7{Ani>dB1YXj)CzAR_RZCQ<0n zej+y}cnnY`jr;OJqR&Vy!PkvBY3&xunVr}DWY?s}l!6noD^9OoFJeaALJ*cZ{J%-z zeLnR3&^(EBUArEe(6H&M|7&5`LGW=3H0{7s;Vz3ksZNsUG<|zQ<@2Zg4$XRga!sVx zJ!|}rJ|bFpm&L2D?AplZEi}8QA3Dv#uQSloqGIw{tLfZjl;+P)USo`E;GB9tknX|m zjLnvH+7>^Yi9URC)@9m(HHS3F?Bz&8$iJj?i*hvwMzEN&5M+ieyJXgl(I#TVO1FP# z66L!%zCH_K7kH0Ayi8j9++vbf`XD8|Va#c+RmV2~$m{CY#gImJXpiQl|D=x0-Mbh% zbN2FM4n3#Yj^7gg6x_dkQ`6G2kxcmOhPOY*HI3CZjV!@muu$V23~}-*JzR&#S{h~k zZ_59##6K|I{jdH*xrZ6al0k=`rzpDCRxV1SexTM{_UpJEK2QLX>U9Lk^cft&KZJAp ze_xWndUe)?n7bZcGoQO`RvnlRq>+3t1+5SH+3=-nT$ltc%#)sXQv*1p($?p%k*|*U zEG(Zhw*JW6w;Xhx_pNnTZu;VWfO_PH@W=0`kC+dGT1;t?AhT*a{^psd3F2gqJhVjC z-#A&+>t$CPr@f4=I@T~<1iNhL8?crL>b$p>5B-8TR@G<$@4ON%j|MWr-lAV_{VK)# zmLfjincV`wHAtCDQ6Kap=dGo;A8_4X@$xx4FEzKqIj9|7UOGbWbLN(5Bk+LwsCZ5Z zWqrxjd$=H~`_53@*rxv6~R zS7*(JVwGB$L2LxDkCSU6PIxVsds#y74t_9l?urY4=TtRH4tPatNx=j2yNexH)*73W zUJ74Ig4me3Mc50M{wOg&%w*@k`t+Zips&Rqq{Qem!sUr{rJsF0rm9@w8$M`>G*TrhdTZwKIcn8u0rzqi?|D9*#9zCKt%UqEF;&s5*iGpotk+VM8EFz{>wXbz+?>M zo;rqwK#at;-IGzN`wHUk*qDyJHRx^(cbCuD?Q&Fkejs3X&!ofJK~XQa?q7~1)?C2T z;Tndr#!-Ug)Zlu+L#qB`Q0Zy-Rzik+)9tjdfe4wloU)V!2QjipY;E2F`Jc@HBkDYZ zn(DrAuOjdQ0wN-aKvYyvdhdyfhzL>y0i}b|doLl88tE!XhX_dTy%R!5dT-J~Pw1f} zA?5O)J9qAv^Wl6rGiPSc-fKP2vwr*6+D_tMzSeon42vdT$uTqbJ26Z^q3c!x3$HK>EdPhGN10@()VR5UCS;Mxw(c z9$T~*lz%iWH&_d^Q#M0}KqdC?OVD@R0KVeI(yB4z-B6*L-urb5z+3>iInW2=q^KY# zL_hMpp6;GulenV&$a9I-Z!|7DI&IfgTl>haFbHE+<_Yb=Snj^uq~feJ%OUq8dYeVH zaXs;+S1OJ1oycjO1-)5X54ilW8Jvfzd}-N*ebpDj#ksOiA|m6ubx^du@GM{>YCP@=pH@@N*1F znbV+Vk2W(u&XwM^CI6}0oWp)lY)=fepLR5}Q3p#6I+_XEL ztq*)|3UV(Rtd^l+{n>7&fKS&a6#CUwlrVv@`+@cRh+OcUfS!C_(-70{+vlk z^OXjxy_bvB72sRVv6S~BQddPOeOj&bnLmg|ZgHzP-P4FKGg%Myj({(vkf~6e0|b+A zIV~y=di@$27o1Y(HerMbm8loLyBWjdw{zS{bvR%} zVM}P~zNecX7M01Sx_@&|zQPoD*(2Xrn`wg3UohR|T0^8f1Rc+wR&~!NScz(?rV7uVW~huMM5a;GV8Gnof@iWD||tHTh^dD8sLDvNc789$A1 zLSZ?&42o~QjFPr3W~0Z%D%OMf(70qO#IeJ(UK%GVi9FLD$bH~M23CtJ)^fpOiLJb< z8Hp>fR_en@AvF8q9qBnmfdEVKte+PB^Z=1OJ&nHlF26{-M#EHrZ1w2i^8l<$ z-I*TxnW@!Pc_wiUrHPkr(bJP#>NwSU+lrZ}i|()EuUa93?2ej+ya?(Gm(qn?2V_Ze zDr{05G*~e0=5caQUGuh2A@gp&W^};PdJN8eX`j?dU+i1~_wPTN@SlWZv&@C2-$ zgZrU-s@g<5xq{CFaJ0<@2S;F!ipPV{Gyz+Q?)~Vywl`{#RI-=+JcrhI2ds&UQ@E9W z0Cp#T)Iict2%4@cXDz3@!8U)Ygo_brI}Bd5Dr@re8TyrU(vA7F#hInUQ>e(cca5vz z68y&olbYVv6!i*fVyitX1Wi9=zws-x`(B0oV%(?Qx_a%4t3r)z)5+8h#-g{Cs0;#| zGXX8i?{wyB1mF~Ibm9H5U)=!kGp`!HLUY?sRgmieI+7zQ<56O${E7bOU(A%}gUk)? zb&t_TAWcQB{o)6ZkDM@ZQMWx7gOyvK!k(s*JsBMlPug7PX7a-DXUu_e{Mk7$Cw^=y z`;3Jnz%d^u$j-$T6`}No#v`CxC{4(3qdeYGG^GLB(AR#FA z{8oiWXV(k-j73h51p<>rT1Gvl5^@Fo>|#l+OM-5R80U}RJ+cZHRz1PKY%V!|QN>KN zl6I3X&>*{%%CPq$G=vFqLM>ffY>@+_2QM7hD6kE75#u|#J1mipXZ4US>IbSsa$Au`8{$?-jsX>niW&npN|&VoE=TCxv(U-YffYdfSLivDKTRdn!|}jB~+)xnuNQ|Ch>{bS=q)91Kl_;XIXQ z;m2Qnxr*X6^EhcM8URV^%E zI_amBK0EcZSd9o=?vZ=XCT3*4t<~5f=3}=*$cR2*fT+tH(c9l}#&Qf#^taYOVbXwc zdYl~XKPm|t62|j#G;g`pr{1m_9n!Upvbs0Mozq!N9 zB-wl-vPQd4him!AH1pLhvu#i`oN2rhoAGMTbTg}=p-sxntoEldj=LiGr;I-Nal1;s zw?WNWso^YY7gp$ji4xtM{IP@jum{@fiT*(qwLcZlagzT)2FY4w!i#?RSKKm+c?*Cy z49?4?T#EUve|jfH_C=gC=3Z^;Q0=#1Cj9H>oto1?ZmJH3SavG3)-@{uUtA8mTE&-X zj!KV+rNZM<$Ot!KYUgOr`|~)$9DT3fev%57PP<@w-Tuhq)~f*&E$ifq+M*a{9kGUq zUbXG@Q`2hA#Ovv|3aT5-rSFobUSu)7?;A`$VJ=zhAils%a7sVb^I*9S5yiS9v_{6L z>QvN3W_`@*lq)~@d}e!Xb`(`6+MLPx2lcf!bqjoGIoQq(yIV~cJQhMD%IBfY(d}Z7 zs5Br?ec{{53QPM)6d!1XS~0txBW8{d?+Y6>FO8;gkuseQ-cw>vND_Dogdu1i}@ z#5A8iE8KVZ7#DCu;%;r~)J{#lnNPMI*X)suvfoXmXu1;OI0w#@PogJ8$eIV8FZ_)2 z!%P_;yZIDU)bB(-DYGf3RJ8h-+vS-wJoLYr3~1Mgj;RHs2<6e1Kb>_8xi|KpYr;4K zy6}sKzL8Z&i3oQw-G&ep0EZaoAC z{-kKX)>z|kX;2NoZJSvge_V^Cfj<}GZyUH18Qf78M`wW8q+e!AROF4d?9Ia!%7j1E zYEW|SnWc&c;3V{6q*s5iHgeae(zTA#WvoyLY4$wYsOF9xc;WTekR7<# z8nSNT^kxa(2)Z^I|NA0@8{qfAZKuh`r(b33fTvVpysQ;HEmQF+#ZI~0RU@FT5h+5hT zl{?7F);H{ler(g`+FdxTy7JhW3qbRFnQr!U6x)rCKBD{Qc(JWm1lI=-#j$rOL)po} z5%6UqX=m_M;QZ zC<^V-Xu*CYTN=4rwHfVR-JBs$H(>J50J{Z%*6i(17KNXIA)wXw(X{`NJz<_YLf4n+ zdL{SlPj zIy06JAJ4Ov3hiz_-Xs159HmI`RFbv2e+u{=8(|M!M{JOjWBH!-^Cs}7X0*CEOat?&9jbBu28>wALEe?UVeHd%h%P>fRB^W0gJ!<}H;ACi@r6jC@*1Rsx@FPS+pXcdi09ciyKI7Jd25&wz~C7ug;>*I5mIivhd z1)>qT?OrQ*!Q>P+%A?5B%QV+-6uVRnG5Sa=rak%255rn_E~$%#t>p+im0P^pH9~v% zhuiX(T*~|w{Vn0RDQ*YF`0>-P>3c5+e(3P+9ncRrPPq&KkcGU)uXtPr;HjH0{$YDd z@De@4^hwJ(!krC7tZOj_x;9SMXTs9Y2izH_q)YC32=&Dp8ua@aT;Jro+uE+6@q)s&zGX7hSi{7njVQ@>uuf!!rc!Z#0G zHG&NBh|I3_qlL>l#9&cM&*OU!>#_35l+w{gRID<}?V;0RD{Z>@PS=07|LBN6e(OWq z5pql)Royl(ckaf~ZOO-G=?SjdPsa9UT-i(X7YB&;9{WS1Ub#m$*%vw}y=PuCn*qA} zL(N0Z7`~<17o<7V3H(>)ZA#b1eWj3~E`jWeWUpSN?VLzG8T|G|6X_D#MV|W2!f!X& zrEIl+HD8QBHCXPIF1x0=+%G&_GDhtJSpn}$LQM|nJTs_(-w8xYyfYm)Xjr;F%5Kcw zie|+bE6PlLEJDy!C>e2I{nlA|cxA%Ez+3#t>SVBtOV{;1Q~==RQ3d)J(c>{L+>EpE zRw(--ZuuWn^ry5m6|CP_x_)YK!!@1TLvg^LjKhmRV^JRTQd zC$MjWyR>tw$98Z9q0Z;npkM7Ra;j-tCW>Hq^n3ePN*U2!VxQMDFVp31q1#DzFVU>O7k2n%85 z+3iWRq@AzPuL_yKUi*LWiP?BC9Z3h?c-_TLxQ&q_)js`5wo&Yi6`rXT=20#_%D}C1ME5ClHBlJUQP7(7M5-WVRRYANZ0h_Q~OrT)f?vlmF{vE1z1) zkj=J#7);$CLu^_ID0cX4rx zem(L2A~yONHMIvMwoI9k^p+cKGz3<$0tHMgx8hnnb-_V`U33=p%tuGpxsN!cqjimt zCUhJ3$^@IwJP3jw+xuU+NcoIrujT1R`k*wDA=nhgBbHw>B)T^iOsJDi0K}HdqPxw` z>LjRMZ!xr)pc0}i#sD?nxiV1%xQI3|eyn$7XiWX-I6G4hWtu`Jf;C+ZirkoPXyHtnB z0DLhqk(>%2^k2GFPGIc@q!?9@SY9It0i0n{z*$K{`jqmnDCm_DtT42HS)OM*eWQI4 z-lJ%JgMPT*T{N=K1_nAvh5%q-yt8zK;Gml_v{ z`ZS4Mk#)V&4BU2sOfeWz`fox?3*_4+&tJ&5MacEIq~s86 zo&~KBQHxti2J=B_VrvgWR2*cChk{1+l z?#WV?1IG%jh0ZA_%An7x8gxA*D^rWHfH}&3SqmD78+GS&iRS5HjAj#E3or*QZsCw(Zu(ntfMn_41@oP-bAN0;+*3 zR$=XUS9U)%1XczEu4kR?DHfc(v?EqMi?JDzLxd!nO^l|LMDedW{4zu%h2kEzawdnVExf;{M+yG~ za`uJ}D`;C#QfYF$am9WdNf(JDs{wu0!}<6QRprK3ZPcR|a0FL2&@?;$n!N2Elrx`a z_w%Jnub#V+hRQonVSHy=phQd+J3d+S(Gm4W8bv~*wJ5<;CjMzO2NPaO*@bA#uAYUq z(Yk=r3L3z{-`H_Ha`@j9VF|NYZ~YpS!I{9pjTEt?x!w(=F`pDu;IUB+p|&%M(?_VxkNej>zSKIiS+R`E*{Zr$5SNjOLX3FKSujM4k_TynU}< zLm{-&i2vBBJ%crGf$+9m%er;p+lw(<8Pssd7vIxz(J94LHl~_DH*o{&M_(Ij=5K^? z%>G$aiXAEheQ`-~IjpjCNHx9g^t@Al`6x+w>5mcL(Qw{Sje()~HaB=}elYtorCY^I zORhD;Uu0jLsD0-uw3*cYF2$nx34F|_u_&0_Al8P1U{`b=8_cW6bn2o@q#LB2 zm|k*eJc?>C9XwTCmIfO|502ewW)aPl{BMT*o=K1Rq^*~F#4}g)`N?l&1j5hmVyZX8 z-e=q3#lb_njo3A@eaXSmh6i9Ov5>)<&0Nq$A$Ijdc|w}U1to#5?lw2eW3V+acF%&kemxfi`h}O*jpZ#i z#PV5ZwqG*)Pa%9h^(1pnvPM2&KMiXJ*5s71ECZaC?ixgeak_jk9Hn@)j4w;>DobY5 z1suw06Kw*y99n3HRc?Hy7onkj%>q7=GiOZ@y6an4s7L7asXn#gVHm5s+Qe$hsh~UQ zn4An|%?#=Vmw&zO_ScjSnZG%fg0yE>H??S6HW|xqTQ~K?IxXG0bysPPV1z`+$pR0g z@$L1pmF;7O+kcS%WjcnNoFuE9T^05h-il)=`vE(&)E2J}48IO@e=cjygMXKHzQ>5U zuknvo!h6D^MfQ6XMpOIqPf@uhE{Zw}`STlKXnM%ys(63Z*&a;a^iXw$K?bH&WzA-*N0_q-+k(-7uBW`_ zN;!kt8qBxLrDdBL)?^p%3}-xQT>HJ>w~d!ZOuC-UVe8Fmo44ldqy~8S2G~GjvCP;% zL$`ezSm~0mg5t|5uRwf!L%k3SlarO<$6_>fro`-KRE|N|I|rRl8sc>#=$gpv-lN** ztGEatZr0`>{lL!M%h9z{K9OvsHYaq-gm|}p@i2ng9riTJZj}j(;y)xwLDgkM8zk9@_-p{2>5++ zZ45);-cO!hIcxcxN%-D&cP7KbL+L5cY|=v%UH6pKGlSf5%%!ZHA$4mm4T41{8%6TZP^>qJd|R* z;lUjTjynq_JMDw_ZUV1fRkl03G>&-?@`H8YwfE}(N?fzBL^ebTtc#c9FEM6gnA)HB z+?Mog+RI;aUWHjDuqp?uEOe_$O4yY9h$-pbG2Y41Yz zhM<~34R?Av0ETy;k3^5LHXkP?AqVS;{PcNu{>7z};YNoa3-aW806&+HwR%6$%0>gX z;{D28-DCwnkS;4l({$AsIR3<8Sa}I=w+lf@S!_~IgW~QblcLFoDyoYsxwzRdmy1hk z?%5FnXKBzTIqnx`pSlEp6}Y7|;SItIkY8w!R|negR7P1O6&c9d^D(I&y)y;_R@R5S zMrhMNNq0P<+Ji&>OqNe3+&5{XF3Y6o6q)18HT%xjIC@k06@jOtJQE!TCFz~CVCj`> zP0%y%F(2Kvg+tx=6t-x#E_!KjwI9}Boq`f5V@^f0*jaXRrPi@P>3X!;)h}jND7@$d zz)~|=Y_P-q-e13ke+O98k#Lf0EAN&V-TSPab67QyqCNfebB~weJL=jiHxH-+bgf81 zaf%6>tAf|_bV=H6{nabCN)ffo*rvgX%qXkcNdfzpZ0hAc7P@Q4_XfGuOnbEpkF4(h z`3+&K!kN?pH{#j&5ViD^q{q_Rw5nxGir-Hg=OYKlXvkY0P3=EgcndmZg*?Pe_)eauA33 z5_H#~7&q9kI|3%Ah*Ceg;n#HuVCC`I>+~@&_5OiXec5uL)*)%wS!|lNJnPj5rj0e$ zDG@%^Gd0i9H~r>KJ9#Ye`d|{?R1Y6#F@{{{(~9|GH%W`V3i5@edQ=cR@bHVXOaIf^ zg~#Ojb^Kt=BmJ{;yM$1{Wj1WYlh>U-{dH4hXqrE(IZz_8Q#h8*XBU{?Nmm@$U}_lBbV8c7h&;XT+tFK+l*~ycBr5D zI%uUBYK9x>@G0%X=7%)uBaQh0iGfg=nswHszn!;Mt_w10N@^~t{>`f`?agwJjJpU< zd%|>PaBYe^kYTvElw0&Pv5CQCke}zwMYrviAu3I_{3#g)|0}Tnt}sf#*K zJV@1?#21@)86lOSMkG;A`%%_;wYV$5j0l$G3>4Woi$I};kZ z0)Bme3Y5DW?U2Hh$yz&VMOq#4JhuMg?LI)NOd+ob#k4t5f_dF&QmJcIbA>wDyP1i_ z*UxUooU#&&h*XrEGjeJ4!J#}4F`Ale0?G`mmjQ^ zJ^7G*>$jxYpB*~gmmXHb#3WWZ@IzDdC}ot$xRlQYc)NsBy4J`mgs!fHzp~o@R;0X` zIq{(9M_cFqKn3fc7iaaAsH(yGCqJ9)kT*D{Wub3{w+Bz+#?qnj^}C?a$$=uXFc$na zLwFt#3mHGlC&%MbzKZZ*vMm+O+IAjCO}3VOnwCNQ4M`Wd;YZytERyZ^j=6N?BWjR% z-8}EipPTYgraX!0Bo{W)fjF(x+5@@|I5lf6l{HWOEKqtDcwUsrTwdmvTJUb+?4a>M z&@P{w4YT^(r?}%1=%m=ML-U1K?JDzgUv%)SHvKo|eewo5*vL|EbiH3tn?z-PKE!+| zU?@}QC@4iuxU`9-by7x_ngtgUxwrfnN{V#Zxo*?5-}-vx;~%Gof(kEf>1&q1dddpo zr-Mzuve1tvF&Uu?pL*l2ZAyIQ27O)quY<)re)lcY+{33VH{D7f5~0vd&}MRy*IfRv z+}A!it*PNto6Ww#A1PLYjhm?fPJh|_oaoJ^uRd~k3;r;S65)_YNRiE&CEdl^*@IL$ zL{JO&+$%`aipQTnWj^Qh-Tnn3mH6J(QdBV#eu(V`WxszySyL0cD_WODc$9pkIQ9tT zw^xCS1{`mjh-{3~zetllJsQ)e;b@BaOgPXM-#(kw zhPqhS`d8*NhSqxa!HfBc=pcI@fZY)hGt^ryF_{p=8f(@o)K+<{9oXE>mINE1pTyrf zeef32E4J#|%V(q1emaBkcP}MeZenJh(EBz#sXn$-ZXKW1+%ppdn#`}6;C|9Z#qv#p zy~eOV1kPK5m1o5E>pVriKV`5nr=5Cl<%@voz~FZ_a@cWb9UoMC{G%sQstgky-Xp4o z6MkidTYq}Y@{MD=zJ1bfyroiyUA-#}f>!i04OgVD;YGb#-qZ*#hJMnNEdywk1ioAr zIX&A@B5mAn!%%x`^}5y9R_*)GI|k&$a;5s{#<4R2G-%l8F{<(D=c?yV&+5T3bv*jJ z@S{{(kW}2fQ=0UX1Z0v@m4;#-Qp(s*xbe*|JC*9#%5UJfC>OVGn*iTP;Mu(>LiR`l zj_O<%Uj9AgNL49KIGHd7+y+(O6oH2HJOgc+>yOrQ7mZ;B*ir zMUx}rfe5r`s6G%aLufvwEu+U13xjqp&}K0n=~=kPA{$#1Bg<{XMKcKHcmUASJL#!o z5_mf@vo!7fiqswBfsm|R=SI*RvvhadP|7syY5*5mtdyB0;R!VPx&G+HU~J*-Mmw4H z8CTpWg!#Q*pjYS@md1;`ay^C#7*1J}qLtj%66DaT2bkcR%sENZ^b&{maIO%f9*a<| zo&OgF$9~_CslZ70Be|Af8jL10C=oBl@apJd!qDuN)VbUgYRpF@)WNRndw-wk5jB(gf_Vspm(%ixF+4H zJLA1(Uoo>Mb|$?ic4%>(UWZ%$6uI?54?Ay8Gf^)6a;0N3CsvTV%A91TQ>aP8^f3_QZ&sgVf%|mb(I%%j+F6yN(`F}cK`JGbL7z^6kfKB;>WD|I)gGf_^readv7^O4g^# z08Wd)hxsIEFG?L{;0-P3!)Zxoq=z#v4+sie15gyb3F_}$$IQ7n13X?^$ zx1y92QHc0gYa!?WEM-k>=VW(mmgoT(o`7Gzo15c0plD%P?OEhAuEHj}y>#?6rZq~{ zFig=YT!jQFE;6f~)YYi!y2s%&YL3W7?pvQt=@f^VDi%C`mb>CoWymKWNm`@!1SYc+ zw`={#CC7hM28M5W0G-IYimSM%^Y4J`48k&DR!^cHO7L^p-5HWf*I~%0Y8_B5G0t7M zP6HU@*dcOF!{1q>VVvTRC!<#`<39&44>5;o%6xHLR06>1AgxFsJ}LZ2?=YrueqC~S zk0VEBd(5|k4jy$~vq)?klIoiK1AkZqd4JGyyeaGDdiaz44%AnP6=vAKX93?8Eem{Q>d({%I4p``@w+iSiFIvy;8Rk150jCn5ydsNmodEr68WWd2&rTc*XTz&k8%8tTd zGK+vkeJy)WrNqQ+`oEM9TQZUuU#_Iw@saHzNJGX8!WW(LGy9fSU=_jh+9IRDY>h#z z>c&`Fq0=La&fliHtkRd#_KZq-7&}Eob?G8KIU`csx!@6hFOpdcZS*vXteOYr59GHhL^={QHQ^*V z0TP!x#?!iZFL-zY#Jrh{p-cWzpbBj&{R`#|PiP^c(RHwr(KYf)=^i=7LRE5$YQ9UA z@c8c+(Sl`!)7lT&HJEkl{aurWc+HGun{ZRzWFY#${J zURs$i9@X?q`fc5Bq04##3~E~A?rah+3(F%QVpYSoQmlh%6ggDj>QM>Zt#67iS%0{_ zhCvx&l;D$8Kb%}09UbMvXzW%mh~xk&Jxf}q=xp%~|EU-n2`ztT!>QzDB*c)HWF^zK z$msV^xw{7PcjoP?&7gN{NPt4bUo`=$xf^Iy(8=_ssFj_4WrOXzRyySLlQmQG>Q&Gl z6Qp`XcueIPK6vO{n4d>A^6sK8{*Iwp% zACl7^y*CpDbN3yYKchAJ1jk`teIV72GY}Vc_5e19&$4$`w(ri^r8oA3# z<)+H?1rlP}>Kgdd%&SB)>Y(X^sZv>G$-Ji1vG~!=CrfBp^ngzg(k4sAlpMxZkXN1a zzMLF{3hWT2_W{|GGauKO&c*{$?kZ5W&a3hKLq-LmH7XzQ&9hp{owlE*x_Vj`@< z1cra=r#HSiRvfdjT#JxK=_(p&v>jqve!&I-k)iOn2~W%SSJ4tXUPz{=ST6T8pOOA| z+==XPEkAtJH;83ST%cS+L8{bI@~WR+y2BuGC4ih4U`$eOZHldO2`rc%`mUSgFpF{c zIbxWot~QzjrburkivKLF8MUt zG^4lZin*l~InPK?`t?IqaC8)+@1F91!Eo;KtI6)hIiV5*Y;ZRmRa6|FH~I=>{WQDc zTB+|RraaAie{bSkFt6v!!GzX<1^RG{0u2Q791i?w$k%$>(gv zIPoGjW^B>YS2XRw-?-BQ@q2mpHFv{MLcBSD@720AwIyeDGf;>bO?S-1thdb#Xk0P* zy6*8xuE^h|&~8^azlaK7$u+&etjU~8Tf%}nwRpt^BqRdRw)Tk-_Sp}9N5xs=D{;#= zk|`R1X7{VuGXNKgY}%8umM};+1`OEN51WDymKyyL`J5%$xstoaxXOL@_M+Nw7qgi0 zuE%fCnyWg{PNlhE4ZAJH1kDazRg?*Q+Q9i2Gkaz|2>xgGE@Z&1+~>mKB<^L`W3)a-cg`Mp`z4K;{a=^bBW_b?<&K9QW_ijye4@;U#wav!>D&?Z<9I(|=Nn+k0|Pz+c*_5q&v4;Vl; zbd%~&i)SY1F*FxEuF-Dsr_|k;U?=OijkuhlRHo?GkIoeC`h-oqXivjVa74(PLoGBa5lRK4<{8;TsdM@=~0N|y_Ny|+Z118QII$j*JQqqZT@ z_qMi=QO^sHS0cFX!nB&petdLYVCPeqNKyn!Y<>vXL(RT1*8-dDS=~Bnk}w^8-`hzp0kq)Zf>yGMtD@o}BhN|jb@E&y~yE#Q>ZVWCZ~<8DBP z=G8xlINNDedchDccN>78po7*lhR78rLFjW6tR8T@Gu&$Mzk&4=`}@Zhr`L^vIhp^J ztschN_VA47KROw0XTh2;89XCum}Qevwhl~y*r$P7sr0C{pYvMoJPYHys+;O?W)s}C zy%Q(bv#gbrs!x6{xSJm!vu3hpi#a=dn?aP_-gDQJ>6+=&vdor`A67yD;8$$tqv}Sj z_Gnp@A^BduX(6isJe+xH-17r24mGJn$T4f;5fG$|jQ|sX{b@0ifwLH3!FEzxL(JUr zBr^_!wcD)iDE75iFhmvqSFijS05HC!9Qc3QqmKWz^ElPv@_TGn%}g|jV;OC}7jsjP z=QoVwGkTv;DY|XkPI*=+P$Co*x1EljX3!7$?r0YFfL7tc_?J^9TXVAB2X7Kj~L_4@!BcFnC|fT9#=CuSU~c=o`K9&`p>F!LV$x z*lrxnvY$GwVuUmP!`z5fR{XWqjo3XjQ;=i~e-G#VNAwpDl`U}Khvf6=CijLuWq@c5 z!CiY{LhG_JSMNO`cO>MX96nhz#1NlQM}u^%D76#gCa!*>)5Z&KJ0S|eKaG%np$Ej5 z83;OE_{Sxi)$ww?rSz%W5_0x|=@V+_$l9ROTS}R-CuSFp(ezp+7Ez2do?+~A5VtRZ zJs~m)c&4_5m}bh3Q3d=_bp|zd6RDLD@ySKiflQCsh)I!wbjdJED^IWsA^I4$6#la@ zUdsUl{3+j*SntS;CA#4@m;Zr;RK*FZeh+URzsI|Uh0cwv7<4+h?S=ech3>paDHhXP z3wak}Qtp3?0WuYK&=C*xdm$`e!TK=z-BDp_2R8rD$a0`J{?DZ{7qyCB_*=i#Ez7;L z6`YD_%yzQP5?zUUCSp)1_y_(?S%+;}7X7J#NPlNvmR<%GMM6th#@7Ck7Bz9LLJq#rpl84#9oE+{h%&ISmE_r{BmcwYn4Iq?gYL|%4ygP{!- z>sPlST1wA$mP<5fD8yeTyb8dfkf~yNs%$!7x~U4j@%`frJ7>DDDB`F3g9h|C2ati^ zU8fwA0+7>VE%!28`<8xWXr8IPF7OXbG}?z0;#OGVzWjF=(b=sE>s(cQZnOxz>l2y* z4VC{6u%zpdVFYHscU8*jiz|4dO=9)4u;eH0!-5778^bwS5=#J1X>*frT2=;y4qR?w2IB>%Y?G8W>|BVH_%{*73N zj@0lihroW?y5)`n55XD^s&fWd*iv-vCo;3`g;8(*P17w_djuJSfZz!;myh|GHt$Ql z+eZXMTxAwnChhx(ER)abMWBRyC^~}jkcgY4;1Ex5h#;PF-T7ibTgbi>%-8MT2rw;X zgD{0JcZ}WhJo4FvN`G6mH)S?xncq99;-*QnPxtxIud29PwIcdEdIYKVxn~t2k3Qi8 zH-4;Qfn$lQN|7mu8(OE_98l>Tg2R;1&S)NRtzh-+Z)K!4#zi5#+FV~rT-uKZzQ1N8 zzq1+j)?$up;|;`Lo_C4o+^w&O5&^@#hJ5yuLQ)ak((4UDB#%q0&~ApsUx&vEoz^Fq)JZu7rYU3s9Y9(CaSX&QD7l*WNej*vLn-PLs6_evm%Z7lr91< zSHJ~z9N6=Uu_xiP8blH*Tt%NmE8J0F7VFRes|FiPJ)@{kTRWz0c&n+3Mg}?#)OL=i zO{xOEfK_U2|BPG`z9d*9M3YxFb4+EwW{n1~Bx$V4SchZ*nNV}xGET|ElPtr2W&BEq zb6W?vC!A)YO0nxXcXL1rWe@gogG+VGqID-KhE7jL$EcF~{z1v?<9Sj*4z3qumg z1tjwyBMl`n`1&I;ih1rt68k+)pJ@X*LaTk8f5iHymunB*ZDXA}I-t~&`{gN1f6bUo zpBSDNK|~FhTA1UmNhMkmvd?xRlL-b;#Yl`h%+ED};?J$bsXbKEa|Oyu-s7TLU* zYP~wMjsj4plX^PSpYL=(6}d?S$CjQOgjx9{Wwt?XKwC)WS76&`d#dAd>wgx1Un*|e z-z;@;9)vLb=_|5fyJ%!fubD)3rTl#o!lS}V*1|dST?Mg+lIU%?ZWYU%yw(@+IZpea z`TWK(S@ppho>SrdVk&|vBiF?-zb>u_7?O?e6oZbiRbA{4vy+bB%c?c}%I*;R7) zITVbSfgW`ZzzFS53(Ns~Ya8y1gx6*?)o|IS9=j_S@%Kr(4P_oEt0`v7;KpFEP_Ine zk(Tf>aZ@HxIVR1HOWU~uN$I(K`3dFQMF)SQ@GHm7NP=&?u=AZ6D zDunJxBQ|if7#khaT8j2=&JSE_D!x4~T42gwcVOdQ+WjD9TK$$&wK2h7N@xc2W|)fY z79AS@Ntt4 zNTfXn^w}@w=vgC)r89VSq(OVpk=G@vh0u5=bR<>&Q@wK{G#k<5%!Pjr@DrWH$a%kt z0I(HcF_4j#x5BzgS{CKZDet&#BAbKguKcSRFFOh=j{Tc|(MoO-knzAS27n{a)G`eN zwo=GN(`m;edf#l6yF~%beS8|$*6CzAC~~m;*yv(}En4YkZYQDP&&_vICf&ha1^FP` zDTmc^Q7X^f0hQL(q-!+<>z(Csq74}> z&N+UcJVOGpqE1=%_}XCq+}^Oy(_!1hSDk_vmkU%8mnyOsW#GO)@kP?ewpxwZMMpmA zGpEeN`{m>6!ulEY?lpn{6Gr*V5AjR-@y@9WK9tQwBqY|kLuv8n8Y0h3(pPJdFV)~A z-PG!?dE2ZSF=kc46x9D_*|hU--i-i2$5qN*c5XwgBvjdi@xmprU#>4HPH3^>-kl#A zQ!F>ShpA=(oLNgg9@e|^9WISS&qha!JO=vnAN6CD{tgwO@9|^JCVq+#i)X#Yhpv&T zGxB;&GrL7J7DHFpM!Z7G#4b+0kGN%*?^N+L92ptQs;Air2BdhY^0$t-Zu z5?0#g&?f>Q^II-ONdeI>aK488SVPw-T4N%kzVW7yk|BSX3b&|X$SOks$jdnX-$BEt zve=b8mLUA5&f2`oO4Y&h$Dr)9xaP#=KV2cFI?KD@>&3k9MdFy9(c6`sg0>ZT$dFqU zK|at9d%^KdLD;<#|NA~Ivj5$wRYr$_Ll*N(&FD^u4vJJ9GkQmdpJ!o!v;6}_i+}bT zs^xp-Pmf&nOe2|gkJcB`n;I2I41)250s=LuEdBzf_;sUR?CJ_z^BKq@-+&{ME3ypF zIlC%diocanUj7IUPpF1-8hUk_T1}W=sHMN#_~jeeI-uy#$&dD(oWX@aLu*G{;gu^t z02aHK*DgI1K9I@oABdiVmF=m1q|G~~-ry(SsTNTy`{NHl?uQokMyu7FN}6w<` z(@u8V_P+N9sf)}ye_3w8>;WGs;wJn*THt15z$=9Zf(DR1Gh$CIKq}EHP`Qq%Wq5jB zWUF)~rph6w$7u+B zTH?{4c>oa!z@3g@d$E*N=&yjt7k6L6d48nDWEZ~a)EIo>(e>_7J=H6ERBJL*-yO(7x%Wa*m#e-Q#zIV=4@&wWjxWvqq9c}l;P#%NCf5?a38jaz# zpV)P_HDmeG!9oid^VQXn{C_Nf?a*N_rh`IB{A_F#RI^IHG3KPI_lL8N*>%^Sn5du< zSZQHg7^`aZf91qFXfI#J`-AxQP~M|{<*+ub2`0zsZQApb?)yRuCxiZUa)GyqZg$-h zZiSFq@&cOc%9rYYHU>{cnKO3v+KoI@>>k28OpdL4ctO%fCAU(J+*rY3d5evss0b;t z__mcQ*SEaow6Zg}?5JWr=@zIyuR8kgHf_O;p1s7xks^^*8W&7_lOS9V8Ll zuRqwei}_uDi-+Q~HvjB8J81>qoHT+~7+>+LT)HbSwgY1r6JeKVHOOm|C+fZ1Z6$n}QugTpCI=gb{GS)zp zmDDk*uKYy{iV?mbl;Zzry_`4kxx4W@xcPyrVYz;kmm%T&i zBR!J1SDS|GUv2BUs^+3`IqI&2ADxNX^K*oKaoon70x^%{M*2eFub8>qs@LA__w~45 z;|k~9mf7el=Te6z1iQRf2N8>FMtF0f|3p-UlQ3U-cQV;2KXzSv#nyr4c5Tk)ZW)Lk z^^S+%8_JZ8{tr#(8PwGGeSJHM6cv$9zJgMu1O%iL6%mmV5D}z>B283!heSa@YD7Rf zp-3+QQHqq%dyx*(dkHNK()s5%&paBx8t|KEM;#M~9ZA5&6bGSPS#q@t3zYv4+bZyM zw}%Y<4X}n16WOOjS)ZqOuq}?2d5XtFjfiDUZ@=y{XqEf{QbJt|5?>6#m1nq|QW2-P zfw~q#1qPi(O&8_XU;>xrp5in%^;;FsHf={m57~leKYP{}@CJE(`>5zYBdOkO!rA?m z_GL33w(_UL!g^Oo-S1U`afq?_&59wOFpGDMtGFL}>S;zNp0xGYy_fv7ANux=+oB#- zMFA|5)8Xhl?KkUEl~&fKlK?7eu;xmCW-bINS))cr@NqSm&NP)%8abYGo#U9Qn2KR+ zqH7ga1=$m>E$h&4_X3II!bNPcM5ga@_6e1UxEI=xyRyP~zN-x%2Em?o`T|)e!h?Ox zP~-X8(@R_c&|N@kTQpa#;GM6QKF;PiAmxZ@^X@STNbTOwSxuPti_C)q@ki4b&JRJv z-Y6l3ZT5AQc(AaBX z^4{Dj*0xxjGLuf_wuY;EHD4R7Nt8M@Wd})#*@@e`{xT;ktc~Q+5{D zfSj9A^+vcxF$orW*qtdGOcGb7$=K@KME3Z(=4m(IbDQZh?qafX$Mk^*a>-n=KirKe z@0A1FIJCy8%&j=~VHIGk`EK}Ww~~*VTs)5*vcsqftfzgP@*$%dz&&twE~Y~+OU5z6 zGL7}a9~(K5fE6(81^7n@rX~dlJ?a~ngJP@sC+Tqro|^2>3ZMS2uiUFRO5!95gE@Q! zMaom|E*YtGcVrxRxHW28D+Q)UE{rJALao-@v=$;SNXGQmz{6pj0}0xX(ttbn_epND z@75QV*dUgXenV##{;FnnQ(I2N zxLf~QzXrSiTCt|nkBJvGx9S5Ul%{?A_;c^W*U+;J?GFLX56j#v;zMXez?;wy$o}m&khsZI78S6*pIK~jQ#CF}iGVm&G*Iuf zusuuopPg1ryzqjB%t^ARhLM^xfzEche2#j9|}WOu|15S3eD!}u3!p^h-?x+ z(vfG<%K7qFrL-ipxx^esMM+k+dt3dp%*TW(<(&mYMqxzD1WzXA0$b%ko;@|#Aeo9Q@m508&QKB1~^$$kXa{v0=Vc$-8 ze~vrgwf&vDmGmo>hjtynTk`3D#IkvUas+a6PGxVFrfAeEQB@~MDF%cZ>MG=PlP<^_ zZOwdX!EP&;7&YRn<{>`fc_~cw;{#F4VEFWaRK$o*UP{qM54YB47<7w+caJNsf-A)6 zT;r|Q2RXIIpL|;dACtkv^*(dpqahkFe@y5FgXG9+hMqkn4A_$vGFh3*F&gRL5psPF>CD0`8Pa8)?gm zfH{}01oop$gbm3<$-$u5qaol7aJ-~``)!3N4dGJC0E9X|dwjtRs0pFqX#FVso3A(t zsLWT~MVZuKHoY@bt_?jVO`K<_(fQW=Hq|n609CcCxOBA=6m5V*Uzs0wM2frqI94hZy8UH?2zj zSx(m`-@!3EwktGICH-|;w<8UDne!dbcN+HGiiG?U{z#lzmS?`H+5I9@_T4$3wVb-; zy%f5FEV~3L)OChA=68=>`l-@g)`>J>N;jM80oIi8#4AoVfjq_aRd|b>N}lG*v8aq# zE#v8Tv(n~EWJkyNp1!2FS^>8>)QjAj>fL~SDs}qgW9qEwWvCsW&-8xxVVfZ#4dFf3i zUg5NqiLH~X+Lq7EzB7}HA0l=j-)t2=b%ecUkP*1?u6sd!AucdXhT!S|Sg2Fu>3@D}^S6jaPR1I~vRctH%qPQ;i zRIz@Cx8~LtGWrr1|=kdBrTGv%hZHCG6Q>A@fXQ15f( zn!`VeDxj1)NYd|_a~^RUfBqgbX5V%vt(&JWJ4Pt8Vy}Np%cfV0Pm9LunWh3YlLi&Xc@qbD zI7~x?UaYm1_-(dv;{*ic?)0avF1<5$>wegiuN)PqrW8yi_mxd$$l|z;{hg1lcV**# z|21N|dkMa?#%c0!+MV3vdj#iPO++9@!S0ntedS!GvciI^6R^s}HS;R;?-In^0OCJW z^(^*_p*)Q9EXPxsfqmq37^ye0=;)+g;J+%UExYB)M3)`|q|$8g_?Qe7VJW1qKl)L% z&1jVlX-QQDDX=Hwy{w_Ddv7KKr8GdNe-<#;%zt8mj;=uxxN{$Zaiq!cAPKyMZ|zQ zGUM~;Ly%RG)c2wZH^b=|wU~wg@$|q?iM2 zQK0Hk-jn7Ib=dA;cqV$`*W$~sg{3F5-%-g_jmns%K(EyR>xN_Q+=X5?f z$gYx%!~1uCY_LKK0$PW5-T8+kH)paic6k(VL*_&G{RG9|odYZ6m~Tr`oBek^ixHAf z!M;xKTK1AH?e--mfrb-s*)7mI6n6a{E=Ug{zw}F%a2E8W%zDs6dE{kB{Ybi716H~w z-rh#p9D?HNZr?WMJwMp=m#d&#VWi!`^f(zgrrYu)NN~n|F*GVt?Xm1NWuG(kg1vmg zDXokg)-nxdw{2sX{mm}+4&i zJos{E?Q&TUhh|^Kcb*+N-e&tjV;;y>1T<`^OCZPBlnsafTN{S@K4Z|bo*w!PCv^52Gq%wvH{gtN&B^OUzFS4AK= zm7ccI_WmzD%dOF3)oDf^^rL$S)J;qg4Edz7Z~x9LmGF)JQ1D%&%?3LuR(4CJZho^* z?j0cvUDLg$W6krJt+L8d4>n1-Ch`{LESa*V5`$qPX4Ng#Q`6};wiyaXpKeRzE899y zaZzA)<=pUkveHuxRZv0g;9SPCCG4)}am}}~QC9(3I+2@h&L8}&KrT`sCh9{>2kJmw z_=BNp(nY2_%{&lvr2L{@WXzzAO!l!*2i)1>-=P!Ot9sIL7qpLJNsnoLDTFS?)>u2? zL0sp3JYG`Dt4UxhefC|6seBTWtiy39M0t$iir?{la&*>8`FpTUKy~1`mP0~;vkXRj zumIY{{=h`22I@qn2f3ly*_!hC-j1mJ=v#gpzPNhw*GgjwQ!%KMbQFX);cqt8;m|xr z-8mMFUrg`*7vXr$meH=+R{JDEh+?BM*} zcP$55(?;YU&VO!ijX$|b4+Tw?S#bEby6*xe?K4A!=d6y-5*k(aIb`LX)xJ3LrJ13M zfr*QqeyowOl;}QU5+i7|GS}O2c zTFhDJDrYwh`W>C%#iTY|;lEUF*TnbAQ%bYZ=74vqS{Tm8zZj6PNbG{mp0Rbdab8{w6nFrqo2s*geb!Nd9r%=1m6t$izE*U8dCC#k~K3MO5E?J#uQ?>N# zL1o4(A6&oZ#1}~PM8~h{Wo9oU)4;s@7ml;siEV$(AHWKKZvFYNtpy%F>dU|6uQr32 z3GY9}UdhI1!q-cxwyq+gq5@lZBWIq?XptqVrJ0f3MjouA$|5msBk4Xjf%?WaJ=Hz0)SEoyZGo*y(!dF$9)Escj zk?6gm!ea;tCyE=x`>{m7vNx!|s_2?s(27Q`{cwxZ-_SjkZxS14LOSawE{fAHNk|j% zi5oV}U&&7-vcrM%bOrAyrkwoE2#{o@M^|ps41grw{HX&`!ruthe-H5-44VJSp$NWr z^LJ*{S56G3>r|BmaxA3i)4U=VL7kY{18M2Tca$#icGQ8^k11DR;2tCtBbS1tVkv*p zjvwsYepHzu`or{ZbRxCFgQ%5OwB7+eV!api0thP6^tXbma*AowZDjS< zBRp&$-Xz^D;Ml}5kL8I3jaSoMSX7;#OWN3se#(GHY{W12f_^1RJwzV+-<76JNwmI(DF@HfBW~+Mb-B=9+pgpQrbuEuS@LF6WUbq z!p%`dTl;ks0Q;QJ$9X{Qb;!wC#noU9g!^pn19fE7t{nEbrgwDYwp_m85p&AT-#i%- zw0+s*rP>U-bn~v4)3v($y=nvQGFQF}UeP-EeCR3Ot zzmFv#k!I)11l8I0RNjeWY6ZqGHcEFULbas#py3}p@FM1b+V3IV7mI+8X|uofSS7V* zwxY}_S42LJ0tj!?Z(6e5!4I_F>$$bo9(Pluw4j6w;!RU~C zuMJF7qSy6jhJJOW-_WvkwEAHqY8A@jWu#ldB=an?%o>QmCwge~f23X0Q60?NoPOcH z?LTwjErAzkrNu39c}Ys&L(uK{7rwU?0kG8Szc;j*N`a~`D!>cHjK*llmaJ!$dL7ihEXqyE zd3Ci>_@*|lF6Qs1Oh!IVhFIsW94ovvm=A)c6j-kUj2?MwOrOGDVx48 zPEU9H)1y?}G~pL<2R7+ea9BSFOqlP!Wf7wkkU;)Tt+R ztav!{AK50W`TSlOMil%+3tzCj0z8h58sJDO9!zHm85qcfy%=dd4m*9@`HkDc>48`T ze(|q0{@B888yRS1d|WYq;jyK!8sLPrepMG@<9m>Z=5AK0N}-LqD7CKHm9voZq$v)o zXQ#F9&|Xo*Q#*Wf#AKBNk# zU3Lnq1_3_lOG)DjE`rSDccIm77<`vm)pNxJ%0b7uWG9B;f8 zvc2Xe%;ne~UxXHquclliF-$4Z-_)lXzOYT}15&NKnCn}NzciVm^3fg(r>S|UNHyOC z-C69T0=@?E+J5WNi!}$mTj`)a2SnhTra@&?^&wTY@+a8p-3YV~beux_>#0@8yL2@v z;J=fmB8>I)d0lB3|CC?zkufz*#Tj4h$8+Fea(X*Oxs#3A^P|M_*dqoQK=$}{zAyYA<=L4Sh)&{i=m_l%8*Kx?ox;1(8n=g5(Kl?>_ zdHbc>)k1iw;XspwKo?leK9kv$rgN^(cx5*`n?d~hl}nKmOhNZqdnBG8Fii#5EWLAC ztPiQn}ji{~Ct$a8MF7IqGmqD@TCBL8u_?{2XjOuPwfaWFpw*cQFzq1}t_$ zQ@S|SHsdVMZzBck+qVOZo+7I#ZB(0$x_R@{w8~k~30*aQg9$|bOW0>*9Xkg75<6%U z{t#KSdV;MLdONBJTQ=_r)%cR3l->}w?lR6JeD5$)ri%T-=M^`)}<5T1ILXg!2RCI)J^Tc1|AuEWf=rUI_*#H zbH6aVX^;ES{#R41tUikiN_U3RvRuYK!yRqaN%;XIGvJ#!PEb(VT}n4r7S{d|j1rHt zS_!l>IQHRSU1~^sfO9zxpvxUgrox)t-$_2t+3Ew^OC)8I&;TF1;lifn#Ani%3PuvW zO?u1+!#SC#y;eQnI1n?#5?BRBEK3vNW(FybexTg7uBg}<-mIhH&RE}zvJo6PuOF$h zk^5o-!#cny&VBNn!LI4eFca`_x<=@5Dg(KhN5)2dIj@Y|EpkU;OAVVQ9sa8L z{u=!CyONRX<3|^U*lrqm3J%`sc-vU&bmf+1#MBHq*3NRY6yVzyJ?$e5>X|_}>m(4K zT%bRx@Q4G_g`9*4omM+wGmR{W(N?3Z?~&&HuSIa3S0p6yPN~uYlDJ%0h1~Yr~eeC9Wr$NcsT$OiOMA@8Ey@INa zeB^*TIWxGqM09E~sIX{iF3KYH19+#X*pY|=0_BM18 zA(dc7giA=x2-*%o+Fl6UA89`5f@hL*P0_!neB8;MYmJP}uEQYALVLCk669yW>LXJ~fi_0`j7m4K_JpzA=~zkyNB2k@(f^hnQ*R4b=mr}Akk zAC~hw%zl1yz*GAtU+g zl|gGqntc}JP#Gd(C3nK1dnNJ}N{T!Raf8H`yC& zx1@ zIVb$H6n$f7g8jV{UYo1XeUbyz?OS%1Z;!C?Zh?Y6=(9_mX<9%=F;!BNz zfL7raG5{{6?I7qSh-Yi2>M(R2bl|5OjB@&i!Cz1hkwTwEXM?v;6hr|SyBl*0rz8K= zIrRCl&mYgt-5E<$Fw&|^$2APT2mS{Om0~lcyD*SPH;>S=(rpP_#_zJ@EBSJfA>3_?3B2h*AVDfK+&=W>Jr*e(R5K0MY+FU8id9_ zYC`$TU5*Fb!*ZdMHmcYsaM zP2)obybU=B)?Ets3VySga0wKCJY#`*H{|kcVolj!_pq;y3}D}~V{{@_mXD!TaYqaa zgUL*>u2YqnyOxOei(fAK8>{{U!)JSRJ#H9yO+R(|@xT5s#M2bq8i9boEk7OyDub+J zWCvE$skdNrpti#Mdm5uZAuC6U_&SiKi=!E$x)X%<8o!fG#gI3Tx?@H6qA`CImy`w`R<*z1j6;v5dNVav3-Rb*w$-Q z(2oDJkPOVS`hqn`GODupR>0By=H}lH_(_LCqBf*&J+rc+dHpVRS*lqa9>&6~kvAHU zg%^v@;0RQ!-yp+JdI-5|R;B2-i*Ce~e9p-LO}Ecf+t19YK3?!C3T5mRcSzgDB2QPD zpoWgB`-5)>P_x>+Z$dT(0^3yoWCE7_=~NOZk(w+BqxLK{2OoGLPB`8|XuGC9Ui;{l zs7n{U+~wjjK0qk{rllEDrk^wbI^*`n+T~48_Y#o;na=(#eJ`z`eoa3oI@@ka^upNm zCOQc8FWBWlcj`w<;kEkGj+k$76E{n!)VoYD@A7DD2VxbY4^j_Z6IodHJ`c7g73MUC zf<;P8IJDi<=MlXWkrz9YqWI2>m0)W$$1v-6O>B3D(Lj{xX=2eIoA&CY_q0=J9IIa#4 z3;4%2^6BLf+P7dMlmne;0$V{+Tp|k~7%{eKwQrAUq1ZG`l(3ofvn4wa)Nz;o_H+}6whh<%Bkj7^(h57d z`fGQdz?6t+L#D<0i+}7n3AX&|q7m1}jgI!;b^g;XeI#@c$WZfw=!Oy3P4~6;M^d3| zl_a^vNHIFo_uTt)o-)2^@C91{?T-%I5W4w8&n_3^ zCK3deUzPRV<=WKV!=($)aNOEc!GA8xzEgR_j#}9QSxW)Y7B>bEuv2Vb-O`_36S&K8tSQ0< z&S(sF+bd!t-A~59$eB%$?Cn&>fGvV^HVylP3Nx7A7w z+{(GZzk1{pt?<*RNkh?YLvGzuA~_96|Dd`#IIg)N*93A(c;PmU9PB2LqL+6Z^n66W+~ zg%9qlu9>@8i++c6WU}-4h2Q&{tj4_?_&d0JW#lGh+2R*YYzzms7TJpe*o-}<6MVmU(66mYh;A6Z704tp*bYqWM(o;B+N(B|YUv5Dp?BFl zUsERd-QItmMD^A%mMEJFdkS1Fl~4g2K%zZ0mP2H&M*jiN_%Ncb1f}86 zyU*BbSr_CfOeua#At&vC|A+^Er!%O{J`PtDr4bcG!ls~tNhzmTh&A-^1UiC^4avgq z!z{tYCd#YI8&|BiUzCTZBode3D9J~bS+#1FWy=d|!FQ$fMqQ1Ii1I$Rzy~Q-uS&@@ zyLRr%TC_9={&tJ#16%aIhk_MJV2q&*HQW4At{g7v;PI?ttJw;U;tDd%;$zov&f9T0 z7DSqAo7qYD3vTGtZ));8*tDzXZ0e_*ty?Bd3DqduBGf8k8dOOx0eHuMBEA<;Y^FCx zT-ysW)10>Rl>+~2+(b}p+ZW4)4`O0F?R^K|4C>|$*8%Om6URVBCo@{iBG^W~;1F1Sh{VR(phm+M_dmd0xTisz77=#}`EI1Q*UQp0)^kX4rSNhvmbx#MGA zUEx8U?^n7db$0pOVe`LICQYx-kTnZ>9fp6+Axw%Cni8|hY-6((Nnju=h}|c&L?^f#65*WX8^XfWKDPU*4(@1hf9TD4jZBGK5NFR`(& zpm=ta&z;bRwkKc)zT^2MM79bE@rGRdeJZZmR(A1jg9kod#IUU({t97j6|Z?CGlNiD z_GBtRbW!jyCAJuEN=up5H)GyI{YIMb#uf$Nw3hrpv5h;~h+AUB2^{H5EQfQl40(({ zO!_cd@yXRJ7+bY_*e#qrNBnp6Y8iGzn1?Wo4IaUXOPC0dvT zCeC1*WE_`AKesC;pSv-FI5+MHlrgQF{o6`u`je zpz=9y)ny~e<}y}3IP<#<#1%-!uzcX}%+pm0=noYIqlXQEHK@J!8ZrAHV&Or>sZ)nl z`5g36bg=)o*s0%6ds_)Cn=F_)+@W)1$h8fDWf^ z29Dt}_OFbr{S-0v7OxrG@;r1&_syHf_ln-LNYA*o!c;_J-zreTI*ws&MlJChLw8ca z_ecg@*~h(!fUD9_>SAF-jTGo-j{v4g=e1GRx<77Uh^?jLjTWUZ@os$Jjc}zcDqz?m zh9XX#NXhswVAUqq2M3QyZz}4yYu2vu-CgzG30n@t7B22>=r2W==GUR7(xB0cFHWK3 zGqjr|h218w&+MkMnS&wCKk+pVELb`A8nl*FKS%Slg4V&G?(sNsh+YH>SJ!9Bz z;B#V8_E9g#4B}-qyK~#iC9%_qM`&+dKSJVS&+9|bl)l1;$`InHc97~0Vvnm$+q-jg z`UYPn^o9l03|L2&q}Y;W>Rk?FB7L4Oc{jhJ?EK0Gtf>B#g|ks_y|Vs!D)~|}-XTbJ z5B{3o@*yYWXmKuu9goiP(HPe#A`v-e3Zp<&o9*q$e3iaY-)45&1gT&Q-?88Va72!M zr>zi1@lI27tyZVY6mJz!EUjgj>#hByPeP6KPmL-3a&QH~D+urhh~N-}?P#v;&KK1l zzI(8#A)>!f6C3JgsJ}dU?1RiNFJc{PY2F7&jcf$kjY6B+v$OC%L!qM-qE5IFryA+ z3h^ylf|Ie8Evr#W;f}x8sV`C)NbwSi*0wQ1Uw{kFz^&Z@Gu=29gkjK+S=jXtrRtO( zlw5fFL8civAZ>+1Kwpk?OfsbpT(42aws> zp;w}t#LHt|S%vs+)+$bauoeC9qK=v{&~A|9^HNX!tZ4YU`p=Z7$j(Rgmfko<#@E15 ziUU1^EYY6t&vEkjWSoHC7zsf}UEIopLFKlgyrdH6Z!te){R&)*J^iUTKG#u1y4$8LPn)|)H{==wP3cfN z*c(h12`!o_ig5*i;AFx1CmCBCG8-JH%J(xEFO;ef@uT2I0Zx`zgV?eLufVhg9THW? zve9ss`S(ka%>sjz58-pfUigu^+zXwhJHHqz^8a+_DK`=Kt6S96G)acZ&0Ea9?jl8o zg1Hq5RKb4#Xf4{Dygbd*bCvv@$OC1}Vd1tKo+~-LZL)H_)sqR95ZWD%{ExW79r9oI z2Z-jOAnYJzKTv{eZR_f69c)PVljK?$`}SnUhjD5lI-wEQsCb$pUL;6{83^xGh_037 zS0Y}SO(*htP;)VyEh1`=6ifBPTv2!pZBKIr6rJz)%xXGJWpN!mJ@Th2*cf)?n4wJG z5bxobY?jWp1O0hj$GCI3{gMXB>X`3+?OrK|SaAUn3vqfZz;f$8dfV)1^p9I}|0 zay<2@%K4m9URg3H3LX%93>3-QM0D3b)wY)BU`K~0L~tq9&Z@SAq}~ar!^r?scO|m zzbj)tDQt284J7z|zS$a0vGj4dp zie?#Hg_FberBn&XEPD7nbR6L3XvM@vnWu`X54r8pM_osRJR^jsS5U7+&8-@jzujD2?uRUld0>_t!R~!GS=k5agB$jvUQm_BE^xk0ymsfAvqY@5feKy6OgThMe z$Cn>P)$HniIs%86oJ9X~BhDAoJ~Nys7AfG}M!v-<1g5YyTOn%742k6IGT-Wi8BJIiPtB#IA;?j$}u|tIG&+w{t2? zDyUi=1&wG=U?6Rs*VT)wS;qAzMjcX1#&)53YDaur4lOKq0C_60SqRqdPx0R*4s5Jt z;N1r&S2!Sj$iF4lQyjk5sbAttjVE2h=T;c!r$EItSzHEj5`qm2AttCEXuEfha^VqG z=-Td?I?K3?j2m{uK1X|vHPIj61$>Ylb***AE>9*zPn169jOFHyA&RQs7=1ixg^Fnmqy zT?2(@olH|WQe0m?XTclmJ`6!#4y7!uX@uQQgu1(L>++eM43;zks@SU?TUU^N(SBfIbOL zd0x-#m!kGF9-uFq?k}%;-`w^Xd^sK|9K?9S4qWLft4z)97QD2hwW6xkH(}etw4g7T z9`Zu~?4;^t`QgKX)z*ER$RMcHansW#qATjVqDGQv%glMNcg0&4-^giC9w3jETjdR* zPL_0!iQs7t%d_Uz;bm8TxEthPUHWITuT3y~nUDg7{O0fZ=Pf5LM9diS^ zpule#vi97|dAd-xD#pl%oq)kq%>6`axw8cTyHY`LvOMc6&lQ6FHZ>*%A0Vy~O}vJr1e zA^E%Jtfa}*%zYhRmZ1c}ricvGP1R^|MkPAQ8fFqw;&Y~LQY)tII)d|EtwCWj++PnG zTIbEvoP2Y!zfMW?^{+Hew+Pbj(a&yrcI4%orlKa2J3>EXxoR@+ImKq?Z%$@AfMU8I z+Zs&$h&(fM;gWQCH8-oS)Jpj8yeAf;6*D~#qcej&C$wfm-#fdy$H@8rt$2KtJ|$vI z>NVVChw>ezbS z3g=-C&K9TIvYQbh^Cv4ALC;UVx_-hs+D`&Gj;q9}GXcC-EHY&Ui=B@IZ$&Dgx4p3C zfjvtKRAUAoz`^*9!!`EkrPm#R`L5|P1clmH*zdR7xOasE)Z5p64iN1M?0AX8sGO>k zI_XyPN{^-hUr~FjRLoA$ACEo=njcopfl_|T-{r1ebb)`hVKM!v zlrAwC@G)Z_uf4}LtkR22xU|)gwqArSsqUQpOs=T9OAsEvg63sA6_FBHL)Nzkp9P-F;HE%_k?E)Rhp8YCfK)cWPP3%VFC5L{g`UO z-~6bK8E&^Diz%U>7ai`^4!+K^1w84R3U;R`W)_;(Z{_2??yMan)%su}GE^j6m=^|A&+f~iX?(Q$GUcTyT7Q8q7QZ->Xn^zKRy?`~ z8WUz8Cj+?E0a9+6H2ZG`jk^2i{YToWw2w|;N5<+E$EGPTV7jOOt$hu?*!{cjW~D9B zDjHsk85mcR1Y<1N&3*`pnhzoi)7nDaP*WK$okU&ODWFtoKu4%c>bWOn^`ZU?#n<(- zPk)|FaNVsiHQAA@j}Bb0TDHz;47IBTz^g)TdL|-Eq_JhDq&MZ#STx6zkQd`hT#-=Y z&jP3bEeP(fmffP{MK8JY&|>hV^IIG>8-+~ZBbn2*`-o^w+;+gwO;Y|0;H&c)OcnF4 zqb}%54hdMl1yqOKK-c$jxD;xHyr@g#;esU~J&0lbLO3bZPmX!-<>9M@{6QZt_K;FD z+!k-v`F4D3F3IMy3Pl)6SYVkb*<$Ae`4`4pU>OB(z@U;FTZX4%cyOO!^{b_4fR;_G zo3L#rWC^8cBl}vQ-r&R!8R&hOQ9RZFp>MV}2L8Mvs(6nd;}i?n1HW|q$)+E+5fD=# zUP&Zthv-%Yqah1#!XS#%0pCh?e|FC@J%=kfs_(gB#=t~f$a`_c1iz5KxX(bv?-`{D zIXe>>48Tfn1gHU4qi`n^4Y2ozwr`RXonh5s!* zh}mL?f;kKJx%}1Ni-Q1?6TcSk=xYZH>KO{B*SzS+$~9NlaOfr~&rRe*idJC(SVkr~Xj$!}6%zsM-BsjG{|C4GVvy?w5>G(Y!a zgp|lZ0N~%sf$JgPI^psOeN{A+p}f_bovc#Gcg&KY?#h~tdyA)E;SX951?5sq@(xz` zqWo0#JlD?S>X!}uHFCzQOq7uEsKfJH31lTfBiXlEiFN4Ivl0#5a*l=F`lj_x)(l_P z2OH+NEUc&W{58GMvjyKASe|Fn1*yl4usEp>X30yDm~UwnpWjuA ziM7)@Zm}d1f}&czL3gKui4p+_KJbs#N|kF`h2D9bAFTBM@s<| zR+v^V-=C+aix7go0(pp@;k)=&ozOChk)oZ0^)q=M0sr|GyGVmh)`l3i-mZtLCLEk0 zfo2+{s+pv{EagEow`dg4cqVxZqv-s4=5!uj*0mGxGNre=aXYngGfQocX1V77hYvUH z%@I-9V4!FgIV-Mt#Mz%WnDJ3zqwpUsc$i@4L3wv4y{lIDs>ic~p@+yTa!`0-qRZ#! zH2QVTQI_oO-a7C0_`uPM9>z&cm^Wtsc6=|~w*s?Sv~)rFD@#D~OON%u)(=lDAE!U< zPxXJENziJ3ivw@IKvD3ksNM98UcR~xH!5KC$K6@B7VQ%>-&NE23%5M}C#wmVqi>`0 zwzFt&Hz56 zJ;P6VZ+U2ff$^KVsmel(L1;4zST6oJrfm^W{u$xru3cf|G07OTvm{4ju0T8uq7QE@ zIJxx?{aLy+te+xW+Gz$PTwNRuuK!E^XZW2R@Br{&Tbk7^{TLg6C>Bp#deM~-BGSOT zI2MHc0aKMGrmMmJ>vc#@R3oV`UD!mLjyFu)J+77CSK1Ydh=}`hmp-b|@On}HYKLN5 z{blO~mVs?FTAjE0R3`pZ_93v)!4TswRdFS9(NY;4Zop`>B z#VbZ;(|#>%I!hx2#D*|Sb8*PZB@<{wi#2d@n)-v0H7+`;&3|{<)*mffzkRIpTXydg z*DR`5{>p2N1N;cGlR)i^s@~jr*qMo$d|rVw=CtBr@y`^gw7`3~0xQ!<7seQjzxt!@6&da0h#tTRnWQ3++&Umsx$X zqBvUEKv8$igNKGc>AegPf^HeJ<(w~boRBhm8$KsE!&UHiIA#2O`G3lRErtNO+E4wF zbDG@0`y=g=)-IZ!gUeh&l72s0!G~CQ&lA~~XkS451905EcdB_dfwu!E!3wanlf>AL z#n0ng_6zvVR^nqeR~zE}PQRo!InML_4#6RQuZ`?^nV^a{zXmHWPWlbz>LV1AR|Til z27A8Jg)iwB6p5i2HSU?2iQ@IahAw0NddpP_dD67Mrz54auIoN`z-0A) zo6~)L9>{C!^~u9@08P5_Zz;GUqdY%X8zgq?Sl@Z0vAVo5+y9Yi7iB8QJ0LxSE}=2(xYsBNF`hR+{7VJ*5{Fl}$Ua(72h41STas0u zM1MaZpi>X4TxDIpcdydMGm((3@+k%pr~^>noFx~w8BSkUCSvbzk;SP^Cc|8N}~cb!NBcLO9o)a$s<-R_}MKVIen6o^$Q*Xx7n5B z7G#FW_YpH$uNu_4Pl>(Wf|%a=;J9L6^axa8Nj@LacHqYVi6N=b#Ozg>Tg@??OkhUU zX@5j?7xV1e{SyZpu92fNuC zY#ZL(elcc5#gA+PE=Cp^rdEyZb$F6onbs0FzunJk){e9nlA9?os=kNF($NtB| zW7f^OS6u6g^E&Tq5y&~0mol)r!bnlH@5sarA80#${qcTY>!>;FM2F*c%h%AmU?1SV z2M?c_$V>f%a`x8h&SrxdZ5wi(8KEit_~0F7-iIpU-=`kh4%j7o?rMjqdz`OQUxv9; z^X8tsH5l(n;AEXxb7;YQJI*_-dp@MP|GgYLut`af^Y+(rF-y*4M9M9%6re1Afr+$? zF&6)MtmflV(}hz)k7q0XA(_i?GO_syftADzeNNHj{(;xt_@nsmfbzAJI~oVsp0u8Z zi>|@#g$ob#PgaokYuBBQDY3Kqew=WuFqI~ zFSdGWu7=c=FY0-0MRiHPNN05^>*iyRFH1(>sFb?aV#46iN=fP@^10AmoJ50 z1`%x&Zk%g+HCbTrabwTl%AF(DpyN&Q-{Q6#dDGmAVz;(yCdz+lxfo91z-W0jjsKSA zw=m}n^@8tt=gF9^FMUEhAB$mF*M&a>o=di&Y-EVn`@@QEUgYgj`B za4z5aN;GNNp3Er{xCwnUOOXpv5U(uX`ISLd@vN*uh}vp$E^6f|`yy6IV#>sPuW*A{ zjMmGO?PgcDuqb_nZ{_zHE%S7A1MiCqW!N@q_Xv}bSj4?e4GZ91RP|ciHTjN2v}~s&S}0eez3y{~;jblcMd`PCEjD@b=XdLH zD9?3I-D9rWLgy_%`SuCO!{>~8+}?kuIu*!Z6(6xoH{#JB!ut4wI+V;sux5nE`1sXH zwhO^nO^a{oPs#$1qD#tS=jl3msxP6wEf5}q-J+8V|)dFd}w zOS-TE8E@{bis;hCEEWo5pl-$?R+JbJ#G%69Z$N7vB?f3iHY*{<39@qpkcX5dUWCe& z##duTv$W%`wf9kTnYa12{G&mKijt&2DJ$Tko&eKd$}1sIqR`!?OY}7^k#`^2zf+4^ z+EO+5#F_;uY<7$eUfJnJs-GpExr`F@G1-ZoW|G~pZ96cce#7usIPZ&a0?UUtvt7Wa z5I|+HT*c*Ykn;=|ztDXrL3L%)Cw8XCKD%*8Mm7!hDnL2&yvI~sraR+H;zM;@<&ZM_WcESqDxWzLtqK%Ez*_*HRVC8(a`->#1K z%hY!eRE06{?kTtUP$D2*f@neLjD3BWvL91DOdC{jsxzsCc!BM?9Coy@Z8)T6t9-1v zS2iT);O%lUf*rdr_7qkv?n{UZ+_luzB?y#nIXvUm=QP)A?WU4X34qsT63aJkWf~E{ zE@FXeRSXS|Q|f>9el1w#nesZGQ5Hj^tJrrtF1LFe>ZzH#erZ)Clv~zMJl-i}B{cFvaS^jUyBM`wz#l@n}=qefM2e ze1>ecFMfFyWu6-qxv%Av#XY*$q*#0&S^|726}Yhf(CI(*M8J+w5rfrvHLfXQlSTRZ z3x)Z(!rZUoy?3LMAC(6GFJt&?P&Uu8N(BbGD9knPUagN54RjVmB8c5ghJT6ueaL^# zfg;j-1CMX}1U@PmRwmG|B4m?6`DpcR{GZePx4*q4e*4D#)dn)zS;f(Ffv0vghQcfv zdzESJ|GHxT8m%oBFjRv3N1Xyw50%q81$q~U2%?45Zd~Jke3g_@ zSMqi??H?rJzeia+K_+OEHIe1@#i#xJwB_?F$N#YNf;`)0k1&?H% zI_ClVkBbf*ZKZ1|bh+pFsr%p0_LaE%5}J*i>gCq+WVjMK{GM>~5jkesbHe*i^Jxhm zVDcgK&=#1~f7jkV@IQb3`qTZ}mb|K!w?ETW%g}uO{X9$R*|Xi+?gsbhs-rju;QRBq zv0Y^1I6za0cYWv5z3DRLB8z_S^9RgFG-!98Nub|ryThEdz#A9!KfnARjh`h1Fz@$Q zqRqei>)HRaOf#qCmfEK5@&w=)d3g?+@7n%|duf4F7v5|K9lM zHy+yU66;$PS~vDBfi46z$NBBu^kQH*%YGj|Y72ZAXZzPQ|JFB+cO1~HWQ^$Qjuqgn z-fqA#>xvVSF7{LZDS(;ab$PPC-AHh>d_JvPdA3>A7sy#Nyz<*&sf&Hr?Qq0YB*#Va zk3n&TgMuEuh$!HQzeD3T?%1ceGU>jRgJ3|hm+6ig`cwAK26E~@s+s-7dKc|2urUfK z&RUNG>(l*}m5(?a%#m7N3lSO_{#0&R4vUoXtl9ZeqsF14pAJkDVa{$qlW@A0{V#^T zK^>cTb#1eBDUXWF)3v^gSZnR`FmUo#oI}_1yqZ&U;q5w%zWHBY`<#aKqDqI20*iZO zDF!;C@M5h>wX{v+ojzSe={b)SA5FTGtmIW6j;7QQF)BP;%dN6z2sLc3w_GsqLeP8?U{w3Msn-0=tEmK|)D2(3MBea!%>^s zi{1ttPF(~glu0pOxP&f?JJc6^Pe$Tg0`m@zDo3P00d)enkP8yESw0s6e{+;@gk;J= z?zZ2N3`Pcxi1 zgQ>m#HSzpy<$kYx-xyFhSSmmMiOGx8lWwmBMy0rDj@t8GUi*29vTqw@Q#D}4M7P!N zj=vb9(xeGQd0|IYQ;J(2OCoEOy;gt7xi^~hba2@?+N(!6y?4=-#ZKPRX5^I5ellyN zbjf}jAV4@NQ#R>lG5Rjn>TWVl{asb7pE;$Edwr8iSAYCeKQzXYw2Co_Tq))-prP)C z)0(T|Lx#XpU@LH~zS~N=RPykm&hgXQCM zh~-VBB$y1Q1ztYiFc!*QwNa`gyq@29m!MYQrE`2E2Hwv4PlF5df}Iu$8@9;n(yy7+ zm)rgkl#$xz-}j?x&(pU*=-5;rJYFjsv#xSHp7AF^`9HLO=7!Rl{8FJBG8CNrF+iMfdd61DxheIruG z`gs}w{rnS1xTYLv$?NKD%7~|7kf$5+3Xb8&M3L}5TlyLO!>=rK4<{`Sf;=mL`p&gZ zFQk}ROla4`KdZxwKzt9yJv|7GKFLviq#~Zlj(-vpO0rq8l+aKW`g?>6Gyl3Ibb+RW z+lWaN!zkSLO%O6)x7>uRo9A+sZ1O82znFGO=_KxFS>D)xDc=9lNEb2^k~y_)Whdpd z9PH)OALB#re;n?J;bC1PtOWOi%ZWALcpJfl#=l1NWhnk!Z^YF%s7Uf_vj^U<-aD-o zc@!*@0Bs2)KqoOw1{p0pQGWu3VI^-~o^5RvyX|!faAKB#+reGnx6I;F)Rc>_mDjWy@UPe%%;d0{;21#Na zj#}i=k?GqYbV9{W-^<7OEcgY5mt3d~8*J&Qof$4g) zfjj-;596murUO0)XiNbfCM(@zDT?GM_-(IQqQtCEcL*9Saw`}KACnX7e-4H0KFfZb zkv3shN3ssbaib}q$$Kw&xc`0 z6B->Y&cxs$scRVhaQogm*>ET!v-TCj+-UW%ceZtP4rwB z0lUD_6$L>O*+^m*To)OS$k#bMn>?zC@;pHq3{u+C$;O!c4)B=%xND~u`KOM2gigPa z4Wr?cTWkLqMVz1oGDpyWG@uru$J0K(N9vQ$A#yUyMj}QU>|twDSC=jYHsSYdirCA> zpAc6m$c0kHU)wvW@?X-=S2zRbrZ*x($wwJ{hBQ7C7cdEQjg<^)|J3w-Lwo`CRY8=! zf@jHUzOT7D7YoH6l_Aj!4-q{amXb(?0SXz3jzjM-_~a=M1m9uDBA9QG8Tos-r7aov zNgb#Nld6?2IcG@C+OLP`NFPv_7gE9SlC+N|+62&*n$^8t02k4~w zW(Y%4slLN8o2m4vCr^vF6@EPM)52eA49rPLA~sA%m~)37`$Bz&v~%Xdb$r0R*i_J@ zKJ#6WBs;-_Ah8K4O?rKnX*IpBmGFvGR5L}?Be4$Lca$aV*pSa9=(>O559fdxy{&}D= z5Ow+Z+(whP9(R9WZU>Bq7)^W64=I{wJuc*vZ+hgkf9~=p)+^ttC$izjVxe&?iVU+} z?f>rEs-^WP5Vpm-j z-z{7JVKV;pJZU@NwfWhvX$#!w)pV`$MGuKbDqd7fGwx zCW5p8BBoNL(L3fFPXvv(GnjNFM1i7{h})_GZuR(Ax8Ph*JCf%fX*TBI*(Hxp$#P^B z8oGSs)|Zh^qzoxAkSSq#mGPQAmi3<^p-fm7 zZOQ;q-}?~R-eJo>_TXQWUgkuHF=ib+WnOzedWpVdcXMZp%IGk=q$Y63niifBPQqrCR+<-{R97rngQamoR0;hzkd1m=W=M1 zk_O2`7U^#6oGTHmq7ti2K5G8r#@>ssLu?DdZ-F=M)aN=6DG5m{F|+qSS#Ind82VlF zoSF9=HxF&^4zL3!X~{VmH})=J0b>6D`^2pnxnQUJyg&rQPu;wJldMP_0sB{J+JAWe zEK!ul>hNn+--dF>hJCj2r7$a{-As1->4b7@jMBx?&xnQH4yD@Yn68?f!$bR1ZPbY! zwWqbdYK=(3x^|7nmBG}h`RIZM&z>54toU3IPcMBaq}R$b%D~fAcrn^o_yPtvn@ZQQ z`su`$XOupy#MDwra0c$!$v1SrRi>YQ3s6@B?ARuvXX{048Q)6_GS52Wgm@J2z82#?z~;;pb6oV*w)&b`5ZND}rA8_=jK%>#`O(7qHs?m!l|e`)MZ+>H6k zPcFj6+l436zSFy2lcI7Z2-4)NIX2Svx;R*4>L{i1*seD_-X7AVOZh9z52^;D!;Y7O ziFyF0(fb6&_DWn;+^X4lE4!%cMdE3HX0JVpeMp6cSl70`c*c(+Lp4>FFMRUp4btYw z0Gxt|=ZU!$)00AGUmy5omSuC(U97ig^evSc(69@pCyur4H*eU@Z;#RU)75-v0 zYeKZt2T_aH&}FIC9}MbnUa!l_X4O`%_LMg3(U?uGb}ZJyX)}odgc3UK?Nhi;to_Fk z$46m6A z8(JXfc%Iks+^h({9zWT-LdO5WuN}DY7{QTte%~gw;8nza7`t2sr8;Gp=WgD}N^{7w zK2FDVjZP|;ZT5Y=VSZHo+{HCY5wf6g_{Nm;p zjeSd{Iy5=?&?U#Pn$i1Pg+P4HPHEppJHUVReqy}Bp)VznLwjTiz^215L2g>Hc;`_wv$sO&vhYUrALlhF_67fbJQ#| zez%iviDG0cJxc!tiGhb5-3B@i+vh=j_l@GE1b5;+4Lv8d%7sXsPv>_y^$dL<^i~0v zFd3atUmeQ<7c^Z)B)Bfdz~#vGodKlIhWl#Vp*tOj?0Gh7uP)8jhYR%DkA6!Nq|0+w z7iV?1h0*t|{>)1_1hBc{{+IGj&)4q$p@i$sU%YwKMADVHe|7jfZoh$b?=Bi%fkhww z%-To%f}drFKSRU@tyjTC_#;Mdh2QRl1?0bMdJ^I*deMt?oa)m%lddYFpD4<6@#fD- zohtTEgt5aaAUygBQTW1J5xff{6)ST(p$gP%$5o!ALd1YN<9F>o6ZoW`{Wwq8Q>QvwjRvZTB$kPWJUJb8?LWp zCT>3Yjb?U-JDz8$#988v`;0Hi4=U{BwfA3!x1K{iiOCPZm&xRsqi1B!RrF< zhwF~JznC&J6Wkte06ncJ+PJ;yF(5Y@M!N3x?xHvo)pe{&X1Oe~3uI|M3T!V9hB5;= zDw$`Jk8)kASvLSct=UsU*G?vk*!#I!Je)2l>wUrc;8$x9*(+!^ zE${3`#`8bT>*p_2<`<5{)Ahdoqf~QKpe+x1xhzxvJ=MzNnn~C18zW(+9GdL4!}-N9 zInt$)SME_ZNtH8U6=qdxvag$X2RTQROOSj&QKu+;*3*w7hr3z=VIH4K9MQWqmXnWoKR`RWhFgI3GuFEU7Gq-<#ZZbT+>qa84^I5 z`x*(vb$7~tmQb$=Q5hxxN7`Dd&ExW935RgYnEEW*NL$p_`tKg1_eqGv)D!iXq2YT%UkXDP?7g`>Fa_FJ$ofN=0Q=P3M2jVuV>R)X_NsgWf+ zCi@cqh(PwaNr@7Otmpp)-Co}j7a+E@Y-+U>@4|5!wiZ5o`%fj~p^)S{@J`Hc@Y4?- zuDTW!f$~}QnV&!T$>d%?(s43AFT-8o1IDQ&fZb2DYu(p> ztEXO5^HJ=#A09;{fJz-bpfU{#YNx^3CmBKzHk^iqdOT9C0pJ#z3jo_vUW#*2;+DX` zxc~kJOG~;t!nss;!LvwAZ$MSv(^hID(N_yW#KNaVR{tB}V z6Mdq7S*NzFZYP8;;=Q2@q^JC7w32cr?#csdJ!436#?u*!Iw#Sm{&0)dW+=pS+_Rti z$1)TsV0qYUu_MOUU)wWivO_rmQZXFgBf@=($?EQY?LQ0;PIy6KJ+;H4N8^1g zEK;wlA>*8 zK6t(L*wnhv(}AC_=v`y~J+F4{i~}hl$1O(QaB~rfRjFr8u(*wKH`6WNPi1fYkBc|j z>3bRS{Nens-pa0>>$gs0h1Lpkik>zg_Xk)_AHbq1i+@?*2h6qNDs#F#jY+WYTi;h` zMZ~)}rkQeKV)49hVzjQ5;C{IrC2}ff%&Q_LQ9D&|rKk05rI0c;Qs4P1Zoi1aK(X6t zpQLps*TdHOTVL{6PTz+mN*I)z&U8{-i{2!V7h$^73QCO9cQfNgXQCseJT-=XpUIKc zWRMyLGBsh=$eot9lra{=^mPZo5ljQ@bHVaf5Fz)) zfFe2ZI^9+MxI*zy56OU#YrZHnmI6S^DBsL?`da)pRYAjIJ9Y=|!jrwSD1-0|R3Gfe zG;bPP^=SCRZ{7;0ORt~0wodg@(mQ!tMcwYT)2Qi*(h19N@v>kO zWxJT)z)8<@0y)`ik&50QL#8U15ZH)4iT4_^FwwUenOTXZBzeZ9cV#YoVvx5`1@+g2 zHu2*)g8U95sz!=TnXtge%W~q{shAUaVjIPM!VC?KIJBR@FNG&tNz11J{9XAkh*81I za0}Wha?kK<@GxLd)j%58E)DG}j@8H>+fcp}$ zOOOBL$1(u3z7E;!1yZ{24oq{AN&Ln zP5?Q>yM*|(_>Hfuu5YevP`21y#=1cT$-dF_NBn-%t+huG13(bC0qsg&X8I|1QCjmQ zD&6+!+vN27UsWYy`9ca*{KcASFb8l$c_G8ht@f1q7Vsix(>&zv3&P5BAfeO`Y$m9yVM*b_a=YpBqh?44kFzLrf828vJ=D$SbD@T%Oy$x%(ul9K3 z?Lx7jV-&zZKANfT`G*}qyMxOIgo$d}j#(gcwI7R*|Cq!zY~ihcFN@G|7^Pb^0&9TZ zkpYp>-`(|BjOEWct^!>1K0uKTD&kw;35`!Pwft;>K}a0t!Pz4mI6dtGZiVmZ&oNj{QayfV8%0|N1P z4ilH9=0VM*j#HZ0ofAu0h18F3=Z>Pk$a?3Hvkcwf7tnZb-hqE; zN%HJyEj|;CmG5zu4Cd+vw~({b!LoWXM**){ZC%85cit1{%Cfj4I73=6md8}-o5NH! z%f(>_@6jSfZ?D&hPHI)G(jSNIIuD<87mYVctLR<2hQ4dMtu8sY(No%7wdbR2YE~ru z+e#MwxmBB|*QcD}R7K=`yOFi3XG`1bAXA;?DbBn1!x{##5^04hrcRMl9y5J842zrB zpqlA}>8KPAd-!#Dwhy@M4^l<}-+YYjM~Rw>F>iNIs@xF6F5rP?0*Pr3z$KL;Z%Mj+ zoy{>3kKA#j=tv3Yi>Cmcj6eZZ1J4LdlWX1^4olmy|et1N~ddW)?bQi{5xRsU$ZIp ztIJYN?Zx3lsz9?#v=vg}RuB5s^<8xp?;^}d^c+>AHlV4B(fNu|2Xies{U#G{biDn^ zX%lfsSA~YZb?x2&sBj@bG%3mT)8qa46q6we^xYBaKR7NDu9PbU6 zwXT&N#~~$dpEKY5o2)968-i>JbeK$1Jh=ieQSA@QJUI^+pKFirEW21S>xfV|Fgq08 zm>5W6!W{ixU(7eZ7bZvbd;r-GI>J30UlJoJGQ0K$pO&!^SW3${NV`2?t zqZ>rXh zE2SA|lKEeP|F`2n%7%HGMo?0Z-e`Y=NdKizL;(FgL1!zZCL(41 zPt+(N702!~ll>3#s-y=%B}&?|f1pOu0L_v0wm0L)66h0zDk^IspU3`TSv~{Js5gSF z|1hsj02_6ZYuosTWoZKibu7k5)FnOQGVO}nZ=(-&WH}oyFzy2sa=!^IJ6hPu{F{J{ zJ{xhLNu(CzHB~2mu;RBi`of{M^N2|wp!r_r9OQ^rR^UBC?-sxEAQ!TKE1xUWbsY`@ zm$6QNH2a<&`GQ_Hi1eA7m5vsb=kbgq5DH}g01c-ddrmAocT<*&X0Sg4TbUI$O}0g6w6G&^rKJW=OF$iM>Tr5ojw zT#aQ+wgot4j;AY`Ou3=jhw)n;nZx@)P0D2TFZa#N8Et+35(QikAki2pWZF82ugYRV zdH`w5?5iUGbAzkXp}>x*gIt$u)5-ul?Mqa;b{!Tzd}UHrO1xM%Wkr>|11?>(Ne6fo zTzUYS5O5;9!6bh2e1Rdo2j=!I1iJ?S)V`yv4NlrMu0xM;6H(R-g_tkErbKa!)m&X{ zWx62eDD?)bQk*ao049;rhEqFB=6x$w3)otSrIHX@)4VQ%O4QBqRl^_vTkODZ+5MKp zPIsw2n_#KUJf9`0Wqz7)UXIXbinEof1o&k{oKd8+M`CB|U#}G+@4Jp@h-=v%i21ra zVIM#tc!?-nx9t*IO3NvmtQ>=3TcD4ItStihoEL~MCUdth>8Veioo@S!kEbhMOG!x?TcTmC@)Ot)ObvLWB)~ZYr9726k8uUD4;?lYmniS0E13VCjUCk1|U{@ zW&onHX5Rs%`7*9E`gY4qgp zU(8WoMPJh>h==9@Mol1r0)gl!DesILeiOSY0`n2Q^xXb)jH7ASlO~u#nmK{~I z9LrPTr|=s7)qQ{vqk&)5aF@0J0qqyAk|gU@p^$?Gr~;mgXR?f26QIbr)@)O7k@ zBY^m6zEU{@(9v;&=H2ppq+m?wwAWtjlr9VEnvPdI<$0zSNf9GCTmg96pQ8M?u`Yl` zc{NVI4VF$r;YnTsK#HamxGk6@89-Q-0nI(7W;ypjs-IO*reQLd3>_lGan3 zWhwaKh4AP>guhl=ee6c2_=TC=Xe{t|wfPzDq7!_x8aQ2?kdR$B6$7!P z-&DwP*>bvBMk+Xfotig0VCNOT_jz9g$*X_jRezhraVK{%t^va$fFY7uaQcA!Q2c67 z{LYRU;E@EXNjskc)$}UAM$1+M*l9C7`Vc^*i4QI}Y`kKxQE#P>ukkTyiKUsnuA#$` zCV4MXec1K&h1kJw#-f}?frLvS*ikd5YO~Tid(kmVH;RvS+3y>sJvW}DAf(J<6d%uGq*}(Q}0Hy#ij{9*Eh@*9~S%q;MBO&_* z25~8cop6SSRscxA#_zCo0;m$r4*HLKvx)BAGE@sJGwFuc>>q|E(LubD6*AMfp63cW zK*&U7ShD|sSXSH!$|N&3UE(8AaSarx4l7&*!763{s zG|;(UWo>=@>nxNLd@_-d#aL*<9*dz-T2xsDKzbq<p}v2-KX*VUO?kVevG~a?~8p(w#?oF1*JG zItSAL+{wX|JeJ*bP8MM@f}T)k)LC^P#$lR5fwJq1D~J6u62CGus$efb1>PkfI4w$1 zKu{E$StHBmZX;Bwr4aUWw;2h909IbL_GImgl3j<(M3+g|fXg7TV<{nD)GSEN9p&}HDk+tVd<6` zYUvk{8PvM7K~rl!tExOkg68cZl(^k7^Dyn}siMFHZ#BRZR^GSqnPHL5(v3@PZV$Pd zZstFonthmU3Qf10fG0JJA?~bGOW`kxqOzIJ_W;RsVL(wj4=2-Q6nr7sySkXV%7Omq z5gUkpiUoQKHI}*3$j%hIhF!wuMYmj)RZ9iMgmrVZGp~< zVp!r$Vw(Y=yY;zW%8juIzAx9}<}o3gE`hWXF{}}|>w#L3ap|_KmKpUXJygYR)2@?? zOM+f@`H}!QCNEwheZX`T-AgSMhXBX*arFYb&G&O+m0WQD@;w?)qVk#}zz!K5ox54X zNvxFhb&2)^ zD7MF+4BhK4H=vQ7VFA6$mE26;UufY|?R>A}NqtN?UDLEQfo)cJFrD!qkyQZ<(* z6q~L~$KK26IJtw}Mc>e3*lI&Fgx4bKXA$8oXg^m|I{!tU7=4d_%<`+vW6bl({s4C} zEBNR3laNem$W9@^8r7?UHZLAw=RWtuUezjQH?vO|$dzAJJbt`{<3S4bu|+i#>twIe zy6wfO@->D;sETiXHyodvg(RPSKn8}r^K>^e4cVLaAt3fK|9yF$u{VaQX3ScDhwfW;i{R7{(vMAFy6};zbw)A< zOi5~lAgD+hREU`!USJ`p*q6ND63D1eeB*k>-*dGcCFOyG`gU^RLbB~T5U$@ zdV1PZ(WuyN1$rifJKpoa1)o|YW9We5!Gs%Jm{zA#Qp0V*XIAjOBFdiCANVs6++^}a zgnnEoLd2EQ5RYP$Ay}6LR8RQh7dIFWWu*O(Vyh0|8Whs0EYfq?BRy0;zW*xgs_MUe z-o8fEn!zb{dV3TwE5>RQW;{#oVxQ5etpuqp$i{Zhc%&>{K5FM6D|Nar5NEex?h7rj zc>7Brx0D5nEr@sU^Su4@K%m_dO8q1~XRkEyf)F%|T#8Gx?#VdM7+MScY{73zkRd*!v^w@Uyi zw}@R6xY~f`y#4;3XftmdW7jnI{IX7HI6f(|%&M!%LvMHe1Gf2z$Be*2f5`7mgaTr> zzBpznXt;KeH_sq#CiT_+5K2@Wvjh@Xd1tEWP+}RUAD7g zg;EywNAcQVNEvfRNnq*8br}7g69{V$cPW2Y$PHur&a(;=m{pYBTidxeW0*c(Avk6~ zH^YQfBNfW2@^AH+Qt#fQk(-#67dB*vWWVuHWQb$K?WUyC{7Gi8Nyfmd+{58I|6jEL zx}%J1E?XPf2!29Sxui7s=464@ELEu(vk} zHhO)j-hRDbL3m!=*XzBD37NfxTy9CgQayPv!_i!Gd%j}&jQOy8}6b& z;>h9I=iZu4C`Hzsk;8PJMQ|Uuen)8*((Dt0?Yy`Wi%S^#Sr8c@NQ^E)nu4F88Rx&j zb(;T}g0ma(a>uCNxk(3twMJ$oK`F?YN+5uVbC~lE3F?dNnRF!=sGa%tONJ4`>{=nWpOm|>f#`zI*?Bsf&ZrTu*l$&8Mk#-{DN+w5(QiY* z4RtXwWp2#< z)Q$^^Spm1{B9tt>)^w)6F|jW0Xa|~N$RZiNg653IdD;kkL~0-OL_Fo$crFGlqBr;N zDWf>Lwc0I5;Au01Fr`GNI!J?X`MQ%LD?Cx%tkvI%^mB`Kbcbl4?4H%zNJBA*3Pa@F zPKH%W)fIMb&3PoVEx6xV!llZF1p4xw#Sxwj#oBkN;*T$n(c8;s|<>0lrIg?o4lfN;Hx2P^6orhTZ- z-^_5|OQ42ArzIPxX~Cofscdr|HRcwSny8I8 zooehA{eA4bL@vw{E-A7(96^KKJN`dSkYK;)7U}&h&!Z|jU7RpF671t$MNL^g9PVIj zsT$k4>JKEilPZRenjL}ov}_)(OlgtWx#okPo~WS&26v>IGz=Q{j(a=a+Y^r7huxDI z^%nFMAUJ?B6Rtk@l7zR?48K8I?npfsB;G(^t3t79LG)jI2@AskXAachYk@dSnV6NK zJ6zc)jyYWLeL^s?n0}W)2yUz2K(8C-u=@#56HJFIV^~ zmHHxU8a(^Bfk$_Fjy1?blZ1++KrAC1ZHoePdphJpci_u7hpg^GrF~f+NFjYnD81e4dD&;Va3IN6y+k?hOQe2(wiAot2>N7l+bK za_jWCU)?z-Ib5&oOE6)FojGh-B`DM<R8O>2KSAtVYHX^uF%=D?}K?W`eV+|>S;YqL6N=+^L z?P8;ID*#{~S?!2)UPKu$c1O(!O+M3dbITd{>26c%#FTNsXmj)zhtvD=n#?FZuH*T- z=H8wY|7p>*Oq9u>e-t67e|BJgsjkYL#geJmUd*h?3J}zD>f5J&hSoG;IAo(Tk%GRh z#75xO<$#@Anror{{qJynenbkaE!+6pig#hxaM9zcEOJo|Hxe-n z;-#^`vbT4eP_sa~PJN%%hr|%RyYr-3=*0wh2rRsV#7T{x^?mfzsC37^F6ye>85;0w zjP7u2gSWe=$ALpUN>D6CeH>db6iN%f<3;#obj*I%x6Uc#nQwD71F{)JPY;Raod_^? z)!LrF+nw(LV_m%SVD4PT^3gs~GC^JuSLqz=!DKSDZhC-})@~eo?@VsJH5`qw-0P)A zG(GRU>=e9*gqX7lq-qE)e`;V^kUPo?0guR%p;8P>U~WaZcw6?2OUrkn`h(KMdTV9T5#>T z@q^aKLsglz;?+4sACwQ9eg4*$A6i3jL-Ptb`QUnRYJG~FawAC`&@fMST7_4z0(NrjhzR!yqUXJ>r-DtZLqm>tmGm39_wk z|8334;ljdQf)@}O?k*=J66{)@ThUdKKscmh25phibUN{rcHJ)jZdy#l`Gc!f=latz zPORB!H%WMx!Tq&`zGZ&MQxxYCR0S?Wty0i&e~YQ9fi&oma$+Xy(TVJZLn^yHs``ay zccA*o0z|nRf^HD*vk&!N;5=H`uhz?LVHF=bp&>Lfeu%RpN-}K>D={lta)(pNCb+g4 zWUsB6d4|^eupadX6@q1h5WYL^^;@iyny$-KR2oo9yNMQ?CzI9-?#lBc%i&y-4R3|K z%Ef7zZ69tDK}BSsR1Gp9b;8KeW$tfQ%BzW?!YCN-mYC)aclNo+@OxJ}J)701R25|` zR7Rj?MCCZnZq4~DbR)rDe_q|wGl>%H5DV*~v4Q79cm>6&YMG#LKBE(-p088-30~Xt z&Bwv@U%!|#yxATY|}BD3+)bg%AI zG|U=Cg9RX#ba8Mi=pqgJQ~!Q=^FR@xfef=oaUL4{o+Axlv!JBk;_li&d;;{_I*T_u{9>j$2MhsKd-DDeBp` zG(JV`n9rK!Tu^8w`s+I2Jw>?Yz@#ys;x1`7^l`#rkbaQNA_2j}E^*|S9|tb#tXI3I zko)164^q8EM{n7MT0960IU{VW+MDK}P8~UX1YB>?h>EqHE%Z0H+0p>~CzD2=PZj}Z zR3Gi3FA8$<@Cb%?tJByf{Wabfb(7`%cxB`1exjFj4z=_f;*p}I)<13>3ki+b*Zbw5 zOFyVFq+L?ToS~LFD}0?ZlJ=LV1)0Nrrf0j`EcSmj_}mp2)ONtM7r1Kk&U2d)y|)G) zbGt`H1d}fiCkXS1XBY3-@f8Wm`_xG~tBSB+xNzXi-!0vYbfqPb49@%I;e@xgX_CC& z*@&a*syF}O6%`GNvv&YqaE=yD!a5vjKt8+hc=w&Qm}ikm`yN|&YokR?%{c$S=p%jW zy^9|U5jHlh9x(zN^+FW1P9SUK=b@rydc;MF&km^Z@sQ&p`6zIR3FQUoPm7-X9^l;Ry}h@foR6bX`wB#*{P8>er=;gd1O*cb)s0p zM{(+xm3yQeYbwDcN6e#aT}#?SPZN}@Pu_LAY>Gp5`Xoi14+b= z+Xe55jS_gHOXAgk6eH$tf3;?;JpU?T5qEfSd5fsl3kuYeZV>D)SDrig%0UaG?O>>RDWGPFO^i=N)ED6rJkEDoT~4^_omBCa*H{9xbgIp$-i5Sa}fHwjW^lt=TlBzukDh)J+YYM1j0N$*MC!Fol&7$-2&~F$e$4{wcf^J z?Od>s`qYWYsUeU7LBZpYz##(;&&Wm^dOZUm{B3VECA4&X-uRPwb1xhtGzaMbh3A~l zJ-2E9wl{mqu{Z02X$KdFoUI0=bS7+tCrUD0v)f;&kupRQ$esvwwBCg-#E13uc(HfK zzIdnDG0j5C**@NiIugr$&`wfILRfhQB*04TH|QFCRa-*6&gbG!13s;>_cn!}E)2co z*rd&(7lemlQv(%Oq&|fHezv)0yZW7PETMuc5ENh=r-Sf0snp(cJ^Pwb=G1`mgoGN^ zfJaEYWbU zmOEVWM?J4Nl}mS2nxi(i^QV0&LvbJy4Sk@)fBy!{cL^f}bB zO=Atp++i?2d=+SLZe&#Me#%d);B(oI^|9x<@J1_2T#9=}p_rcY3)1q55oxj{DY^`F ziK`B6W*LNm%r8_Be+v)V{i4zRlYc8QbnT0+tgKs_;$Dw5%Hx~a)Hu)mtz^=f``+8uP(nZirAtCuIMe}2=@#h{Nohqw z8tDe5yHUE4_JDME!@IUO9Hqcp!Vl%_v)5jG#av^KF=lPs+v$3L6I6|3(VOB^ zST_d6({?*z)_%ykpi`x;TH(yPwo~pIbh>nAmBxRc%V# z9PMwGOn9zu*07CdWanDi4<@hF-&FHla?X@^t#IZTbPaLcN*n2;z zmMeI;WV%}t!4c4-zv0^4ho5K2M~y4}RxM}gqk6c0UeU42UsgYvc!pUC%?+eD)`8A= z_s+zpT07cI?~TB-UM)@Bti6gxq`A6*@C`Due#^9*K=WKEul}M~t7f+;E0Oi39OzFP>sr@8IwFn0@DS9`S!t`O5erGS}{&s@%8zeHKJ%m>)-s3q+zE08Bqzl zbvUm1xQJ#NH;H){gx=v#f}v`ON!earAPx_IC4FUI&xKUAYb;t-aOZUxhKw7-pyA?KuKHg z&%~_uzJNas?0ehE?J@pT$<`AsR~`jPS8#xQj!i9l9cSGd235SXrKbZA^HWhiq91F- zJFUITMS}!HZ#nqjGZak)IX!px82{kdUB2RuTw$bT7Ci`lCJRJHE;A|Jp)at06mAHS zF_(IVH8qG$#EbU3UlHWunnmHjd8*5e<7c0}u~Vs3D#thV>_F0-T=%AwLkPySdluak zCG$f}(^n6PfSLB~=+oD@#*W56yi{5m=$N--mUx^u-W?a^xd3iFJ`#_p#ZdXfmv~|u z3QvcPtJC|HA-GC}+D!$4L91KDyn~;aamuM~ij17b^wQyIM0nn(dN9-M!C+RGKsXaL zs_j0n>RKwI{+Oq|ieZxnJy6(}$w|(#^SgGVzZMf1RvXyKd4)Vu?2Qi={Y#%{%IhWi zSEt!)KUQCQLscziZ{S)(6%4qqcGoYw+Nt!UzKr)t0h?H#JC1TY9xmOj<5UqKGqQ1c zYV3Oo)58%9z`pQeQO{|27^#jD6AhsG5gC|$=6kXLyA4ZJEJL8rx1M);;QCmShneP!P z)mT+QTru4ciN=ouu?$?9^}(c=m@VxCF(%Keom5rjv z$A{;JM#YSQx3iPo*0O(E#-C|I4`9EM=k<_l&&cXSn}$Kh^R6~2O)||#YGypJb;8h| z%f!5fXEMXV)rWz6GF)c!4VNgUHuQzxPuF=6Zyi$=7wr4-$Z(!bvoAADIH1@io+=DpbE5c{AjxERS-l2Gz`Vj!N^@57w8dP*Kv;k}!%t zV$SeuNsls@!hwCa_06n8%~3<0Vl2*=RH)0x$7U5Jf$95kLh>r z9Y3;Hod85vuNM3o?e`fKPRiA840GsJx1SRTzIySV9}yPZR3=7@rCu@ia2=4y=T|2h zZ8|Aikfiiyv^}CceId*>s?O?dAJ(PtHAH-ka+dpw(^kF~iHXzi+$^l-xo`17wK~9u za*k?_a_^ewqijW+slC^mbwQuJE<{CW-|Q&a zH~fB5E;r3_@R@2<)!^cdzCWC=Sn|=o8#ZoT>VnM}q)ddX3+7-5Qt+vnU3?~IV&l@0 z$ALnz3q!uauG-*8n2fZ?yWNkH=a&y0@Ji;_dBfE>b8e>>ZITFc=B=U?C92yk{V`N7 zhSmx=c9KMTGKT#m@3qUKjoeMQ39|SQpN>#Q-zGruWJ6=Czg<9PUYZCK`?y9{d5MII zIl%Ib^Ybc|Ux>_bn(x-4?DV;R3fT(d1OWSb-jZu=C~ZfPMGPI25B24t%pGhOQ9M_H zxr*&e*P0txP8PclO8#gF6!tp`)y@UPb>GkVgHoEniE4&*5J26thB75!;mOYRQSUMH zp_gIF_03`P`dLae*wORvR}SYsp5bvBrcRRc^v$QGjEmN&21pQ#wv1m)WX`(NB@o|B zOyP1{n<1xAp0$2Lfcf*x&nCJb_z1Z18?^H$=VbgrTZE&oU>++EE&DlKO+6@_&g@6fD?M5f*jez#K)Sq+;MuyuN%!HaUDf3wlm^x4EO&B`_w*A zARgV=K0T0vw_JH_L$2?9iuA4Sc(lXEa{he%jtWm33xRc96{y3J_eaI_lnh@{`c0iJ=?kwHl%o8>5=-$mznn9Cb#3SDxB4%B|lOh<{RR1=P?B z2ZVE!zT)+gG0$2i(beE;NFrt)t~o;WG%n^>VA5wTS*YB>$9jx0T63t5M0@{hIh$`t3xug zUqATAH6$0%yaR7=+fH1#)AEYG{{3AAghrgh)@%wS>;T#pJ|@TR(^ycbYNv*asp8+) zL*LrXjjE6)BQ42P1c&&&q#ULyYxfye#=#Tz7O0;qJHQXAO`uCi;Fyo@#`ujW{%1S4 zAzzK^jnHT(7aMDxhUoZIQ=M$KLS>?`cv*7cMk67lxpRo>U3;%;G?(zf> zx|xlf7|$hqy9>$!zl!dMiG=6(>AWQ1^}0M6)jgl5kLd{h>`{%LbM6ZX5zxd3jBd#h z3dwUDr_~KSm&mrI4KJPFF^BH}Rb8`pSLOUkW{CR%RXD2NaH0P7#F@>Nm&F^9S4~fGWM3U#b5c7wV!xJvANQ5lIR#J$u`Qhk2@SUZK( z0dC8@=RaBP&08#=nA>=O(a-~{sYZx)O>x5(ataM#>l6oc@zowz+VgK5B9Mi?o#8Wb zg>T)R!rur^f`UyY^B?P#0MLji2$})0jPy`RnueJ)<(L0jFy(v%;=P?`XCfaM$ycjb zp8|$=W|^7m1dGK)H<=KH>f(K*lKo(jW+vj(?|O5Snd^O`80fCIknY0e~1|Muf0kI$XL=P&n#F#_O; zA#u61vQ~4zb?LRGp!262z9FGIA7Q^MP(`Hbd$R6wo^1E2DH?43+Y|QZodo*O4j=rm z-u&@(;hS!-S$Y2Ie>s1h(sri-D}`sO!RIR0fC^{=-!RLE)Fm~Ll%1ZP`$8QE9URs8 z|DeD8vIYP7tAOOsfMA%f4}lP7`>&aG75Y#I_{=wX{r}jkZol+2;-IS7_dRV6RM^Z1%|XhP+?Pr-QhA6=ZqY(_4A_uO5M3NdaEMcRHdUTBIu% zDVzW~O{{tOLMrf~Wwt>~&eua0F2I^0X0?1NcN>^?JSbP|cv*NcaU0U~c04eh58lmG z90JmaVy#CtvD`LfUjqN}>i*j5Ee+updXPXRU=hWlEi?iy=!M9l6Ohma2!8V9>pD0_ z86nY6SPeKHJ%j{$3kLj0sv`3T19`5Bre|%Mr}E2?&LK~QZz=mT{Q*mZ?PfU;m2>3; zdjTKLhi1UTxIpCtB=v~h^q&?f8&tRM__z$7&(Lwb?h3=v3>zp*Z}(PgSs{*ED#m{5 zjYyQN>t^Ud?!v)bJoBL2f~2MdXqYXl+w2DeTZsl#b&g5rt!==&r!B2oF|)`@zH6P_ zu4Z1Q#|0#<74Hv#oATYo&p>jR5^Fb6_GJs$9&3LL&<=bbR){H&Zv!5|Nq4Vx80GnIBm^n4}<2axO%KSKN%4`7%tqtU+(+8y|*3)?TfK*1=vq-el;|q(053t*$ zf&7OSOf-)W#EHzZL!-O&@uSl%!LpG1?qNM~bx0iOfjbD+9Oa?6G-9;5K8PViTEOq2 zB8xbz&_?dHV12EQJ{qJp_pFugB7LG@akg2^X+4|lfx}m-;?nzsE(MU=?^y*{xNb!+ z0EY*+a$sTo)6CkJ4yb2!4wnu1)sppUfSiCX*0LVm2+Z?^^rRqqgJ*ankcICxom!AL z7`-iBL}=d!-%8IY4m#oAPQ-y^PWfLjWN$srwF949cqe)93FL`gB%BNc+Z>=PHJ%k? zk#S^y!p767IoV}+{GqjV$N*RAbk6OR?iuhXzLfSYi0-;h2V@B38TmB#Y8$6mcp6}O z1CH-$-j_K@=mH6t4_lS1-*xhz9dEniI49r^K!&<6!CRw!oC>%_Ik@+q5G&g~UU!fME$TvHX+jIGBl!>2NLC{@2k4dmBYz{OXgE6C_>O(io+Cm-*iB)XBdOVI{ zW3D-V@%9uF|C|BBt>0nY6*Ztc^D{c76dHpV$3y`cbNt{>kk~F+7@ITsU4V5_6jds< zTs1J=k$~h>1j~T2<#xMKyi>6icW~T6&fEu*rLFHD0`Bs=RUj?*^lj!;kQvI{^|K~p z=JhND`nl3a7I-g#wsu9xb0s$yW~`p(3l8PKIqtaE$$-cp^yjRMVt@_M6Mb`(P24)P@Vp>-1Dw=VS9ZGf`AkP3-_!gipy=wnsu9LH;Fn>xu&!18B$ zJh-~Z1wyrLunsa?1q-VGeyYW^MfG;Z-X${CK4@UWVy5)`44LTw4~$l$DAneRkRI~R zp^QJS%;B36ky6$~cHNr8Co=A}q)6-Ah-r&zd%Fn%RaWfJn$p%*-h1+nVJW= zu?vi}tJe1$B$=}(9B>1&iY`+1*k?R#c3f~A)p*(&N!^TJ?dRL#lJK_tUO^*1q#IrA zpM4vz@LRm&@%9x6a0&)S;Ir!z!gA9%{x)Ti-VeK-Cbr_j!>7QQaOjyMoDlZ(-Y99M z&$^}^1C}F$85J07j|HIyt0ysW0t4yF}0)fH`~L*=Z9>a@{yeLrWsgY{jYAuYmq zny;h*NmvNn%6fvwN`MZtmA>)n;d=dOpliiCb{iIl=ONzi8)Bj<%z7M(XAY0_t8un) zc-94|pI@VS8ICJbPYgt}xQbO$Jz z-A7!r-=xzWKzTARwg7QO>y@`yp7l0tLTtv7cc)GJG+0B}F7e1PBBeE+^dam5{=T36 zd|;(RQ5U|1V^JZxBoS$q<9dlk^LIh_<*Oi?sOyz?fp_9|zjzub>{C04%^G;TA(V9X zfaldIP|OlfT|=6~h_a&QCh>FGshZlq&(|BTUpcQ!W^F)#m;!#mIQgR8_%zyNcq82bD z*O0PjRwQ`7DTRlj-x;H7Z!r_6;i(C1$ck0sDsdMwy=H7A;D}mX0}v}P=d6^IP-Sgn zd8aFIsNm&3Nju$+_x?^`rXoYu=1b-&=1m0*g{FfpkyYX(HMkw3l07t6zr~QcZ6X$V z_ryIcr{a^S3u*tqxIsa%*m?y`MqTl4o;l;<@M_|Nu@9tt?OKE%9 zw>x;JkBdLM9&kZc{;}+D1_`xtH`hhQ_=FQV1{3wraG!4qUKzQa`czAl_tsc&e$yE4 zQ2r-;N9uZ(tpf z`S6v{a^L*>e2vHVJX7_t5@C6q_F6!Zu7Q{P2A7D)gYKqGc;IQ%dg=3PonzFVg+12g zO5ERLZGnXzk)Arx*o{nRINTsPepS8(B-es0rPZl{VN^%SBOp$fVM417LYS2 zriaZ;cNlDJ6K~`|h^w_e_$Fu%Zw;u>G#F{FAvp)=g>M~zP)%-IQi)l1(FsVXuTh8w zNcbAQ2Fuz2sOk}g%j#&dEg9kTM#MFMTD2pHb2hR*DXTItUsgy(c-cfL=3@N1_a-x=9g?A2Q`aYw)p00~zhCjE ze<-hvPc1_|V*HP@130~)LZ_E*KeOzM9}zH<6)wyhWAQIq?}|iD0L`Z+CuX9zXW;;W zIsF?a77qg~ZFhU?f%}iIqg6vYbnIpHZ@@RwPi6-1(9y(~;5aOhuQ>BMh11KRJu65_B287T#zj`UU|hLzP8s<6LG(`tjU)?ZoX!spg>V~0|Z`CDUpbOBS5IHCfCXoGn zG{m55Rubaq1f0FhsA~aln_3dksZ+#!?g4zWt zJtdknJP4Q52P4>lsV2$bM~0%ZCkM~T`m%zQ$@|oWzb4yHoYvi4Mr&VyIpJqoqgxYg zKFJh{cYJi*!nE@#_Y!?5B*;wj1-XFD;T0!E#+rZPmF^fQy#4fdVj!5I`$H{=1Qcza z4|HazXNtXAhl}zI{Nr8#1HBFWma$R>3;)Bl*bKnmgSL$n=i}E}cK~8ZCXr+G?6YptYegoi8Ib-Ria{;4U-L_yOG!t7!Isd`D@!j8^JpBNfIc!X~ zq(QElZtt~63XPg3fpJ6>VshZo4OW(hR*%0b9JL&y^NTQu|n zx$+07l7)L?+o$t;xqS{wOSLsUK)dhx>66G8x>4MT)}!}*UBPV)-dK`bvmKHd)0*a> zR#XRZ?77x49`7!Uh>?(rSCcPYsV`i44ScMSA8bK@r_9s4s7Ub?Ypp0Ln6La>ghK;A z_shZ|+2n{g$BfYQU7(R2Y*^qp@Aa~z!)_)smCt|7<0QhWeOK~KuAvVTI%pJrihbGp zq$%@BD6P%NW5lku+u^h5$xB7`Y%4ZG{){E!bV{IhivE8BsC4U~`o%Rx*p(!Acs!tF zU|z%wpy1`|F+dctbgc$;@GZC9ylh|I(ZwP6jC^j6qhR%%@lzOIE71QK<1>^ zAoYe*Bu3$I3z_0=r)nSNHKz)v=jm%*(si;=eH-z=1nxfuzdJx4!F3r5X+%5zb?8wU zrpsgw?4dqK=Z`D#1Vtz-*z^h&GKJ}z83!?}pNj>U8L3;AV&}bc@W_RJP?{OCNb3MD zI)T^OXxV8p3%cfelKgqhfir;8z_9Z_8udRsv-^QN=-Ky+09QCVTOPj>b4{_jWWz(J zK7jM1PN!-+r;fU{C~LOPAba)faugf=Yz#qe>1>R3eZDU`p`cVk`ub+fcwb5R{OZE> zR0BuvIp@{x@qsi3=Pdo*-L5lELOXMCrt!1RnAv+@)+f;s-#ljI>>WP%_AEP(P)-2l z(zV}y7#g`pT``7-^KLW}Y?KB8^MOqIfpn=P=D;pQEYaO#v43A8mw=6C>=@DY(mA6( zAR!==jRL(jQkQA`B-HPLxj?NGCSFPpoeM`!o7lhZ2HhN?kRXD}jvb;Ea3N42u$B>P zj?rely+YKDp-*C=RO-C@v0p+k%1z%y|FW+NJPYeV=^hGTo*u+9YWlfp`V3%0^}rz$ zuQWPM5MiQ$Z?1OUcf1quziezICZ8X!ag_cF72{6AZ$AXo@X`;Y(MK>mk1~Gy)6ahj zu%li!9=J1nUXKX4pP`eaJKVj~eHl$OnBvA|OcGpR-}8ALWPOX>dCkY}oq{zK34mYB z1|J-Yu`4U%xoDz6O?o?Y?_kD`Bv@(;%8R zDkU62-wv#~z2c#?%FDG0USNMh=*6rA+9!)V>5qt3GX)OSNML1skK8H4HRB8rREUoh zKl5@`12(u-^i`%px$piO#V!E!)m`aw-s&I*u4Xd;bfojtbUnCjTLbVqof>GWR`Z=5 zZ%r><#NlD7C|?Kcfu%qbO;jt!|A#LicP^~H-&S-rp#TV5>4t4q^nK#|JLdBMgu zI;IQ4w|AwNzHdZZRHH+1tcqztQ@tpe*)=*eq*F4(GF%>Y*+diFa;KbED`=DEM~#o#-P~S zo1@Jip|Yt>8wF!KRV&4#-V;?$S8}Bhi*^8MYaBXo>pfBpUfz0nLlaoDXdlc(;6SD= z$J#abz}8ZbTeW-$x^E{R7&=_LR1g+)_eeEPnd^+4CZ~6;7nC`on2mQk&2PI`(OA6@ zuTkYFqOhtII|3@}O|e&k^hBzNNU$vL4*dAWoZSoH3Li973;E|>%T^pAcFj|OtU4Po z7_xECh>%|cUqNo$)O3gXM>)Xrz$%(p-BPe;GTit~V}|KK?aSIR(ua~y>AUKJ3b*Yt z$-WD6uQm05lSP2{YGJE1`r`HH&XXmw{3j1yu8b5>3$we>=O#2pd(r}TB$G!V**#t1 zteU0+rBz|VKG;}bo%EM8dcSAv{uyVr?Y)9DyCTx1(t-IB&{{Y13D0=y(E2#wZ1^R_BXYI>$nCXtN))&^|~5F?$;>t5s8u{_qwA#XR2Fjn4AxTk>SEZ|~9X zNY?Bfo29;32Zs>9xmer}>jhD|x82o;Q% zHH$S7aTH`D6b;Gy_)om>2c+RtVHo|hAdOY98{Hc0%&s_M?)bys219YPj?x8k6IuuB zdW)s^Vqw3Ms$N)knf2WIY_vu5;{9rt2xE|hGQ-T3sA`EokRA!_e_lw9zMT1GGtl^M zbvvkq)Zir$C^u8kLgAl>F4)Fi-JS= z@1D@USxV4(lmAAd0P?cSpExF{XL^mY%lRw`4G%3BE`TRKONLao)!bUseR4EcpItfO$VgQe(J z8lf!ty63yr2XpG0Gd!?h!x&0eLr=+=E#N%GTHSdjthflw?QeJ_E;|j7D-`p0WpSR( z?8ct_SfkY@9C{QC|NP>HK~^(ZKT}GF<=sh#7;2O~+m^2eUU)a;d7zSpTh_bAK6DH+ zSh!~mk2#iqAZQ-AOueD2AJTNY!C)b|Gpz!}1;Cs6O5>t}P<21)p;Or5jN95l@D1{- zVI?uq#z8g!fWn6C(lH&j24ao4`RM-_2y~C2rnK=Oobtw8vtY@s59oDZotsQvMvQa` z={CC6EY*=R{3qLb51aBO=#$fvzqgqdL-j}8wM~a9s|&+T4ps^@GGjm<_Va#2r6`&S z7JEJIZnU;j7^yH{Mx(a4Vuq+9$p9zZ=*K8nvnUwaTD^?6TWFn@d1UKE5R_E-ny(=H zr*|mm?#)tc9oKp-75RJ^mShrT5y~lInRe;xNl2j`j5<=J7KhZdOQr$Lo<*vTvdsW& zGV35u#4C4K$*7aD{_bFOaf?Bj?FTx)kR&(_+E+EblDZw6<${)GV=|#Pvxab!r(R!n z-jNRQz#pf!Rw6V!>@Dw=Rind)iBXrGbssTNQSpfjm3tAk@ELfND0A3n}Ij|2fXG`LRx_Bu+MikNGyaySnvG?UJH&XZSrqFFm-_cg*FI^Xo1I zQ%O|9F-VlzrBY16OWzQdZ2P25N_ACuC#vEprxi$&H4Wf9L!OfxS4jwUhMQxI7Ov7Z zEE&SnXM6@WW_TvkNvLjqWH02!B>DJQuVeXh7sW-w>iJad0HbkCX`0A{4ZR5F9r%+J z-6x<)&OJOoLWDsy6oY#ai(dFspzgH41DDc7l037M0&3<%3B~Z9J&-kop;-)z?$?G? znbO>$CQs72t?AxEY=VlF`2}_j{bKrS?RXAQ$7k8N*|C!|vDK5qe*HU1h}AeQKFb0R zQ>_0!^%josvLU(f?*1-FeyJ3_1_$V8;Rla56oP!pq9c<6ZN}ZsPOQY~2>DY;t!-w= z1nC47jN6}y-SkoB(2`nvxQnOkJ&qT}YC-N!;La2#XO#YoDNoS*(hJuD>O$IWEhqRj zJ+;Ydmy7(vqBELh))6ZaE;5Q_{KL&WHkfL(joKu48-fpRO#4vzs_ViprD9Ys8=%*s zC#HXs$QjXi7$ z;*e=VoMzgu#~4F1l#4}!d>3tsPp&0wG)2Yt_iiD)j7)u4=)HKI@$|lsYmT97eF~gu zZxFe3^#tZf@*)gp0;WzI@4UGz=3nisJVJrItm%oqmfoI-M~m0a60A%LO1##?ygPc* z4X1sOX=oE<<^lN_vi=CubTu- z5u}J#7S-KpFlK^;nLaOl=cK}SC#Awip-F_f3zj9?FKj(4e|gt4Muo*WG?SRtK=z(W zm@%eDa*AsP&Z?*1(HfAgVk_N{E?%Fj{{^Pj&@fy{5>3Tlo4`(Ac zms;b`oCltR*?f8#uXvO41`E;xPq-|DVrC6>h!^FCyF6*G= zr-`Dq;jVTJE0USBGkf&>W3e?6%NO0a8FqB-@49J9DE2BIIw>wj_TKNLqH>PH$%)cU z!MLw^J7RF|*S&e?CfJ+7JO(xI)YFyPSg=s5$L1KcC3@rv-c~bi-i|u3jqHyhBVE7E z$nM>d;%cP2ThO};BkLvJUXDH7=LusNZoTbIEMN4VG>qPPBYDa{Gg^WP>-KXQ7JB%n zKx6v)%4O-BFcL#FN@t_Iei*@Ui7{!|3r|_N>kQdktRFEdWo9I-q7^H)-8I~}WVxFy zGdTT_I&xYc)45C^J6oQKNtPhT;3(fLJAIYj&RIbUlxqfY!*t^=ny%Dx=N#}l%v#RG z=qjTUEVCix3Um-6yruZUv*_;kFV&OZ<}i$CI%IlOmNlb+Vs?P!Kr{V z?%~T*vcqRO-{>f$DrF4^a@0yn(O(<5Dj%o`H>s9Qr%?xQ)ji|2qPG9xllZOO>}x?v z;v|@Pv2>Zp^vn*9*;ASeDIbgF`GuTb_sI{$gn=no66Vs$UXP_;T8vJa#jA9Bs(;oX zVjIh+{68!qfdY*--6z(Pa#8jb^Nx{_-EQunHbUXj{=4!)gh^AdLQfxgAoDBF>u}eN zNZ0*O?ZlPv9A$GgsZ5y!g_Tp5G~7A@J7in&wU^tg^-aK<<+qeuxzgIEBx!4iTXUxxPLwQroGu)OUq=dNOrJG^eXr}PZ{zKAR{aUWoptx9urHgg! zbYlludLjJ~j4N`|KQn20efq^oma2@3q}OxXic;Kr8{A@wiq)))Z;f;Nn`a_>xuOog ztg!@6;?O@-AQ4Frz0fgyatSVme4A z%I#JyThEfUuF3A699w(S&C*rSMe3U0eT|Jugi2k{q`_91ohUkAhjx0<>?pzR9d30+ zy3?*2ZyWbe?ruYV(Q>8YLG_GAnnV7(tAyfcI+&9`a$mzm@J3kU3Bwq}W)pNNxKYa_ zkhCZiNK`?>FupL-(2YLkQJ5)IczXHcevI7fgW>c=vLR8eFAn;KluWVFAmqTDqpAIv zNk4vk^Tw5jq>m1Mgz8>GkZ!hko}fK=AViw0Fq_)&knE+E^laY4`skN?ee!FcWxPZ0 z`;ZUBw4;B)sp)H%{9>t6EW96K;i&}AV`U~@Q?{0x5&C#szLm#taxcY?%ayMB?DVKU z1Na@FSww-IOW5>e*c!YL5x@?j??x$UIpAK z8y-de%+hkLuJW6!un&zvm0YiAs(=y@Pcnt_6>%g*t3xaUh z&eCJseIdyvscKfVPyNRRaI_oN?X0@vUtV=tW3Atg$;`iY_+x0a+ho>kN|Jl-O|yyj zKE90A7HXy;3=_SrH1t-(4|;aghkRYJ@{;VYnKQ>=2#MIXWrI%y-DxwPq$#NE6KNyf z+Gz*4_gsougO|xbP%cGktO_=n#45lJQ+q=2x)0(%o?^2khd1NSzO+-Rr`oj!xQRcN z;qIdho+-Lfn7(|1(xS^D{*S5le3{o34~Br#>rsRBRWQ~R@0W}i=+4R~;e%6J<~8H6 z5mAKFg54W|z@>1@cdb39;$PXtNt)HQAOa0yTqPL12zh+^`!9Lf!>#!~*=?B_YLalY zuF*FbI_)eHDmS^ZoN4aT-cC7W#f-L$*2f_hozi+ zUF-DK&$pc!?TD*y_^;IteQ#avo<)0fHntJOJUIO3+vu44`(f>R+@N6QMR@taS4InP%9TO51!=s%!PT z07B!im(H^8TzKDc#G)cHWNb53?K~1fknY7BYOko02Q=o6ai|HEF)esNDe%lVgX}o3 zjKzidDmF=ebcoOy_-+}hE)?NE>+$Y|L`JVXg1A?%Hofh|tGwfBSVN@LmP0SC>JHivqNB++h$987-TOQ`>c! zG;~76l${AmsOmz(|dE$)uQEOJ?UY(Gx#{_jlq_iz1SuiO#OVzKQ+|L%uh z_P~itnEi_|kJqQBEs@9UuZE}LZIPB#y;OZ^u z8;s$d)9jy*OclT5>OIDP&Y#`O@xfDN^&va|1$l!u_E&(Xs*0!DlRfXLa?!X32PR6{ zurQ$XlPBw0gjtekU~Bbu*}q>)H|-^^m-BMp)*{`nX$%YzTr4`|qQqLoA|70?Yw#B; zLb-VP!9FMVIgKzAd3BrwC|foa72xGK8T;8WrhMYDjVjoGy*N^2Vr8It&igP^*Xm9X z+<<)%`V?leW2w^l^T>yHBxgY^M`Jsl`|tN4Fo3!f<4%&U=t8PiqRXrKIEP_+@Lx%h z1m3Ity0kh8gUz|654JxCt`t{f{rWEd_}&K+32|(=7mGw=TL;(FgELH*vP!S~>z3UU zXp5W|S>;SDl%rdI*~+oc5<{zPZ`|G)D8)I*!8FbKCo0uCw; zAR}8V@J%FlJ=o*8f<=1mGB!C0$k&V~pBM$<6yQ+09b4^#&oSiYvhVE#^Pj@Vc=qs$(cxcZM`^AU1>wz_l7cQ5f=Y6@bNoIvCBhw-y+I&P5v_9x}{Vg8|TL5eZzhQIV)- z@h-b>@>IjmIM*t-FygcHqm7;c>`4J>?WqT`7FApiW*PwQt)}7%F7_r=QlZMO+-%hb zPVfOOF95q1tv;k5LZb4&>G-Eac(q)ibY@vy0v`S3tAM>$u*>a44ywkAA*~PShFw%Z zej#c430>?1CBv{4Wpho)@%ZCOB%lh{1FV}2D!{(JQZh-z5xW*KJ_K?Yx!ufX$+Gc$ z$Pi&{^iZk$PmnpF;k2ee>wpB=i+hX=J3j!^1_PX!ZB;-vXKJV3#u_A$h%XgD+Qyz! zgS{n?>$#K7VZxfL4;B6zn{~fJp`yYsTk87l6!5$WBIY_;hkMI<3qVzFR!d$Uka)4G z`ZXekrjeYJdr;A&r<$Q8YP{>A(L7i$nx5sR$~Fh}3c8=YhA@jS}K0bc0;7 zB>)Y*Ip<>7a?ij}!U07>l%0d+%s#%M#Q-!lrJD~N0duec|69JN%g_ zE>!2Wr6i-ae6y87_mxXhn~xT|6NSI*F_h#P zo&3yUfh>aV9kGyI@CaUj{dH#y7}INm0-mzt^`I&UE)l{ovEC%k@}6W7l*Lka-e^LC z7wdly5;E)qbWJC6A3Q2NJDZF}OW+$wF*HaphNW0+);3!|IZ%Y*R@rJV4=J*P^ z(I9aYSacOAx9!x!OAPO^<>oOJf1|$as%yscIe}`_I4DeD1te^Isa7EnUA02?x0TbF zs+-=OG>l}t+~(@%Ey}u z2O##+EQ9*F+8~Pd6I7k+jGZp01VwK^E$oMlax7#Mxclv393er40vJ^K57WJQuN>n?3!@PW3Lw-p4Q)P^ zL)itbZ}h80r`@+eSp{MRwZWWleJGs8yn3{=^iU~1nm5dZ(G>j7@ggD(NkrD&` z!z+jC|J;)k7EqZ;)A16XnmtYkx2SBv5hUB_8ZlyytK&cy>XX&tch zX&^)u37C-d2xdXD9C+ko#p{aN8M4bN9&Wvdk}DS*p7+TOgBi|eUIni)-m`&{BMqu$ zw4a7h6)iz&7OS3~rv)5+Qf!1w)0e_r;UiCr#JG3A=}yxKQGMAT4+D;foP$XqQ{xpDf?`-Eag-RTSjBBL01`ZE_RLwo5H&1~z zCMY2JK8}dufLC9p&>8f0mr%sLXPf?6jvYlpEcPJT*mTeosT%)!oB$(Pz$WSqB8&Lx1%-yi7;aTIk|Lh8sOPK_Q zZv~jhQdyHj7ukf0OlclX`!JWm3!Y}^r-u_7f0#=VVlR$CEuO{hQ+bF)Vd7qJQ)ii_ z%!~&~qmoBrM4@?o>GmL>_<3q;8>ddf_T51tln=WKN-8-xUZ=c{`t6(9rXVWbY=+Kh z;o08Vsiul~*$iqTx*6!U;9zoLSKqr- zVlGiT$7*D(JHauFsmlx3XDuObu*`@#27A=>WN@K5>cBByN_XBn5$j0Sn6Sj`cC`ra zk<=6Vy~vWBT^02B&vuebC9c0kAs7J_0v#9Gy)8C{EdfnYLy_v{_Ftxy(zGS})>?f#ONqVDzq)Mildg0d5L@AF&D~AG0rEvIZ7V0=E16TmRwmFH@rA)mLdi1*ICCzKUSjoyK0yYqC_KM}mmQ)B~ zc1N}IBWFi?y>4~+vHGjwlTN;_QE2q6;T>2Xh5dK;T4@qk zRaCFU%EbXyO!gn-_m@L%X2JRCqa{{MMuI^t9!Bi1vv#4ce4=^tCjnVO{MpnrNS+f+ z0P@X8y>?15tvCxbAIu?BiBa%B4WJ|#e%7Vy`Vt|#Ai`;+7kb?VRsYCGWTI~gdpcM{ ztPer+(@ORTRqZRyJaut31}O;P;sFW<Jcm4aYl7pjFKz$!+b`z2&y zekqJm4cYmLtg?|UfeGv0V3BiQ`^9jXM zJ2T9d*5Yd{`9KBUbuUwRplWIB#LD{wgMbX}8xB((X>9^K?Zjqq77 z2iJ}h7cbM%m$?tte#{-bluN4pd22x~{u(7a#DLH0-+*35pj+%$5Z*E{Hk!QYwx9ObH1#%^ot0o*K;pDJmg)XKLxma4@ySU3KJ?f-YvR2YBA4taEq08 zQ)vPcK#8mL0HN&aNFm|=-G6+cfV=3`envS-r_Cl}&Bin-w0K0hhk;`(#g-kabo`Sg z@e^mbfcq{L3yAreD>Q-nw{T_p6#{vOq_?emKRkEQ)JxbV^dD0M05bhNa!wF&s18DK zy$uAQC6~O{XMx=xlutD*xR(dVU|tm7p@cPu7f#rxXkej6w-7ge@h2jl*0P ztp7P^{(Qnk1b`vS`FK}j&Uq4nDhP%gy>8`pUgv;I1#)s_gSpRzAuRw5xnnCjMtRO{ z-OGs#ccSt8i)3!Bjsa4!Fv*tNFeK_-mi&FogRllO`2;|s^EwH-E{;@m;boP}%G>Js zK4GbiMaffn2M(S7JmNol{QCjAmC(NMbJ;AyODaqfluFW4?OWvO+jP^e`!lEKKC2+I z+YLMCqUKAN0dNxhit(0OnG%lA47u@+B@t->&WfkUNv`X5{Po+4^dIQlu5FP6&%eLr6)HO+fJE=+G5nIn{2Pxogx<}{N`T}4zw-ao zLl#W#Pm@HwK&4uqN|1v?g7tf3re#mAcvkCmikCS13q;8klTX zTVi%-*Rg6Hfk5W*Bosrd<7D;3yZyj#5fT6wrxkr?&NK-F3ThRS~ zL}@Vky#YGGu?!+$*2g-RD4o{@kte2;+cC_`g`o5#{Z9sSAp0N;s*U~=)&rDUau0T) z;{KZc>5u;RNQdh9^J-2VziD}3P0cx|Lxf}?hrxxV$uktm0)nch3gG%SK%5}}qcXEIGLq3Hqi|8lR;X~9k&#h|xXRARCS>pI zQ1|)j`+0xf4d3IwkK_L5KJMf9$NPBK5wGiYJ?D8o&d1|%mg-L#j-Fqq%LiQXL=CW3 z>1*?SHlU**m(#7(AR6L8rY%X=FYld!Dp&s#)A;CF2h|^`0cYjZS@@zf-OCWZ(8Mf1 z_y6(TWeae?qp`8BjZY$P2!1C)q1|yYapgc@!Jx6_d%qo3+KYJ1#`cFQJQrCum0}rQ$laKt__jWuNVC;L{1Yc+ zYs%`(n%0|MNduaeHS``OMM6ZM#BSwa5+Wd>-XuBxkfX?244>_-_I3Sqr<8HI~)&Jv*rZ{W#xK z-p7qK^*=TOTdAlJ*AugavPr?$rnXgwAG>Nv(*)EyaO6KPU^XHA@YNB-x)Em7Z&@bM zvq4Ld&SA5QP}U18@rjW4-&t1u-1q)faGqYC*iSa^<}gt8MZR#L5}+>ORYpGC;>`VloA zI)P7xsum9aU|@^}I}!mu%3%-lCX+d=QUGb8d%;#wm3S6GxjGUZA=Q{}gd z7j2x0blSGc_9G<3K7X2E13+>ZD|^w1#AzL1uZPO3D=N1=%02cCxV+}kq$BTOFcKvh zvug+|3C|(s8qP@1g`q^)o47vDEHoXjQD#9NtO!AtF@VA(4Y~nQl0FG4iV?8m2=B7Z ztmVzlp_27nU_x@gC7{pNQJi>#vnaDLw2rqj?>aj2A%xY>kg${P*ty#;VdM@4qp0Yt z4-^BkEfy@qe~meFyONjVGj+|$4@$``w{1V^t}NFvMBXsi!{7qm`J5^BF;EAzsmN?lR!gWUgUUd zE4lAW-*~y-KQvtI=-8r7B`Z!8gdgu38Ug3z4gNT7$XG6^r%)1IJl9)z?XzbDFHp+? zQvQLF1}ZL|{~f~a-y=T7H-{m_wy-&RWhb!@OETI>lX@q&1P_%?d6XjVBVqGPgq3Tr z=Jn9@qC{)_6WCmxkAPhMjcAh&ta&pe6^R{FS5|g=$ns+mz~ksXsYe|eX!$V zpU|8#kd0Mg#=Sl_@&z(ueXs1)UBMeor`Yim!7S*oI&^OTN*9+-K+@HG#Uii(_OuU^ z!TGKcfI6uTNMyAWzQB4vtBKhfCp0AL+}u{tH?EYJkj*U;N}@HAY*Xv+gGRLn6p9cy zRz7A1C#=ca(_U_l6Zs*2!!g}&OEthH_|nQoK-G~hrdgDpCUtteb%KpuN(}8<@vrA4 z#MR9Qii2y4blH_yLWR;w`VKz_ah3pUmQ}5|QZ#~;_Ilnmd&qO!T$)+Aj?N%Hm&)Q9 zv@5O})ABe}0^3J=^}+YRLnL=BhdBKR5BFTl`iQ-2hZSjM5RiK=woM;%1Z$N&u>jZU z{RvWzee5Kb-?QNu;@|#Q@Z^ZRFzR7y2FZyuBkukl+L{DZ?z>wkoYnRFiu)cYl^&+f*)prhutiucs}pGF){fx7viwbb zRx=V)b^&OMvaNuE>lr~`E45wDc*}=$)&-9p?5Fyg)|(Y3uS-ThMFjy46*#)n(*IlR zk1k=;UQx^yU@MLM!KKZM8XG*C-^Ht8!5DZH<^K^&VG$w7n~2pomU9l%CLnhvYP`3s zx<_^5kvW!8c?cVG>`RK#!`qm7lpRlX^Fiz0?*or+&!qFD$34yWf=w$lCzm`Ha{K;O zf!r5uG8=)yORz*qkS?XAK(q=Q8ZXqCN_HH`jVdcEy~TrjfAad4qJU#zr--)1J7Jv~ z)~sPHRqZtpUGbxaboA?(?B|Z456|)y3$BOxvVU$Y7u7ONhzgevG=qprK`YEic~Z1L z-kqZSxk0mEM&*`j){D{$y3fAx_k$p@#Tm3qmbBCn7H{(?GqBJF$A?pX9x+E@B54G|s=Tw^$d9cDR!zz&mNkI&ysfwMy5>vQKf(4!`JJ8mTA9q#TI0i*B*1 zRA9F+(JvhC{oXq{a6e^0;*3J@Z3FM*ic--G#v_YIjNE5G3FJLdlV~~I<%c>OW2|bC z*P*uk@Kh^`#+q?u(M60bi;HiKBjp6exKZOPwQlRm>)x7*xJ5#Jx4=k%@w(YYay5TT zsca789qH`9K;EzWOX5}qHZLb!LD1+VHHdJpJXAHc+2MC3> zVtmUKRe!{l@|ei$sNFFMvT>tKi|Wyjs;n6HUT{00J|HpS%kliFY{b1Ug_s#dV60BD z%~@OluhAnRVP6x>f(POs?2axx(6oisBfoRJ$ec_JPZO`hZe8w5vHrZg?!AjM47CbD z(M{v)z*nFhT*6b%S~k2am}1V#;PzOuNNAulKxQOv1;fap{n2ASF12=N$W>G4#MxrQ zN>(&as>oYL{ksDNMJ9aij_H*Hx9`{oR`mv6GtomOu1|gB@W_OsLJLvb@6fQKF$Fg9 zXL-pdE1~+Sz`j>&zQ#7>sSsX4h?38ITxwoI(4=PDU6S;deE$_;=B za|Bc}5!vPeKD^Cz<(KlJWkCc*=-vKUhCV{|Spd(lA>t?UZfPOq4jD1xboRRUz)DAf zka)xc;tcT(Q$J?XH+c~8pc(vW5yQWw-ng<(hQeXedF9Lvq7Xu@6-P7y&0RDDdK|({ zIzHQ*8kn*kLdW>SBtKkpMY?U3w`-QH@d_b}5n7$;;&Xbqd-dG)^?G6;7vg#$ozr&p ztC*{dt&p6KY9Z*Rp|(bey_~zV!L+2%<`|7p$I>-~7Fhi{(O-SybM|G@}TX*YcPx_c$U#Q_7ok(IAAwE(kHvEwn=L zR}>AKhJb`VM6CyHm<$udn$4aRpKQ)E28cHw0+pceyW58rG(IFbm6QkxJAbbBQZ-zl zvHwX*{1=M~MIMpKi=hx8uvMf_FOF`k+eM|g6U5;bKzidi_}F>2nYa42{Z{7w1os1Z zzXOa|bTz(&;k7#biQ2-Q*-+MX&0k;dzaL_BDMf{^v%Mf)O~Oh0^We#-(8#@@D#z0) z`gjso3A=RjKhdNN?5(M%uvunLe);>Q`Jaci#SqxBU@>$e=1IPgu*$Z~Iuq>mImF^2 zNDv6p1-~4mM&|O0(w5HZ$4k6K)%aG2+e~`D|o~(F^5WwbK z7P5BV|9wPtuv7-oExPR`~Cq!f6498>_QjXZtOw`_CIBr~|rMcHA`bw`KT0 zZ&B^Vel&x?cKMw1EFP>myz&Wnx%+h+K%c3p@bYK2Of=F)~He`@cqBcr4pBzrcX) zn$P4JDtOfJwa2!8^l+AacV69N-?YC`)FK!3={pDOIM@zRts~e;l6Q)^Z%iFo_L>?+O`yrz zHOw~bHK%=vKt;VJ_w4`t=Ks49!m0iRygD7hN6;8AsQ=f1+p7J`Dj+D4AceJ^k*!j3 z9|aI!*zCZ46>X|NvjGuB?7Uu>R0H!Y;;Zp(WARFuX8DERPcbwN4RB2yf$w)1u}+Z& zadr)uJ5c>ZRlUJt)PAJa-EECq7&ekH2+IQrXbjnW0BcgI@IqK|8^GMEDD?sB$0e-T)3nVgma5q^2koDb$mdyC0%}*dNr?~P0 z?2ShN<>H%ZDM4%^YF_>W&Y~;-LS~DG(^zOtZ+xur1~yV;&jvtn-2CcVNV$J=2w>Jn zG}NagSN(J*f4rIM$k38TG@ZwzG<3bT5e5tt;kjR5(1P!kSS^V-gXRNB6oM!pP{bed zfO&a)4TvtR{+k0((nd*NfkL?ErC1=l2|7wTje(mFi8_D58N=&uXm&}d{_z4>d%BDS z9*F;^66=$Ep-u<@5H}eX>9NavD`lvJ_%_>TFfFF6cG3uJ^HN=sl2mYZJ zMn~?G%SBm(0fg$Qm~Z|2J$BTlA8=6fjSv!gDk%8gIzHj=;z3RWgRC7u^VoCcl? z!W1V-nPtV9;Jt#13nO4Eg_wYP7i0yt2Np=K+L%|>=F${(v@OjF-<us{TiGXMqu{uZl8_QP>kzCAn`~mK<`7t5H98BCcMSLfHFiuJ^&saBjCBG zdT#L}yQ7eY;IfwT;-rF-;Y}#Th9Dps3Cl@oisL$_xG|{4Ug>=7+Ycs>qY|#brvj90 zlRelXP$kfEtNuH1MW<7*wLUQ$bnhlbstl!IDo~3UpU8r*#htR%cxI0tb_xTlen3_! zu0+s@99xp#R#hx}e=H0?<`j$$diSaf`fBAcpx8{Wwg8z3K0qeT=C{7+|Kpa)HP@dc zs>(D+t5>Znosn+1VZi{6ydc1Tc}~J!8v)EDtPv=Gh{^M1MueT{Cst|j-x}1<`^rWc zPk;(L@*wLRVf#x=H$J=X_Ik76`b|DU3KHSD>p&$X0@DwN52w5UQ?&S8x4mlLa(0}m z%M3*VbfyAx`bVH5K!j9ybyCh+wZraaJ&=j`SS-LqI~ePYmfr-dup7#Pi;`z%L$)>346f|{3Q5&!b3HclIBE*z8Dg= zAtiIgGzOdsoqo0loG|tJh#5+Occ^m?_;Hzq@}$$*N6j5h?SqhlRX2zS_xQzkHP++W z&s_vJQz@lg^N2_aNyT_u)qY}@`H#U{g~LyBEtTs2{V-q7P2TRvthYei7TZ}#{y~D2 z3R2o1NWwP^?zK)72sQ}}jqc-2bf8L4u**`SEzu-kJv|L99GY6ap`05zs2QrMH?Ta} zjUN~qW@`N!e!yt=1u9O9rdap5SALmbOl6?9-70~45OrnJL0JQYw zw&cg4am*#_du9iyl>;TaN?PT&`AHZh9dhh=gDntej1h1$evSaSm&$6ep6GJmIcFUDKOBWh`o-O@qA8T7tigCT*0|-14vC{@K(g_H3F*x zAjw7Cn0-^JS}l4Ij`SlH7u|9`2oPYp9B}e~gg`I6Rb{#BoCTU~m z$JbtvDF*KX1UoYSsJGVCn@uVY+F zh*`3DO)l8x@U)c0%y-941`45Q(?UUpmRb7LHEf0}*nx@-G{q-aYjv}2rNwSMDk~wp ziw)*5QFD8*Ul>up&VK*6c6Pc>bje6CV=z#7rGrD0xPleZ%^q#JYhP0BqLaiATCJT# z@DqDaMuW3ylf@(* z(z={=*I0^R-zl_2>d#F1L%~m)k{#O(j&KLqj|8EE zGU1un`3nAd-!S4y9PZS0u1-2#bTn%@p&`|WPvSNIFs@sGLt7A)?H(5s5n;#9`zFr8 zFIwN=eAwYgsCN2yxh=S4G$XVuvPp}FzFBv%c?_{<@4qX@wlqlc=3_sZxBKuuh-1XC z2HzD`V6HkqGS1(PjW~9jgQ=l4J0`25!M7x{k-ofPouQ-j1L0drH&)S|sL*0pOd`4P zqgaZEjQC5nrea$pBSt01!WpR^$qwfL-+3}(^1j-eodNrbg>ri)j}J`t(cjV<3@3^j zrFd7d5no!;r>|eE)cP(F?K}5_$*qZUIBUX?=tgFG(~zdbUmzuMC-4u0eOzC?=_LHP zIpP$YX(#X|mSxM;DVr5Nx1_b6l~z-9yn0D)qIERl{#ZMqGodzNSKO7b+m0rTwL92! zbNPI526~<^JJEjZs<~i3a40p>IJa8YZz0B8inW81Kv8O`Ay>Xcf6UPCa>d+a;@2c% z1*Inll$RCx1NNYcpLBq9RugZKZO;8fMeXL;-CNbKt?(lP)w+TcQKdSXI8FAKm>F58 z=Wm5|7iNs|Si78oMsJaG)fi~_h1uLEGw|*wp807IW;G5G399fTU5tA6gkk0!M}OOc)6u}p;;DF?>AbRL<65@0 z4E6P<);eJ|&WG0{>M1TPoDJ2q1J3_Vrppb^`gl?S;&@U@Yyk;SZsvCv*g8kepp2J! zfn!Py6Uq~uYyO~xXwlU9ErEr;td3Q*QP~C&ej%p%!OiI`TcmG5l5zyaG=OXZK7k{} z19#bnzk?5YolIw`F^|H)i4_R+NFfl_crAlpYpgf6klxF9FdzEcrr$e#QtIecZtG-u zU%XV77xZ{wz%lu*Y=G?4YFlZ7j{+|hQ31m9Lf``EEu2xmPsCAd`&_;k6r*veIlbf4 zGH51twh@l5;HI!wAoU12+NST8!&54*t)BGcOe|V5 zcLGOx<>jy6+>e*!aJS>(t!m9fP_AZ-%dj(H&_VEy$e2sGrNJ6wb?##0fu12V310D1wx5hILWp<)BbYu;}J)MO2zGBM0fE3nG zUVCigk@Nl3WYR5);E(MmZETIb9uaq9)zXfI$;^7M&(T+O#Fot?clzq`X3vW&RZqKL zvpuq8E<%(de!(&`NIR3#@YDp3@jv7vFU!&$xwZRi5og#l25z-|SAff-}VB{$I*|QQQq!4IE_}I-%@;Sb+rnYl< zbTfr6&%iN_!53+kTTa-;o4WM`FB(6tF|2{duTSZjQK($9ZoGcBA|@+OSL%RGD0yYq z0Cj1fpJs1}S~8Dk&OrVscx*+umFa(bz4*sALrxYawfkg`)kv~h=oKX_SfOn4H^Uwhlg zzScdg@Q<;}mD%ZFPflyO+xSO>1b;aZv2s`yt>X$DPcLkHsw-cXn+6xx~ z3&$ha3Pp@52dV;Et<->j9`UV)LB+xshp%s*+4BWxj!yLi^xJi&55d*C1P4!@*%QRi z&LBe~w6$fg;gO)i_A6q>(vHo8Z(rWW)C!~Dlj{F`41&{TB+WGo-O()_VLRl9y5@IkAR;g zIj~vCfazgBOtJKI7drCs}IzS8lYFuWOooV`|L4lMF;ka-rv!B!yKb5 zKRX|e>PbGDm4+iW^;O^F6<6@q5s*s&DdvG@`pTWZU-CBI z*t6T{zD=)Br>yswel+J{I;=!|3;7;TB@T~7P|>kV8*zIfXbJqF7`BvE*vsEkSe}>; zi;288Xz@py`9HblOTgZurgu{ISQpis+<>RbKXH$|^!I3Jr+k1n`rp5(B5rv(rT?2q zB=jB4WewPV@%NHN{lro0HjGy^!Of}j`j---_LmAi1J1b*?t1)hZMcep?L7&*ZbabSq8b<5U6Y+@CkA@)PU5D5{?ty>+AA}RiR#hK#bzWc3+I+Y?FEmlh+)|ss{ICt?)`b+l%Un2fGMHMTku-*L6_3?@U z(vU(xG!?G6&SfP3LA044U9bH0E6BWPYvBpVesP14h=|d#NXHP2QI!xsu-cOV6)yi2 zI9UPh!knZFIq?utY<*eR3{j)+?^W0T96TxM|HHFHGFwGO1ZN9EdXlYzPbL#Q&J3X- zBFsv}-*NO(90cTJV@SRW)bm_~QWt^#4YVyf z5o37lpiQ7995Vhe$3!)dX47VOw!b|RLs|V1dsz-)e=#dwBFDI=O}e0e>^TB$#7F{z z7^*(4y$QP98c>uRiFF6lT!Um%I^mSINyt*dqa9EgA7S#T5ZzbJ_Q`mNi9#=L|1XC% z4fawBQ0zhIsz2ft$BOxhrMZ8)l!28MaDS?XQ7bx{B+?`%@u{v&=YRi}ijME@QjS0Z za2WOEr$Oz518K7J2(km%$ciDZ`5N6q8B{898=G?klUFE$cZKho?qn`q224t z78NNrgAsG!?eJuT4mf565@J|cO%yB;$G^m#*Jq%%v#l%wm3t7VS7PQD|7$$*+a4}@ zt_b^f2d(`Wkt&bVMy`DWB$OQ1d81*Y=|2Bnl=RK1@?U_Iap zu9vIZ++oe%gQ^Zs5jYN7gFfUCF99WVR#r#5%PzrPPeL#7Ek$Uri~gt$Cpv+^F7O&E$|d8%6Mxu#F7o0Nx)xh-cr~#6RP`g&Q)j4~ z2O+%DCRpjqVmY|IWh3^)H{xv5?SEZ3 z3BCl3Nd5xs?8unD;-~Wz-z7Z9=u{z;2i!G7cU)LRYut5Sns!!uzp*GeKwbb zKT0MZb)VkpY*cySoBGd4{=0OG+|eMgkrWOnu)sxtc%2L*p9Cv61YRutL-LEFw~&iQ z_i^jnBE)8rcBGsD!jeSc567d9mb)GakoWx-2sJcn@J!s}B2z?rQ(=2e<@uP8D@%d4 z(e!BgE@IjZBwbOBZ2bQv-W5bt@2Z-`eNYNKyl>e5hwn()pD5%1%n$Y=nuhsnylN>Z zVwK?*F)yvh5dY44{O2ooRw%+vL9)Br@_5bfUa9{W?-DQ&3H<5@_8o5m+uyPBa<4)% zr_lmflyx8I87pcKrajzlq5!4~nL*PULJ-bcSzOfVOqLR3I~ zs(pjy!>u*_m4tbOH19Ew#99FVjjbSi9r0~Olyd?lLS1t&eE(QneZk19Io^5yCZ~9x zr!e?C+s7e{Xt4aIK#t8CPQWm}I0JqA9pj}Y>9O$T3;9S*V8j=XO1=VSBM5YiV!<3u zt)9>nvR?kjx9+MM@a5K?YCZA|ipdscut3O#s!V)BIuYqW4wQIQb_<0{D+oPP$0Le* zci*p!Mi4R*1>Ls=-ZlwRHbQDy=K1SLwMlM1{reUUF>D4? zW`EUC1VsCJ2oFdE)t7;jD02<`XK-|Nd|MOX_EhM)XZB-vLnvn!)-*X%_dpcxH3*Nr zhu^c#)b+!OTEtF#u#~2hQ`h3hB=G*dwSjVh6(H z9+uN2n0+DjeobHzoqF-bPh2Rl(CpFHKs) z>9o~|h<;2#GGf2c1G0r0#I~FhI&B~x_(AGIZ^U0i6$ed$soe5& zSOM8>sOL&r!vd@n?zoqfcwJy<@zfl9z6u(Q3h)EX-fVMe1l`ZA0FLA?{zME!M}Yvg z;0)_eH5Oi83h`VT0e@=DezsS}L(s?+56sV+VZvlu^u6bz{y4j@?m+g$=-=XgN7Wnf z{W@*S{}yPz13+g-^4creueldH^i*jEaCb5QSoC`J^+wK2J#<8jrAabhqWfU?vLecI z#EIdVaLyu3PeimcB0T;ulMg)5V+SwW4x*eyG@>Z@hY`m1!^Y_ipsc;)6;?`yYK>6v zSteGqe&BDi9(Yo#SbqiAuM1r`g52OI^_HRgCFpn0z_H`JRNs6H}5 zYVqD`or{z`&D#;g5BF-7d&zkV;)I-`V09Rkx9q29^yB-k#W=Wt;$J0EurfTJO4-lx z#S&|qc{b(DId>?u;fRF-xOj)?tk0)iVrckqE#5-lmdVK<;7~tmHw=}Q%{bDc(EyPj z4$ugsKn*ifuC|M1corbAc0O4Fq$(CY?5 zK~fCZxS#nGK|iePQzHyT(9M#UjAP z;JrvlcQB(9U5K}6kuy}7B9-Ygm+b5~PHHHhrdMjXubMSNh@n$bt3G=d#k=%eG)!(* z^arC`<}!U&IpGMMWTGQN2oH-08`J1=;mIH4JREJ5=7;3+B!$9Fk}bRJAxu=t3c(SQ z>2QSID8P%flf#pn_&63vL`GyMvv7w@7HhL07rY{R^j8bTpLe371wPZ)Ub@`nl1jJ}KlZjci||C(u@s9Z z0#3a7^$hm!syX{#@wAp1kMm?C>8^g96IRJ;Yk$58bv%chhsQKHmdw8wKpydQs*vYMnMh+xZ1^gCSdr&{jS`#A8oO0}@|b3U@P;p7y0y`+>gaLiI2vm~VO zMNGddO-+$^4Ewb~a{Yl>8p$cBwat{n%_zeUO$2%)ag%U5n3h5(o-rS9o_CDddiMxS zXi>ds6*0O3ufV#$&g`9u5Q^)oauuST$U|qn_lY*Sr(bdIkC+7x#{5@>_+r+iI0x2#+|@KeW@Q-9DdP}~3e)-^M!xLScK-wF9=B0B!^+Rt>uvP4R> ztZ2~m3aZTRs3g^J-wUbqi<8}tC7Vt(JYWmjVHm%f)GU#WREB}Xv}Ws#R>)EsZ%G&aB-HR5fH zwJr1O;^*22_fpvCfWv^w%Q6PHmo5i_d^n0YD4zE5Y36CM$ymO>znO6L8k|F|{yACQ zfpP;5uhv!|nFQ#j^!*g%D1r zbDM~km0aLdqo#8kG;0{J8;E~ocPjXrYc3OHeg$edD1{pStX0AxNk}xSPkN3s%$gb6 zWg-zs9V6FOHSKc}Z0zQM=$Lyhq=X*!Tm(De%vF%fT^l7mEbFnem@Hp&-sz~>AH_lK z6cK=mFdrGnx2dwyuI8qZCnu5#7p)*P*$mAi&XnJ^mmdW@axohDA+HgqJZ@Ym0N!XW zciC5Nh&Zev?N)D?-94^+jE~@aP|JxYH-Ixg03?{8k%x#|6cV%%pQd8(2Ujt}(WoD! zp9wb!6H3vi?R+K>dkOt(w)E`O3S0H2qM4Q))f~bWHdZe#zcH7}nvDAqabEx`8F6Fb ziRUTi^zBe91$l6VM0R0Dvc)Gfp4EgeMLT*f49Ex$gP+-G{)Mb5q*4+~X(>9l4ryT6 zi$mlrOfPc9H6#UB|C;hFiYeg<_2ntvZVYTXg_cucO&bHUFc~lhxT(f9*$oYr2$@k`f-z z{Xhz(7sqs;-$`K$VB=Q!EW{Sjjw zjn+Fu+7a4yL*{pc6@9$zt8RSfoeg5{wmiHfV+Rl(o2}3F&X*4w_4Por@fyUR4-x7a z^$BdK{C?!7JjTxffZRsvnPM5z=E-!mOQ^B9*=ROoI@4si^Uus#Q62g5dkM4uX0ZSM zsWTTY@j(`E&)=!x|ASkmoPdoYpyT#$L#KaV1XPU>==UoxM(joREjk1E{t3IhJQLh_dO9Jy7j)y!2d?q2 zLWY?Cf{x*f+T4R-SMN00tBF^N6XM~z-c~WT*JA~c;>iC$CNo8SaN#ED{3aklb~e`s zsQ+FLY=O`$QlI}0wH@^>8>YCurr-q3tp2Eui^g7qMUBisK}bFNk3#0pWrKPOb8v!% z8uxsU)udeji}e3%A9^G6-Dw%l--ZdSa-buo-Xi`&6`l+M(k&=yaVr>a9;oM^SQ?y^ z|J|_2szX;lRS7f7kIClN?#BZvsm&T$9yCEq1-3WAcD$sc(b6r$`i$^Tuns{d}FFI<9})7h~!7^R|ZC8e~vELnSxDuA6l6{IyqxcFI9~ z1_lNtq!jjbywU#Z^#KBcKCSAMoZTFIclCpI#om^KLce}T>?JhfE(4elLCc9X1P$5s z0m#1wiWmJp$%v|dqAC8!b;n8(sT4&FwO#+yI*j!)DD3M!)S%b^wKr%nK9~}>4xe9!tKRnK0Qps zPZ-6e711SvV2x%>(Q-*w>^|jOLi4e|JA!y1QWigLV6V^c# z5?&7t%*>>Rt9$_R{&su+ftsDI6=l%7*EGe8jmfS`xX*Mdx-&Mmv8GC$X6`so^!n!G zdDm9YQ<~J16;HB8r$YR0CNFCfBr4sg|FAigSYM)7$1qFzdc`xK>OkOfrhj_ck)tn3 zUKIGR8Xs;}%%zEVy8T;W!2Luuc{^ZtCxXp(s!!}3V`EbsQx#B12Y|YH^MD6j(95dQ z3JE8u@e_A@w%EBT(p)YcaMF*T5qpApG5hrGR!@;! zfdHuh0i~SPQ_mkhTIA7B4l*K6->jqz)_bgW#V2y>iLRL%-Pv;&QqD&6Z0wj`o#8|? z^gm-|=pWy448K>!u|xV`KXAN!R~&cnfLIxUvL z|Ivy?bS7#iZUQH&;0-+=$2XrbuzeaibW%@YOQcEsf**gzOmyJ;$fZuhC*Rv6?fi~k z`$4GH=>0;mn23VK%HZlagFkVl>zm<+-P2Kv?0W1sHRx1?^_xlv(@K{Io4(7Z^Tfsv zkD23e!*`E{O1vUFP49ovCfu{`C}}QM=my{5*m< zngK)iZr8D$a}%oevOnl2<;Q$muALb>#Lv#KpYbi7!k73^(D}P5ly}HNVbp2hphDbq zp#iV@vCtpDtzf^QZd|FBXa4QW_8E8jVdF|YAKLhbj~4^*>sHm1O^R;kC+!QXPKuFP z6C=3B-#9x!N6voAj5hlE^v>N?y(u{@g`LOjH!`j(y+NJA*`MS>jV+RI$A0IeE>wuF z3`ZNKv9jZScdW7`TH^2=ZOC@`Y7xi!X6Jsh11ef%Tx|Ef=3-hHy=7I)_G)bJ=KiMW z(}n)1YeK4}*Yr~Q@I^DYV`M!9H$V2BRq6ix_RbjUd}U;yVOf?+*dUEB#buE<537hY zURg4(CI^Tpc?O8#sa)o=<9u|;c^1~Pf+`jR$8xiMwU2k~AGaw;}Cv}-a;b4fl2UY_f#ru+OChvVN~To>IMYP>ADax-tOz4KF(mHmiIhEWgE?`!6t zP#nDu*uK4x?W;Yb`XhK3wsP*(PF?u*lNAMsizd_pi>F59kq|5zB5ea6)f$&yf95tG zJsyHg*Nd_Kq?(`}-qw@no3@dr`85jo&v}LpMS3G_Du3Dc>oM`qmBo7=5`>2l!4`Xl z@?H?ihbo*Q)Bbfs{O8N1JcLl5_y2t8|C8Z8`#2&E(X4>KH3^6$ET+1$FFxii?f-Ml zacc`e5Dk07?ncsJg(ta1eK-+xU?*&h5y<}d=Ekdk*42NfBP9kV!EV~dV5E}&@@r`* z@rap$7Tv5alv=;^5ZT|fpBYV<@1cm&?LAr}aJTWod>bs6z5Hu4aHssoGmp~Kf3Ia^ zgmf+DmA|+bLkTMdPxY1?U3jtAW3%zgi|iaP8l*%c;WeSLLxIX%8d$<0CbMCYSD=n2 z45MJMzA*FGV5KN-LEhJJ-7fM3A-_=(_esFHPUMU{-Qx#w#M0x17Q2Jxd%Z$5xB=?- z?sqHw`xkHHF+)Q1so?t_zIV_*r2$4iYwos;$zJ;|0@D3iL;qKMrQX_BFwgoP)l7RR zHd7RFkfFKfRQ)aagn7q`!f5i!T_wBt-$n4xUWOO4fB}*HG@Se6VhXIc)a%2QNTwoT z`x5viAxJrefBO??fsmfNl0yycwhtbYAf-F_7Zt(5f-rYL%8*bKq%r(g4f0A5r5tE~ z6rlI?o9BWZUI)opOxnGpE1jX%Qv3b^M{UaKJ2haW-aAsOImTnnHvau2($Ew$tgg|} zyGi0dqnAt!w(@*E^PpXQmo+`ga>HR#G8dDIf?rBELJWHECRAI;0MxVj-}5a&o2uaI)o!vSGjNph%xD z9Az~2A7`OIRmCgFe#T9!pdrKZO0h%l%h!$3vzh_5K$M6{t0?)F6Kmz{@k_R)7^4`Q zGbyj1VoE?GbeRdUI;(g5TAP&h^g|SvRHeaTa>Os;<$OJ4inXnN>xGJGDC0oX*1>O3 zJR)#PD*;<%KE&y51iFs;W@b;AK9SGRh;RS0q7+0GeG=&!eYFC`zPt9q|7UmSO(5bk z6F$T)ZP&7Xr$B5pUhiJ3Jb!NEW2B$B&$Rj#;={CpB+#P5neDXOPn zbgw+2LIp0n$va=T(85bnRa?!xjn-9du)j+csy6F{0Eahm?9i0L?4AN`oxlPWd1Wnh z6h6}fM!d!YT4e@JOj;toC95k*+1L5YbX<%VO0K>QpnF6;6Wh896Uk`Z`oz@crhHX#Pkr9(&q*jk#) zi4yh(CL!HZcb3BMKhQoQc02sA#7ZmDyBwN4v!nCi{d!N|DCnEoqTZXANQ!tL?eg)b9XZlX7`Ihlj+B(z?$2aEsw#vO zTt}eD9mYahRxCvcZy~#j1*aZcnHE3 z)Qv^-2V@l;h9mr5@!}1HY8d_NE<(!uaDIn zZ2=MsyHmpb+kS*sJ%R92?{_nThuR`(EL>RF_X($F!qL_h{e~W~*zuL~S5-OQmBWjh za~n>X=)cyYINPRj7gsq9{Cv#F=?Te~tcCp14nx5a#Bbgl5j%f^`KxQRrlkCMN{{CN?g+BR0&z;fX1K&B9%En4F45qxsWjVLxXEU!a{u0(;j{{Z*p>5}~ z;bwuX`S{JwCs0zQ`&=Yd2iyv#CqP(o{)|3UPZ7+^?bk`0(14Sc(V~rJ-I+?Gx=Sqa z?OAi8l+X|%%2gsu6MNZw5Y!z-E{REzp%jigo69cx4xzRt`$phmjohyN`ePHPFe+1p z)ku}Sm+2RexqnCaeziRq+ucoNV<*Kl#B`=#c$^@HKWc(PvPvWIAw7DWACk(uB%Ih! z{?@{}QOe*XAv^Z!v2)Kv1&aayC2$(vUGS_0_cxk50jn&y0E)2jn@wBomw_khwUDXH zo3HCX%_3)lO|bAMiXsf~I(22tmzS)UH9br>UZt1~&B{*rV$!baTh|M7HZ?j|;2Nm5 z7V(?W(UzAk)f~1+qes(sXv^Sex_t13@FN2`14Cik-^-@D?ZSjTW6Z5w^mQ; zkfwc+YuJHNCO4mS=}E@#_|_;U$^~Klc<1;<+GGi*a8iy4j#)9MN(Fo&rXN1Z55zyg zhEHe}+x;pvEjPS%VP}p)ZTU_5_;w|Zz;#Ct=4-ohrA**P-a9DVas`+0+_+H7_W780 z+Gr%PIvz@1YI?hKV3<`<^!}{ZAW*)R-QEu$U`Un_0`9E)Cz`?8&rQTgVV3d28n zOy{)W=37m7l2p}%@@~qbflNDwmfma~@z~X?S;sr#ze?a8=9TXfMIsZBG}gbD0h#G-q9uKVQ|p2B;#sx0FcuM`>25;G{I z$G<{wZ#DjUPFz0ukHsImRfZqeURCW192B*^;)=PaCLExF$69kTJ%&n>V#zY$i;+V2 ztV1jt#`Y0vLRdaY#^12A-W#7R9DQ{j5gv7gpcvD~o?PEGSrl=MTDr$`JCm}~HJnHW zaVIeBRpownR3~dxH^|he^2A0aRp{0GJTKxg7Eek}8>)Jp<*r{fQ5tGGGA_nh!-7`~ z1zEx1TNTPeH%7c zFEdEkVKW^^aU=cHz;Ln;jxRSBIg{isKQB^uStot%0UL~h7z39{`Z}ogl%p7Hs zyw>>&>Y@JyWB~`5)XskXOee&`%!oQ#dFS>R&ZE3oih#>zGRX`j>@r>jmvAFG6g%PP zU>%8>Veoryec2^SE&Y>Zx}D#g1#6g|$aL7!9koYFn9TbcD$f}L>t#ktKr;YW(fvT* z5g&V==TBdT3S)~gtnJ}kkCVx+8&wvVzyHu`i!YQ^oxD3K_K;y$G&-XGW^&xZxnxu$ zn>x!;y`{R`I5yL+`)-#-2*lk&O`)9sQ!sy^w@9%6M4VL_ zy_oeGtqU|-{&nK@tsc_7Co#U3OgW-jafeds9VyG8T8ORMvAS{Y`|2I$ z=+tRB+zs%^Un5G&^x#X=8L8XwiH)XpO>r@aKbWv+PUiA9`p1{;@Gp$y+k-U8lQDk7 zE6hUc#W37VL~qON94qUuMO}^No2McE-aq3-Ez4OZKfATwxbaKcJ;jYqPh)15Abw^1 z3J?FlfG+oaHbOQC#gm?tY@M2PJ?3MUV6rY=qQsanItiTrut}a{;iIbTdJEF2H?7BH zQkgF%KM#GTJ(i?|Z=`YH#G{czA|2YS-czZZ*}CX6WADZ^dM$aG^)AN8oYOwPuePi$ zG?RPuq^SnuGp+S7N711s+Z5Erj|#rJ`}H-RsfF*mH=cRsOTEWeOthoeT8v_3gJ{69 z`e=Gr(NnQe{YQ?w42cUWRX=*mx;v%1ymJ|qy(}AT!eq>Fx(8V5%m-L5$hTIu^%!I= znR#=v6VRHS>wm_JS;4rt`r=hm^0ji*Z#A}WufDa%&-S7;OsjXX=nWGr=f1#r!eoTW zp-wVyLG1)XMBoFT7&<=R(Q|8zBMjSNJeZ}x>6c8Z@~S3|QM}kr!mM>5W7hNeyZT7u zE>(IU;#k}i10f;zW2!Zy`KM`*Yo|Om-}1J>%7kK`5edb zUj5F2SAN@`B{)71_S2);BL2I(S&q`(N77iafq?}1+NUMWl78BMa{Mu|a#eMlswK_0 zjI5GvpUo5umFWZq!2;sDfBJOF0&cg+`La(wXLsH|X1}^XIx(9Z$ZTdr)t&R<$c3|9 zQ?<4aus&M41YF-phUz4Iu*{7C$1$8{L1KZsn)bIBTud^1F~CuFB+;r-`S*+EAqmz) zICXQm+KFE^DqmENN89jV^abYbf7hLlR8RHIXIA6ns}6T1=}kLcZxo*<4^$!)(6p4PapLfeo(Dqjnf3HBC|4hLNs~{gW`KkNZ#L)62wVm;U%6F4f z<}w3d;Wy|}Ex0qXVS!xQTnfYF#G^WuT+)0d4{!Cn*%{VqD0O{Pya#^CI0{e`_Kft@ z%C64jf+*=7%cJj#oC5?)+#~KZf9=ypKIQg;0VCmhBZR-gmCKtw&6#EX8|tL_5Refp ze!sXHVYs?n&|YKDx?1`=Wn#29-rqn-a+h^u;^KWYVS#3zI?Wa$pJsl03^RypzfTWh z&m6YSi|fs8pXG~kmYV<1Crh)G5X+DzG5o?!_S(1g+zB~GatE^xC*AsEDjEEw<7sN9 z)+NRU_h&BtJMl=2hiznh%(66Ref4u?tN1nADlu1A(iV5&?xQ~#X#SoDzG9kBelOpS za&cTU1K`Yb6TWSvZO1h~ANW{p4RqllJZB6DI~nWpZK! zL829TU3UT55{tz^>gJuy!s{J|FqJN_!X{)jmgoU6mN{t8VcqcT$&HXU8VlDQg|j$z zrqn8?0`S5rm}%rp!+anR+7Ho&c%nWNwuSaX(O*_aV)GE_C{ftH|zOX6Cj=fPiUDz@LpU`OaMw zw@w)}$4gg%W6!<=e1-=fCh!}}>lav_GaZom6Ul7`o<5{Rszv?hgLcGE9&cZ?P^Qz;Ff0CqX0hV&dp z9C*o9$e8B&J2;!{C(qw%=@zG8hqM8-jO!`0TDtumNIJdsqeL2Y;G@ERF)Vq=_ykXpQygnB6h z#P*%R8cf}OC)@ylzX;ND7y|{F3aEiTU2wz;B1BxB#c4aVJgn0$WyE_8e;!DFP{3PNvvI_MkuJnu` zG03z0{0L}+N#U!z_8D=tA=1O*A`C7mVAN$l=rIJmjX|5=Rqc9w`f^pbLqxm&Swa3= z%1ntfVNAUCYCv+7K~=AKvNP*K+^%1sCwN&}54>BNXK_xgei@YpJ>nca`DXR>dKQH7-ra-+bLEv4@H;C}u-G20-Dn^r4u9;_+iB$7D1!g> znF*fGpGALGjsL43TL|EpW4!(iNT>YpmH2@)iR2vzukacc=PD=ue8b*5{}EM>`ByK4 zMQYgS8CAyBU(J4$R8rG&iDcm`XKi7eHj|M+beqUFPKmEnfc+;>>%;YSm`U=y{c}zJ z`>RVLY8s5>msI@ORioZrC^X@>6*Brfi=?h-M5EV@1uAc%G9ZFGmIn-@qoRy^tX|!* z^laSb{)xj-Jp9GAdXXb7pkSzoJa;1xd5GX(Vq_CG8B_Ylp!sj=QX>rgMV<}XkVUdg zLx5$C^Al|DoscccZ8=(UcWg74j63Dl;2W5?ufRUgGtkGo<@exIFnO@M&@xK}ZwCOh ztit7;jT4fIsU(${vYsA5{Z+NZyKeS_Q0CX zZ{83+4dR+$T5es;I6vdVt#Ar8T#?@_F2xlH9)SI=3O1ON-aM55p8vn!a{qC(3!Qnt z(2KbYWKRFFc%baqwM}(xN^L_oOq0)_Z+QH@FVFxhAXv%NtOp{U3AJSp)6-W%mrr-; zk)*4&>MNIRc$bODxw0qnQxiF)I+c%xw1%yQIMh1^+1BmU(Ku4<3#pwh{O3PDm01Cv^JP=WS`AgJI6->iY{JJy1A~#75B51f4DjS@J{5vK2nzkgK;0j| za51{?6f*$Wqz}79}0z zBJ2ezGt?f5X2o8s&f8d@iSWW@XbXP%<61U?YGF=D39zdT!z4mdK*;-Xv1~6>TyjPN#Z#D}y6TzZFV5=3@gY0Ro6OMc^J+vU(wF+F>eibQX1_BQrq z?cwG0sNK7n+%F^K*ECTSLJHT*Z@H|LDs+u+l_Do2N;3`p)sr3=LSg4p|yhn zrUU3s3ezqTR)bcw(9%fn4{!tBYfD+QAiQu>l^`N%GcfoVnOraG6~mHQGLOTZKFr-U z&mhh9dokT&(1g>0?JC>d`a)l4AKf1|kVK^01vA1**!26v)xwQSc4pKxO$-s7GE}W9 zmSlAj+i+X`?@+_tzE!0;aMKcSw?5rW{d0xXUfE*#j*~I|2KbPv-7Y3Ge#Q|e8as3j>sa*-ikTgo~mlKxzMk|$Mmp-DnZhptX zcPMBj`1}iVk?xzO5z?aT>DeEjD9p@3=b1LMGC3Bjwlk#>a2j=sp?I$BH@}BZ%(!NJ zL|RF6?iXoYPwt1N-vtG#_Zc5;V?_}L+`b$tdg0?ikf=jw3$sC{}}q1d-DYjKdiMALjCkog;ePW2brNEFR0-oy3JgkW!GQ}L3CCj>Exb5_0(NzB zTxR3%fsQX$t=8-i3obm6&4;KFHuF)RE$Od4!z&E?OH-s2* zX%LYoAtWCO6LD0hs=>Mx@G7;>YP^q^LqljNrb-PKKMcg*W~KMXBWqdphIlQ>+7OX%_LFPTDpEtr_VaVD3J!l=|EuFr*q7Ta$6r6}-id_^eitRNwsM%D8{MTTx%4y1((Z3`nKk%;QN<*}OqxB#Z-9k~Bp}~!hciNU>M>Ucg zjS7nMxWeufhLg2NS9+kiVfrJrf!|Px(|v=UKQ#w zh47$?2PtD{qFPBRip|6_nk*Y%D>*2#U8%boS0Fp5nZ6_s4IhP-?ViC)%A^0rF?VYa_fWEkdwci#Hz)^P@dXFm52)2vwztJ$MNWGqb zMG$p}I%PPT>=k5lh?G#D^2`xgh|w{O(JNN#Fz?p6V&zepv;V!L#(S*MIlb{>GTR3# z1;U>rxx~1JqHo03V8-X~oG)i9I^R%isQ7Q$j26B$3xD;wve|E5wd4+be5qckqF_a! zpRQPKAW~q={mfHvcs88w5@o{j+~b+~2UxwuAqHzq`V14U$NF<=^=F);TUU+C$Dfi5 znZ2<^Z+9IIAlSLG^6tsVgRj49aJITin)J<28Tu zJbRdXQw3+sJN@Qpa@NZ$Yh=P~a_{-wCcA)aT`Au9AcO`p{;MtakniHO-!re(#Sa#P z3Z(kxb$uSVv@Fqx(Q}831n<^Sw6sdV+7!-IkY5>g!J5b!-yeHFKFV8z{SZ#;Rc;kD z8kIm0Sb4Hk0!E)z05dSrj24($Zy>udpIk_s%>a8e8$k-zFEE)ez{tYA$kV^9E?@ zAB5Gbx#0Ru@34JAYiWYGqe*vgbQ7)OnUBlUH)DSeOq2)5O4)xSo!A$uNzgWTcO{l5 zzvHRZ*?7I)eHo!7lwGoXTAH`RR9=)zzslL`axO{KWv={rnR<(;{jfxbW#+@rBn@eQ z^}?n;`La^A&0IJ>#1<>2>YfC&4aYI?t$7nrxccI_wyeZ4A&aKa6PZAQF$TVQm>#)p z_UR}NVU@64PT~t?QK|Q|N~(E@&q^J`Bunz~CUlxfFAe$dW#7HX;bPj|Zeb8E@YKvb zEJKX&;hacecc~}h&V;$uF_$%PsXI-a774@Qnl*hx(26rkGKpRDu^kI zHy#m+RHcgN-nz|sPER*I&+Gq5%K{Y`!S1)L|F$!K{3}cZ6ryts+)A7L@YcZ(P1L;7 zI#4s**sl1V1A&yz|M5eAD<#4p4c*ZsFh9O8%$5tbfx$qRc^-33ULTwbsz77iHR;tc zJqV5=Rfy=ZG&iBQr;2ytAl&W=#Hp&e0K_QO@lv$w0b_|gSut##|77*KA#ltT%zW*< zZ+{=`$}_D3KGbRWAAVx&EigiuP=aC$Sf~Hg!uw<|e6{GxHAZY>5-{pD!2ihds91z3 z8!!TRu%_Kfuk`898sEQ__*G>29h>8t7YXEreXpDVCS0a|-jQ9_$XU}vOl#+BAH>5# zPQlR-8q4Jc%(`A8`E;=DwZbl_co@IG%Zh_I778S97N2>yuL=~X=j+DVPpHZ*cI5bq zG{lN=!FgzCr&(`TEbVSFkL(Be6C?@DUQf zK>%r~m4%U~V?Uu%;RNOqwJcaHc-AiiSI9f*tDNmaBR5hIpQMk=O(C-hJLoZNm3@h< zh?LVG!_WwKeJ3Res5o3bIloKyo`gY76&QHX_JbFCjTu7ygM^P|)UA&?;mZf1A*?Yl z(I^m9Q}wX?X9`-;9pJhL=Xeiu5_xL?zz^&KHHzVo@js;v^}gokS)m7KJh9>}$ZOOwTS4tjQn?`M_6U z--V`rfV&_m5D3px#3J@yO-1;Z5f~cXS;^m1G?!)X!>#^O3S}BV;oerfhwD4ZGsJsX zq$fBaqt<*y4e7&+Vd#7K;fc9ZBQwT#j_ClqV>TgVJZP9y@Q}TEbWL5%idNp4xjs;p zn!F*3M#L!wS?!Y^>ez#Ay4`OKzoV@$41eUW(HE+Lhr>*pT+A*$GofsTJHopwrK^q1 zCtiXQS;!QRXFRV2cZ!WT znv8!&z>dD-Ux4bDyU1`ic_>_VhH-4|VOA<_3#$MYl$A=sp7sUz+qznv?J6(FTawxr zU2?q6UKlZf;Rh>R?Vyfj1hbJG_ohN*qz}0R#~iVcOV6r)>GzL^Zx|5#aGFg2a*`XkI_G;Q2hz*_YwQJwcggwlz^qtdLex_4Zj{(iVL~)+vIl{ zfEYarKJmXog>>SY32AdgH#BjHyu^})W~1|2a;yXyT8pR779&%dYU@MlLGd?k$xrB2 zE-#dyWb^i`ynwT~V9VfJAgJc$vwFkf!{Tk?U_~7&+&Zag;iL}PIo5#sbKK23b3l2M z3StT%#)zbhv!>Qdqr^?c#rM3gmA)zx@5RdgJl&z|MQlxcO|q5{b2IM^<`A!bE=#S} znpe#9FhnYlAcvM>psNm=#_wa%np1jT(=OZ3v119|1g2*4`8Q0le(y?NlQ^U?;N$G# z9)^&~Ee$ybHj`-N;pEX%HSE1LtPL{^xu=ROnz_b?Ep)^MHVYIm0&@XD;082}0%&O&zi zJOyhES1h4P=did_lT7%b1Y3Fn3(f?K`SjQmO*GefHiW7ta)Ffk`JF0E=}m8#4w$;q zw+)hnx~r#A_-xJrk*k%5Q=bVm3Y7|k-Q(xc*=hDh z9lIJ2{49u2=~bw*8KAFO<4-~--g|7lK8`i z)(~@8*Y`0zmw8T{_^bocN58UWdd_vMG4AHd17PCijTHgL2V?~p>1r}HEc?&uIA4{= z@oIDQbkvElS$$!33U)-HL`GmTWxd#zu!@;3J$?D{_hp4ZRuHCD^6_C#iLk%rEe~dN z)6X=lim|HZJl-(JwA?t~T5yH%WCl0sh$SX!MuPR7HzF6>j3sEvG+({R-@Q?5UQh^I z(FO8ezl;6|+*-ZWM1dtE=Jz-`d0p(JNWk>tvz=5A4)Boqd0#VMoQXOdSe4+(+F;~y zvCunA^X7^MG?4A?5zkpuozrRf_s%;|ie$KfLtSSvAFWgzPyA)}Lg1bWqx^+X9qTy$ z_}LufKsYv)->*&k4x>naioA`zO~-)r%nuRy(@hT*iYt}pRc!+T+^>krGs_Fyh;Qd0 zFcZ-6#3%{S-k&~RO4Clgn5uX;x~S12>I;v^4fa&;*66x=_tsaLRjOt4M286YMeX-;5%ep`G-B5d0K!Q*{*FsjRgw~YPC zX}rzM%z9k+aRl#9Z6OjA5>tH{#(A24nOiDeadSM8UX&x@%3gcPIV#KLFU8a|0lq&R!#G2oN#+~MM_ zdG8`0zPne-dRVxrz>g@Ir^*X6X2x_vEzJq<{!why*)+kUFSe#=aq?-+s^Bm-H$#)n z<;azzmW_5q_lV4d)k^LXVk3pKe}3>98{CZy@B5gNE|f3iDig4+IGiJ_N#N_MuqiRf zOR$hv&0v!V+O)i75ywWk70h)`Uh+35ijJ*~FqdZ~Ji@1<+2BzSJCJs&(cxGK_G8_VDSX^3W!l5F+(v=-TS86O?d$5~zsb(VGz&AGNd4?| ze+3Ng_|@OC|HN@+c88H4aVSGcMR9FDZIZ|`uIw`50P_uz41yEjoL6I;IviWd;WEUP zZ0O*>a^@{dJ&a-#C`vQSJUL9Ca@}7+UgD-=n3R>D&t${&28X;Y)IL>*%+10Grq<$a zE_V7}OSozEXuR!^O|@^l#6_Z?C8^4zy+NCd!BfbDGbsdC9}q^qGT(DTFHn)V){PgyCom=T(qAD`=r615`6BD!1$uFCqu*B9KZ?puu)m<2HrzJz z+HD^T$$O~;{ZiXvLeWTWHB(DW-;gy?W}j1`0aa_O?>dO)x3?AlJAnW zYE9{ZN&#K0b+oLXFC%yH#FoQrB3Emyx6Am|t2cL3Q37n|oMG{p@!GY`dMW?E(JS3# z{M5%}C5T!4>!7T!ci6Y2(*MXw|2yOBgoQ|k$*q)Mw{Vl+7G$Qz07&SRb5LH|Fpxx8 zptTVUK{_KGXeXIFtZXv#6s4{i&{BM2-2$%3JqAp$4${@L-JkSTJ0`@-x)_ z^QnJ)xgijf)z{-6O|iBV+UQjk%wKogYU-Iz#&QlmkpD1gTPE7+7DnN;*)gk zd%y9}`+LTK_Ri>zFQxDy=gB}CHpO=xs03NKx9n-f@TuL2ap0%#$O;m{1iNDPCE*F(~27ee=S;EkWY#bejX`|PU7rQ4K$8UU691E(JIlmI6$ z04P!A-LKhqa4VS}MydyZ@&H&ubbj4%JLh>v&~gN#M7Len0xTzM5jKM;NO2Qa${oQI zxUgPa=w-KV#4O{$NYU+mZU_UV=;)b<77;seX``dY-(paA;%_Hd>z?P7(i?z&WQEwlEs!tj-{cyUZD8 zT>#JB$*0!k+&N`}J%z3$26YFGbT?dyG#z-v45agQ3N9h(7+_$eAnvDv%q;V0X)ib0 zFqwd$prC1x_ef5HLsy>G*O^*oDil0m+H%j{B8}@woh6vYht&(&3K6Se9BBAbtbAg8 z1a$6C-(L92kyRy#iOFNi5psQC{bD5bj`@786J#MeQiuvYV>Rc~{wkoO9gtMQHJ1OW z`C|A?tKb5=7i0Xs%47RvgeJLp&uS09exNSNc@-t8iBxh>+_C!EDDd{-j2RQv61z)- z%tfgIxDl~DkE9jo4o4+X$@9Ds;oBDN$|$Zo9$gXpb4SJ2c`| zAbMK2Ha;lqz?WuiO(aIdo{or7>mw{ksNDnBC1+0LIBD#V*P-!eFs5tP{!&>PU?RoQ zeh8>q6!)|^0)(zU+;Mx>&de@BMJRp%?#V}?K#bLA!-cWm7dYeU3JuFYwYk5zneRRE zbb*9Qf};x|G6(rm7xKTSUs1)syKxx4CVKB4_6 z5H3`RoM(QJgKkvXWxSnJGrbeIM6hywa+fLmVW0k6ni71*l%ugl2ujGUqC6RZlv1w? z>ZDo82`IEzNeoCXYqiLqsl@N6&J)zpPN#XAs~*c2UCG|BkwmF&N$N}Tnd>#ptvtWb zhgPA1^jM=w4g$J~r{gE*X~}WY!Oe?N|B3d9cSvI4k*#4XQ z@Zl3HdG;mYdgZRF9yzf3Ix=_LZ`yd|dO?L-n3eOIjv7T;P{>7plK?8-I@AJ^qhNrE zURA_mXGHOh9im;AZS zw+0#ID)=kCoWE6Z+MYQj%NScFem6+(6M6ZbE5}UzT7#%shjq*-u8ND;HfF;7T7y7R zo<>XN5Gkk5zhavCZXODG~6G*vdORMw^D^%qlSDinL}VR zOz(n$Q2)-6+KqqiLB;U_mk*STE;Th4jd1#zV^#3Agnd{i4(Vveu+oh#*V&D&?6130 zp3t96$o1kxD)-(iG%Pf^4$0qzZ3SLLI7u~8tfXbsQxvxzbhZt46ml($x!{O6XPJ&z4Mlt;Ig@C z#upevV}G@BMUY}htkM+m@0QXtLWs3y5#%GKW$*)^ztdXmr>M389{zFOU>u0wIEl9VC}85JfrVCII1|?Z<_4YEXDU8z1AA#qN1oB~IO+#UNx z4dw-KFYewbaPig;$14COIF)bAIng<0CpxW?#(*-@HCAXg(Nils5L^db#+qf9~!Y=GD{TqFBr? zj>j6NjjqiKq{S?!1ay>3mcG9Kbm*iWSBloHx`OT(7IY#ET=DQQ2p{>$Dy&Ly$cLsv z)A6q}_kS@xewKTS`gouary9;9_I`Bd3E@Nx4*S}WUSocuQQD%E;dCcwDo{g~&rMqR z+nT%=6>4UTx*B7BUd1o;Mr8MVx5kd93f{{^O|Fi#HuUv+0oQwI7!p6nlh} zH%|XY_51IqG$z>o|BoLUK#goV5j7DQv_t>>_P;-I86>JIL^QqaD3cp)dRzsN+RlXn zV?tKCwQC%%GBI%9dU&LKvdg8|U(Rz28xR*FiPw%!;N_b6sOAB@J$6{u|D`(t+V{VeBt3>fFW6LGO+`CR| zt>cnw?U;s^E#ztI4ulp$z4@V4;74ax8@VQIJt;+a=B$V0bSLci3ui&AcZZJs%M7gj z&t3HxUT*n}c4P_pnBl8R|JkOb5d{*iUnCM+PyYRWxVAC$f2dggeTaa-iyXNLSO&Hb zU(sXEq74%O?W)>8+OYrdwEe(_m6GDSZeBJxPhN}4Q zbMjY%yQ#K^dE?^o_X%jC_iD#o`11mq>A9K+l6Y3`OfZYH&7&mJ74iBZCHO^Qs*tHAQki`^l{HN z0rLM`C5;lp$4R?Oz>sJx|F(sry&ve*+((C&vkpWHm@0nhe6E+Hvvfr5k(m8OistC} z+F3v+S@?DCxsI2dGcNqcEF^C*Gy^rK0#XpTf`j;T%ed?_X^O6w@@$jCM9B~aaZtn> z;|>@*p+6IjAuQu1c(NY{lAtJx$_5f%s^5_yN=AA<(DFDyaCTrVvtL=-S>zA_^g7b@ zXl}#!DL+tvlCMk0k(qdetj-mwk*-UQ)wDQ}RNSf`IZUN}F+y@Y?duD0(r^H4_2612 zFP>~Aks&10SvL17;M7hHKvonhy})W5v;iarS*l8WXBhoyLO%o$GM&0OF5qBn-s5(4 zNIS^|-;Ds2Uh9oNJYZR*au4Zt#~Ab!{+gT3i8Z|l&(>>L+pqN{ zlhLspH2_f%g$&8Zv?ZLOUJOS>&a{!`+_bod51Ch5!ytoGfI8;hV+iP4cN^%f;3PgD zCzQo*yyw)u6%;a_r;$-3etr!Rj!|QyKc%2>2y0kS@Otseuq?*oT#`;xO?iF-L|7XV zg%o(>akHmH4t6-j-TVf{X6UI;$a5KmP8G`{@<^HG&iX5&Tt`aI(S90E7^nq8j<648Y^*dx$(qV~F zaQxv#?_ZO7{)M%*?Cewna*EJtN~$S≪g8r>;AiOakN%C|6a??IeKbi_zoam5KXP zMfh53s8(T}sP!=u3J9`_wF1%^=Q?}l14(z6nc7CoVf*2LC)=#^N|kqp)?c_vX4rqeBpdG;AhfKXyj2-X_0 zXb@H1j0;`m??;73S0cN5P+) zk)O)}%ya+9k7GNBJVazzEt6Y=SMXf-i`GaqPjwzRrj|84NM)EOSn8?`1v7p=Ls;^{fCnZZ0r9Bo#u z#wmC+s$s{Vm_0~R4a$7W?-?XTY1A(CoV}jQKl|Hgst89mpm`yNI!J^r_3gRiKY_6F zQbm{TGFQ8OwmNy1-q#hwm7gKz(E5xlnW!yWq3Iw)B4&FijXa*-YJP|Kd(kUpzP7VS{~r0k#ZODhy5lJ<(v; z=hFH&-S`I=QWLd?pCPXi0!7Aw%wevr-%)Ou3>iW}Kbv%9_t(hgJ5oH2RClP(rTE^B zWzNgl0(bz5!U0#>thQY)tBx|d>Q55m|GLWi#O6(Lhd>YA*OlR2)ZDV42db{dgC)F?q9 zF(LkjR+gQGD&ogGWP*e{gmziKS=KJI9vS-Z0Kbxd>Gu)Dd+aC=3Ev9zjAO1J^0>mZ zb2lYLRnVRgfBNPRr?rl0DGTeS>9l@4&L8!Y6_qOop~hSv_=9k@3>jWm^ptOdv|&ERMl0%{W}YfF?7rv^=WDKaSiP`x6RF{CdGJ;7$@rXIc658aIM_balA~q zIjIJ&-SG!<&jja8#s2%GKYnTtg!ajZ!Tj2Gxy*@%u#FGjFW4$?1{CTQ5)*|~O{#Bm zW@M27y=EESpWoIsl@5;T>KOf5dAsGq2~?d})mGo_mXC3HI4U3Ii<9YpzoLJ95fB){ zi|(Y{6S3WUZUlg3N42pV$F|D{kScZgl$Wz7lWv_H?_$mO!^#$8NP%oe5i| zE7;NN(gk-v-ZH~L_v9g5_L8F^U!TFdcPqtkTdG9B*%vlyVc~F`^<9%smb|QNdyL)~AzN?DHk0iUSOI$K0=hPod20{i; zz=G`R2kK0%=lRK_4qGl!q5%=8Mrnkii^w`4RijpeaCaV(?|sO1tt`-PBH6>--+wua zapiO5mTS~rQ~?lK<>Cw;%|T3dwdwjBQ~}3WuU*t^%u5VbrdB;JlQ0mYzT5fAeP$5x zCi%_kBKd7PGZ*QuJNDM{273hY0Qa9AQ9x-Dxj`g(vE zG;i~2z^5a`9(#TG$#!Q38}_e58+VVtKRS^Jp8mbLhTDx7s;Ev40t9Xk#N{kkT-2S2RT_>qK~Meh0z0z#sHez*}!wfX;ozdJ~Hqo+cUed9kx yzr&LD>(Af*`!N2jENOdqwEsKm|D%VeuDc=JctCmo9=Iqwloizf%9g);uv*wz$u5w;ijJjZM zBDQJICLtjqv9o7RUKA4AA}=H)@@eA+c#n|&ShA4Nrcqa8;|phvjpZ-+dR=#QcNP*l z6P1u8a>?q-o^WdDw1UFpyBp7lR*QCu$}7=@&gH+}@$}dUQB4JvzJxE^WplOwFF z_WI}41t;|f>km8> zH6f=5MQ?tA_N{&8!TT42!q;317r7taH1TcUTzmV~@FqIXIs}k7CQdupB8r7TK5
hY3L_>OJnqb0L|NDQA@RI-=e~?T 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�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

s$6c4;k+TQeW% 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

hiczd!2QMe{I1gH|4naY}*VSnfUt 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 saF#xbuL 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ä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 diff --git a/plugins/circleci/src/assets/screenshot-3.png b/plugins/circleci/src/assets/screenshot-3.png deleted file mode 100644 index ac20d58246f81a6a2c372a492ff623f54dd637bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 876913 zcmeFZXIK+k+cu1%A}U5j1*8N-q=-aB=_D#DDgq+zjc!VmA|kzmkPM272!e&Cl&FY+ zf=CA`QKuv*wz$u5w;ijJjZM zBDQJICLtjqv9o7RUKA4AA}=H)@@eA+c#n|&ShA4Nrcqa8;|phvjpZ-+dR=#QcNP*l z6P1u8a>?q-o^WdDw1UFpyBp7lR*QCu$}7=@&gH+}@$}dUQB4JvzJxE^WplOwFF z_WI}41t;|f>km8> zH6f=5MQ?tA_N{&8!TT42!q;317r7taH1TcUTzmV~@FqIXIs}k7CQdupB8r7TK5

hY3L_>OJnqb0L|NDQA@RI-=e~?T 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

hY3L_>OJnqb0L|NDQA@RI-=e~?T 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 z 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 yBeqch@x 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ª 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

*I|F- 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 = ({ build }) => ( #{build?.build_num} - {build?.subject} @@ -94,56 +96,13 @@ const pickClassName = ( return classes.neutral; }; -const Page = () => ( - - - - - - - - -); - -const BuildWithStepsView: FC<{}> = () => { - const { buildId = '' } = useParams(); - const classes = useStyles(); - const [settings] = useSettings(); - const [{ loading, value }, { startPolling, stopPolling }] = useBuildWithSteps( - parseInt(buildId, 10), - ); - - useEffect(() => { - startPolling(); - return () => stopPolling(); - }, [buildId, settings, startPolling, stopPolling]); - - return ( - <> - - - - - } - cardClassName={classes.cardContent} - > - {loading ? : } - - - - - ); -}; - const BuildsList: FC<{ build?: BuildWithSteps }> = ({ build }) => ( {build && build.steps && build.steps.map( ({ name, actions }: { name: string; actions: BuildStepAction[] }) => ( - + ), )} @@ -167,5 +126,35 @@ const ActionsList: FC<{ actions: BuildStepAction[]; name: string }> = ({ ); }; -export default Page; -export { BuildWithStepsView as BuildWithSteps }; +export const BuildWithStepsPage = () => { + const { buildId = '' } = useParams(); + const classes = useStyles(); + const [{ loading, value }, { startPolling, stopPolling }] = useBuildWithSteps( + parseInt(buildId, 10), + ); + + useEffect(() => { + startPolling(); + return () => stopPolling(); + }, [buildId, startPolling, stopPolling]); + + return ( + <> + + All builds + Build details + + + + } + cardClassName={classes.cardContent} + > + {loading ? : } + + + + + ); +}; diff --git a/plugins/circleci/src/components/PluginHeader/index.ts b/plugins/circleci/src/components/BuildWithStepsPage/index.ts similarity index 90% rename from plugins/circleci/src/components/PluginHeader/index.ts rename to plugins/circleci/src/components/BuildWithStepsPage/index.ts index 4de972f6f2..c5627bda1c 100644 --- a/plugins/circleci/src/components/PluginHeader/index.ts +++ b/plugins/circleci/src/components/BuildWithStepsPage/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export * from './PluginHeader'; +export { BuildWithStepsPage } from './BuildWithStepsPage'; diff --git a/plugins/circleci/src/pages/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx b/plugins/circleci/src/components/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx similarity index 100% rename from plugins/circleci/src/pages/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx rename to plugins/circleci/src/components/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx diff --git a/plugins/circleci/src/pages/BuildWithStepsPage/lib/ActionOutput/index.ts b/plugins/circleci/src/components/BuildWithStepsPage/lib/ActionOutput/index.ts similarity index 100% rename from plugins/circleci/src/pages/BuildWithStepsPage/lib/ActionOutput/index.ts rename to plugins/circleci/src/components/BuildWithStepsPage/lib/ActionOutput/index.ts diff --git a/plugins/circleci/src/components/Settings/index.ts b/plugins/circleci/src/components/BuildsPage/BuildsPage.tsx similarity index 70% rename from plugins/circleci/src/components/Settings/index.ts rename to plugins/circleci/src/components/BuildsPage/BuildsPage.tsx index c04ded6dea..d8c38de481 100644 --- a/plugins/circleci/src/components/Settings/index.ts +++ b/plugins/circleci/src/components/BuildsPage/BuildsPage.tsx @@ -13,4 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { default as Settings } from './Settings'; +import React from 'react'; +import { Builds } from './lib/Builds'; +import { Grid } from '@material-ui/core'; + +export const BuildsPage = () => ( + + + + + +); diff --git a/plugins/circleci/src/components/Layout/index.ts b/plugins/circleci/src/components/BuildsPage/index.ts similarity index 93% rename from plugins/circleci/src/components/Layout/index.ts rename to plugins/circleci/src/components/BuildsPage/index.ts index 236fc98851..f9543ed0a8 100644 --- a/plugins/circleci/src/components/Layout/index.ts +++ b/plugins/circleci/src/components/BuildsPage/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export * from './Layout'; +export { BuildsPage } from './BuildsPage'; diff --git a/plugins/circleci/src/pages/BuildsPage/lib/Builds/Builds.tsx b/plugins/circleci/src/components/BuildsPage/lib/Builds/Builds.tsx similarity index 100% rename from plugins/circleci/src/pages/BuildsPage/lib/Builds/Builds.tsx rename to plugins/circleci/src/components/BuildsPage/lib/Builds/Builds.tsx diff --git a/plugins/circleci/src/pages/BuildsPage/lib/Builds/index.ts b/plugins/circleci/src/components/BuildsPage/lib/Builds/index.ts similarity index 100% rename from plugins/circleci/src/pages/BuildsPage/lib/Builds/index.ts rename to plugins/circleci/src/components/BuildsPage/lib/Builds/index.ts diff --git a/plugins/circleci/src/pages/BuildsPage/lib/CITable/CITable.tsx b/plugins/circleci/src/components/BuildsPage/lib/CITable/CITable.tsx similarity index 93% rename from plugins/circleci/src/pages/BuildsPage/lib/CITable/CITable.tsx rename to plugins/circleci/src/components/BuildsPage/lib/CITable/CITable.tsx index b349dcfcbe..8e693429c2 100644 --- a/plugins/circleci/src/pages/BuildsPage/lib/CITable/CITable.tsx +++ b/plugins/circleci/src/components/BuildsPage/lib/CITable/CITable.tsx @@ -17,7 +17,7 @@ import React, { FC } from 'react'; import { Link, Typography, Box, IconButton } from '@material-ui/core'; import RetryIcon from '@material-ui/icons/Replay'; import GitHubIcon from '@material-ui/icons/GitHub'; -import { Link as RouterLink } from 'react-router-dom'; +import { Link as RouterLink, generatePath } from 'react-router-dom'; import { StatusError, StatusWarning, @@ -27,6 +27,7 @@ import { Table, TableColumn, } from '@backstage/core'; +import { circleCIBuildRouteRef } from '../../../../route-refs'; export type CITableBuildInfo = { id: string; @@ -80,7 +81,10 @@ const generatedColumns: TableColumn[] = [ field: 'buildName', highlight: true, render: (row: Partial) => ( - + {row.buildName} ), diff --git a/plugins/circleci/src/pages/BuildsPage/lib/CITable/index.ts b/plugins/circleci/src/components/BuildsPage/lib/CITable/index.ts similarity index 100% rename from plugins/circleci/src/pages/BuildsPage/lib/CITable/index.ts rename to plugins/circleci/src/components/BuildsPage/lib/CITable/index.ts diff --git a/plugins/circleci/src/components/CircleCIWidget.tsx b/plugins/circleci/src/components/CircleCIWidget.tsx deleted file mode 100644 index 767eb6d5c7..0000000000 --- a/plugins/circleci/src/components/CircleCIWidget.tsx +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { Route, MemoryRouter, Routes } from 'react-router'; -import { Builds } from '../pages/BuildsPage'; -import { BuildWithSteps } from '../pages/BuildWithStepsPage'; -import { AppStateProvider } from '../state'; -import { Settings } from './Settings'; - -// TODO: allow pass in settings as props -// When some shared settings workflow -// will be established -export const CircleCIWidget = () => ( - - - <> - - } /> - } /> - - - - - -); diff --git a/plugins/circleci/src/components/Layout/Layout.tsx b/plugins/circleci/src/components/Layout/Layout.tsx deleted file mode 100644 index 09479e6ef0..0000000000 --- a/plugins/circleci/src/components/Layout/Layout.tsx +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { Header, Page, pageTheme, HeaderLabel } from '@backstage/core'; - -export const Layout: React.FC = ({ children }) => { - return ( - -

- - -
- {children} - - ); -}; diff --git a/plugins/circleci/src/components/PluginHeader/PluginHeader.tsx b/plugins/circleci/src/components/PluginHeader/PluginHeader.tsx deleted file mode 100644 index 9f94cff480..0000000000 --- a/plugins/circleci/src/components/PluginHeader/PluginHeader.tsx +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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, { FC } from 'react'; -import { Link as RouterLink, useLocation } from 'react-router-dom'; -import { ContentHeader, SupportButton } from '@backstage/core'; -import { Button, IconButton, Box, Typography } from '@material-ui/core'; -import ArrowBack from '@material-ui/icons/ArrowBack'; -import SettingsIcon from '@material-ui/icons/Settings'; -import { useSettings } from '../../state'; - -export type Props = { title?: string }; -export const PluginHeader: FC = ({ title = 'CircleCI' }) => { - const [, { showSettings }] = useSettings(); - const location = useLocation(); - const notRoot = !location.pathname.match(/\/circleci\/?$/); - const isSettingsPage = location.pathname.match(/\/circleci\/settings\/?/); - return ( - ( - - {notRoot && ( - - - - )} - {title} - - )} - > - {!isSettingsPage && ( - - )} - - This plugin allows you to view and interact with your builds within the - Circle CI environment. - - - ); -}; diff --git a/plugins/circleci/src/components/Settings/Settings.tsx b/plugins/circleci/src/components/Settings/Settings.tsx deleted file mode 100644 index b3b62ce930..0000000000 --- a/plugins/circleci/src/components/Settings/Settings.tsx +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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, { useState, useEffect } from 'react'; -import { - Button, - TextField, - List, - ListItem, - Snackbar, - Box, - Dialog, - DialogTitle, -} from '@material-ui/core'; -import { Alert } from '@material-ui/lab'; -import { useSettings } from '../../state'; - -const Settings = () => { - const [ - { - repo: repoFromStore, - owner: ownerFromStore, - token: tokenFromStore, - showSettings, - }, - { saveSettings, hideSettings }, - ] = useSettings(); - - const [token, setToken] = useState(() => tokenFromStore); - const [owner, setOwner] = useState(() => ownerFromStore); - const [repo, setRepo] = useState(() => repoFromStore); - - useEffect(() => { - if (tokenFromStore !== token) { - setToken(token); - } - if (ownerFromStore !== owner) { - setOwner(owner); - } - if (repoFromStore !== repo) { - setRepo(repo); - } - }, [ownerFromStore, repoFromStore, tokenFromStore, token, owner, repo]); - - const [saved, setSaved] = useState(false); - - return ( - <> - setSaved(false)} - > - Credentials saved. - - - - Project Credentials - {/* {authed ? : } */} - - - - - setToken(e.target.value)} - /> - - - setOwner(e.target.value)} - /> - - - setRepo(e.target.value)} - /> - - - - - - - - - - - ); -}; - -export default Settings; diff --git a/plugins/circleci/src/pages/BuildWithStepsPage/index.ts b/plugins/circleci/src/pages/BuildWithStepsPage/index.ts deleted file mode 100644 index fddff7088c..0000000000 --- a/plugins/circleci/src/pages/BuildWithStepsPage/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { - default as DetailedViewPage, - BuildWithSteps, -} from './BuildWithStepsPage'; diff --git a/plugins/circleci/src/pages/BuildsPage/BuildsPage.tsx b/plugins/circleci/src/pages/BuildsPage/BuildsPage.tsx deleted file mode 100644 index 6e7fc44249..0000000000 --- a/plugins/circleci/src/pages/BuildsPage/BuildsPage.tsx +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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, { FC } from 'react'; -import { Content } from '@backstage/core'; -import { Grid } from '@material-ui/core'; -import { Builds as BuildsComp } from './lib/Builds'; -import { Layout } from '../../components/Layout'; -import { PluginHeader } from '../../components/PluginHeader'; -import { AppStateProvider } from '../../state/AppState'; -import { Settings } from '../../components/Settings'; - -const BuildsPage: FC<{}> = () => ( - - - - - - - - -); - -const Builds = () => ( - <> - - - - - - - -); - -export default BuildsPage; -export { Builds }; diff --git a/plugins/circleci/src/pages/BuildsPage/index.ts b/plugins/circleci/src/pages/BuildsPage/index.ts deleted file mode 100644 index 72b46d6bc9..0000000000 --- a/plugins/circleci/src/pages/BuildsPage/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { default as BuildsPage, Builds } from './BuildsPage'; diff --git a/plugins/circleci/src/state/AppState.tsx b/plugins/circleci/src/state/AppState.tsx deleted file mode 100644 index 2ee00362ee..0000000000 --- a/plugins/circleci/src/state/AppState.tsx +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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, { FC, useReducer, Dispatch, Reducer } from 'react'; -import { circleCIApiRef } from '../api'; -import type { State, Action, SettingsState } from './types'; - -export type { SettingsState }; - -export const AppContext = React.createContext<[State, Dispatch]>( - [] as any, -); -export const STORAGE_KEY = `${circleCIApiRef.id}.settings`; - -const initialState: State = { - owner: '', - repo: '', - token: '', - showSettings: false, -}; - -const reducer: Reducer = (state, action) => { - switch (action.type) { - case 'setCredentials': - return { - ...state, - ...action.payload, - }; - case 'showSettings': - return { ...state, showSettings: true }; - case 'hideSettings': - return { ...state, showSettings: false }; - default: - return state; - } -}; - -export const AppStateProvider: FC = ({ children }) => { - const [state, dispatch] = useReducer(reducer, initialState); - return ( - - <>{children} - - ); -}; diff --git a/plugins/circleci/src/state/index.ts b/plugins/circleci/src/state/index.ts index 2321103eb4..d21a380c2a 100644 --- a/plugins/circleci/src/state/index.ts +++ b/plugins/circleci/src/state/index.ts @@ -13,7 +13,5 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export * from './AppState'; -export * from './useSettings'; export * from './useBuilds'; export * from './useBuildWithSteps'; diff --git a/plugins/circleci/src/state/types.ts b/plugins/circleci/src/state/types.ts deleted file mode 100644 index 41b3577082..0000000000 --- a/plugins/circleci/src/state/types.ts +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 type Settings = { owner: string; repo: string; token: string }; -export type SettingsState = Settings & { - showSettings: boolean; -}; - -export type State = SettingsState; - -type SettingsAction = - | { - type: 'setCredentials'; - payload: { - repo: string; - owner: string; - token: string; - }; - } - | { type: 'showSettings' } - | { type: 'hideSettings' }; - -export type Action = SettingsAction; diff --git a/plugins/circleci/src/state/useSettings.ts b/plugins/circleci/src/state/useSettings.ts deleted file mode 100644 index 3cc58a65bd..0000000000 --- a/plugins/circleci/src/state/useSettings.ts +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { errorApiRef, useApi } from '@backstage/core'; -import { useContext, useEffect } from 'react'; -import { AppContext, STORAGE_KEY } from './AppState'; -import { Settings } from './types'; - -export function useSettings() { - const [settings, dispatch] = useContext(AppContext); - - const errorApi = useApi(errorApiRef); - - useEffect(() => { - const rehydrate = () => { - try { - const stateFromStorage = JSON.parse( - sessionStorage.getItem(STORAGE_KEY)!, - ); - if ( - stateFromStorage && - Object.keys(stateFromStorage).some( - k => (settings as any)[k] !== stateFromStorage[k], - ) - ) - dispatch({ - type: 'setCredentials', - payload: stateFromStorage, - }); - } catch (error) { - errorApi.post(error); - } - }; - - rehydrate(); - }, [dispatch, errorApi, settings]); - - const persist = (state: Settings) => { - sessionStorage.setItem(STORAGE_KEY, JSON.stringify(state)); - }; - - return [ - settings, - { - saveSettings: (state: Settings) => { - persist(state); - dispatch({ - type: 'setCredentials', - payload: state, - }); - }, - showSettings: () => dispatch({ type: 'showSettings' }), - hideSettings: () => dispatch({ type: 'hideSettings' }), - }, - ] as const; -} From bf1b430b9604359f94ac271592957bf02c5383ab Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Fri, 4 Sep 2020 15:59:03 +0200 Subject: [PATCH 396/656] feat(github-actions): exported predicate --- plugins/github-actions/src/components/Router.tsx | 2 +- plugins/github-actions/src/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/github-actions/src/components/Router.tsx b/plugins/github-actions/src/components/Router.tsx index d0745f67d4..83c18ed483 100644 --- a/plugins/github-actions/src/components/Router.tsx +++ b/plugins/github-actions/src/components/Router.tsx @@ -22,7 +22,7 @@ import { WorkflowRunsTable } from './WorkflowRunsTable'; import { GITHUB_ACTIONS_ANNOTATION } from './useProjectName'; import { WarningPanel } from '@backstage/core'; -const isPluginApplicableToEntity = (entity: Entity) => +export const isPluginApplicableToEntity = (entity: Entity) => Boolean(entity.metadata.annotations?.[GITHUB_ACTIONS_ANNOTATION]) && entity.metadata.annotations?.[GITHUB_ACTIONS_ANNOTATION] !== ''; diff --git a/plugins/github-actions/src/index.ts b/plugins/github-actions/src/index.ts index 17c1fa2dd7..24fe6fc90d 100644 --- a/plugins/github-actions/src/index.ts +++ b/plugins/github-actions/src/index.ts @@ -16,6 +16,6 @@ export { plugin } from './plugin'; export * from './api'; -export { Router } from './components/Router'; +export { Router, isPluginApplicableToEntity } from './components/Router'; export * from './components/Cards'; export { GITHUB_ACTIONS_ANNOTATION } from './components/useProjectName'; From 51a37d996562afe674b2dac01afd9da63c341530 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Fri, 4 Sep 2020 15:59:43 +0200 Subject: [PATCH 397/656] feat(circleci): add cicdswitcher to example-app --- packages/app/src/components/Root/Root.tsx | 1 - .../app/src/components/catalog/EntityPage.tsx | 32 +++++++++++++++++-- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx index ab95f623af..2a43d4ee2f 100644 --- a/packages/app/src/components/Root/Root.tsx +++ b/packages/app/src/components/Root/Root.tsx @@ -99,7 +99,6 @@ const Root: FC<{}> = ({ children }) => ( - { + // This component is just an example of how you can implement your company's logic in entity page. + // You can for example enforce that all components of type 'service' should use GitHubActions + switch (true) { + case isGitHubActionsAvaiable(entity): + return ; + case isCircleCIAvailable(entity): + return ; + default: + return ( + + No CI/CD is available for this entity. Check corresponding + annotations! + + ); + } +}; const OverviewContent = ({ entity }: { entity: Entity }) => ( @@ -41,7 +67,7 @@ const ServiceEntityPage = ({ entity }: { entity: Entity }) => ( } + element={} /> ); @@ -56,7 +82,7 @@ const WebsiteEntityPage = ({ entity }: { entity: Entity }) => ( } + element={} /> ); From 07b9316190ac85ba3c61184fe6e60c5852375632 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Fri, 4 Sep 2020 16:01:20 +0200 Subject: [PATCH 398/656] feat(create-app): add circleci and cicdswitcher to template --- .../app/src/components/catalog/EntityPage.tsx | 39 +++++++++++++++++-- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx b/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx index 4087789deb..06b837c173 100644 --- a/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx @@ -13,7 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Router as GitHubActionsRouter } from '@backstage/plugin-github-actions'; +import { + Router as GitHubActionsRouter, + isPluginApplicableToEntity as isGitHubActionsAvaiable, +} from '@backstage/plugin-github-actions'; +import { + Router as CircleCIRouter, + isPluginApplicableToEntity as isCircleCIAvailable, +} from '@backstage/plugin-circleci'; import React from 'react'; import { EntityPageLayout, @@ -21,9 +28,33 @@ import { AboutCard, } from '@backstage/plugin-catalog'; import { Entity } from '@backstage/catalog-model'; +import { Grid } from '@material-ui/core'; +import { WarningPanel } from '@backstage/core'; + +const CICDSwitcher = ({ entity }: { entity: Entity }) => { + // This component is just an example of how you can implement your company's logic in entity page. + // You can for example enforce that all components of type 'service' should use GitHubActions + switch (true) { + case isGitHubActionsAvaiable(entity): + return ; + case isCircleCIAvailable(entity): + return ; + default: + return ( + + No CI/CD is available for this entity. Check corresponding + annotations! + + ); + } +}; const OverviewContent = ({ entity }: { entity: Entity }) => ( - + + + + + ); const ServiceEntityPage = ({ entity }: { entity: Entity }) => ( @@ -36,7 +67,7 @@ const ServiceEntityPage = ({ entity }: { entity: Entity }) => ( } + element={} /> ); @@ -51,7 +82,7 @@ const WebsiteEntityPage = ({ entity }: { entity: Entity }) => ( } + element={} /> ); From b180748b96cfb6e859dd1e39659b10ac5a7bc5ba Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Fri, 4 Sep 2020 16:18:53 +0200 Subject: [PATCH 399/656] fix(github-actions): use only github.com/project-slug annotation --- catalog-info.yaml | 3 +-- .../catalog/src/components/EntityPageCi/EntityPageCi.tsx | 7 +++++-- .../components/EntityPageOverview/EntityPageOverview.tsx | 7 +++++-- plugins/github-actions/src/components/Cards/Cards.tsx | 3 ++- .../{{cookiecutter.component_id}}/component-info.yaml | 1 - .../{{cookiecutter.component_id}}/component-info.yaml | 1 - 6 files changed, 13 insertions(+), 9 deletions(-) diff --git a/catalog-info.yaml b/catalog-info.yaml index 4221ee6dc6..937a55bfca 100644 --- a/catalog-info.yaml +++ b/catalog-info.yaml @@ -3,10 +3,9 @@ kind: Component metadata: name: backstage description: | - Backstage is an open-source developer portal that puts the developer experience first. + Backstage is an open-source developer portal that puts the developer experience first. annotations: github.com/project-slug: spotify/backstage - backstage.io/github-actions-id: spotify/backstage backstage.io/techdocs-ref: github:https://github.com/spotify/backstage.git spec: type: library diff --git a/plugins/catalog/src/components/EntityPageCi/EntityPageCi.tsx b/plugins/catalog/src/components/EntityPageCi/EntityPageCi.tsx index 3261764d11..0974e6bb83 100644 --- a/plugins/catalog/src/components/EntityPageCi/EntityPageCi.tsx +++ b/plugins/catalog/src/components/EntityPageCi/EntityPageCi.tsx @@ -17,7 +17,10 @@ // TODO(shmidt-i): move to the app import { Entity } from '@backstage/catalog-model'; import { Content } from '@backstage/core'; -import { LatestWorkflowsForBranchCard } from '@backstage/plugin-github-actions'; +import { + LatestWorkflowsForBranchCard, + GITHUB_ACTIONS_ANNOTATION, +} from '@backstage/plugin-github-actions'; import { Grid } from '@material-ui/core'; import React, { FC } from 'react'; @@ -25,7 +28,7 @@ export const EntityPageCi: FC<{ entity: Entity }> = ({ entity }) => { return ( - {entity.metadata?.annotations?.['backstage.io/github-actions-id'] && ( + {entity.metadata?.annotations?.[GITHUB_ACTIONS_ANNOTATION] && ( diff --git a/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx b/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx index 9b29b205cf..c43e83edaa 100644 --- a/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx +++ b/plugins/catalog/src/components/EntityPageOverview/EntityPageOverview.tsx @@ -17,7 +17,10 @@ // TODO(shmidt-i): move to the app import { Entity } from '@backstage/catalog-model'; import { Content } from '@backstage/core'; -import { LatestWorkflowRunCard } from '@backstage/plugin-github-actions'; +import { + LatestWorkflowRunCard, + GITHUB_ACTIONS_ANNOTATION, +} from '@backstage/plugin-github-actions'; import { JenkinsBuildsWidget, JenkinsLastBuildWidget, @@ -47,7 +50,7 @@ export const EntityPageOverview: FC<{ entity: Entity }> = ({ entity }) => { )} - {entity.metadata?.annotations?.['backstage.io/github-actions-id'] && ( + {entity.metadata?.annotations?.[GITHUB_ACTIONS_ANNOTATION] && ( diff --git a/plugins/github-actions/src/components/Cards/Cards.tsx b/plugins/github-actions/src/components/Cards/Cards.tsx index 478b3810cb..28783efdea 100644 --- a/plugins/github-actions/src/components/Cards/Cards.tsx +++ b/plugins/github-actions/src/components/Cards/Cards.tsx @@ -32,6 +32,7 @@ import { useApi, } from '@backstage/core'; import ExternalLinkIcon from '@material-ui/icons/Launch'; +import { GITHUB_ACTIONS_ANNOTATION } from '../useProjectName'; const useStyles = makeStyles({ externalLinkIcon: { @@ -83,7 +84,7 @@ export const LatestWorkflowRunCard = ({ }) => { const errorApi = useApi(errorApiRef); const [owner, repo] = ( - entity?.metadata.annotations?.['backstage.io/github-actions-id'] ?? '/' + entity?.metadata.annotations?.[GITHUB_ACTIONS_ANNOTATION] ?? '/' ).split('/'); const [{ runs, loading, error }] = useWorkflowRuns({ owner, diff --git a/plugins/scaffolder-backend/sample-templates/react-ssr-template/{{cookiecutter.component_id}}/component-info.yaml b/plugins/scaffolder-backend/sample-templates/react-ssr-template/{{cookiecutter.component_id}}/component-info.yaml index 832b539ac6..f6e1d2c8d9 100644 --- a/plugins/scaffolder-backend/sample-templates/react-ssr-template/{{cookiecutter.component_id}}/component-info.yaml +++ b/plugins/scaffolder-backend/sample-templates/react-ssr-template/{{cookiecutter.component_id}}/component-info.yaml @@ -5,7 +5,6 @@ metadata: description: {{cookiecutter.description}} annotations: github.com/project-slug: {{cookiecutter.storePath}} - backstage.io/github-actions-id: {{cookiecutter.storePath}} backstage.io/techdocs-ref: github:https://github.com/{{cookiecutter.storePath}} spec: type: website diff --git a/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/{{cookiecutter.component_id}}/component-info.yaml b/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/{{cookiecutter.component_id}}/component-info.yaml index 15c8fdcfff..618209f44c 100644 --- a/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/{{cookiecutter.component_id}}/component-info.yaml +++ b/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/{{cookiecutter.component_id}}/component-info.yaml @@ -5,7 +5,6 @@ metadata: description: {{cookiecutter.description}} annotations: github.com/project-slug: {{cookiecutter.storePath}} - backstage.io/github-actions-id: {{cookiecutter.storePath}} spec: type: service lifecycle: experimental From 4f172359267b6f685e6a073f56588500d2b6763b Mon Sep 17 00:00:00 2001 From: Fabian Chong Date: Sat, 5 Sep 2020 15:58:34 +0800 Subject: [PATCH 400/656] create-app tsconfig --- packages/cli/src/commands/clean/clean.ts | 1 + packages/create-app/templates/default-app/.gitignore | 1 + packages/create-app/templates/default-app/tsconfig.json | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/commands/clean/clean.ts b/packages/cli/src/commands/clean/clean.ts index 2fa3e4a18f..bc2bcd23ac 100644 --- a/packages/cli/src/commands/clean/clean.ts +++ b/packages/cli/src/commands/clean/clean.ts @@ -19,5 +19,6 @@ import { paths } from '../../lib/paths'; export default async function clean() { await fs.remove(paths.resolveTarget('dist')); + await fs.remove(paths.resolveTarget('dist-types')); await fs.remove(paths.resolveTarget('coverage')); } diff --git a/packages/create-app/templates/default-app/.gitignore b/packages/create-app/templates/default-app/.gitignore index 3e786d566e..4f9065c60b 100644 --- a/packages/create-app/templates/default-app/.gitignore +++ b/packages/create-app/templates/default-app/.gitignore @@ -22,6 +22,7 @@ node_modules/ # Build output dist +dist-types # Temporary change files created by Vim *.swp diff --git a/packages/create-app/templates/default-app/tsconfig.json b/packages/create-app/templates/default-app/tsconfig.json index cccc375f63..b1ec99b986 100644 --- a/packages/create-app/templates/default-app/tsconfig.json +++ b/packages/create-app/templates/default-app/tsconfig.json @@ -8,7 +8,7 @@ ], "exclude": ["node_modules"], "compilerOptions": { - "outDir": "dist", + "outDir": "dist-types", "rootDir": ".", "skipLibCheck": true } From 0499c27fec34c68d0bcd04e52234b6a71f4e96db Mon Sep 17 00:00:00 2001 From: Fabian Chong Date: Sat, 5 Sep 2020 16:45:25 +0800 Subject: [PATCH 401/656] index types --- packages/cli/src/lib/builder/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/lib/builder/config.ts b/packages/cli/src/lib/builder/config.ts index 9a3be63404..e91fc32633 100644 --- a/packages/cli/src/lib/builder/config.ts +++ b/packages/cli/src/lib/builder/config.ts @@ -120,7 +120,7 @@ export const makeConfigs = async ( configs.push({ input: typesInput, output: { - file: 'dist-types/index.d.ts', + file: 'dist/index.d.ts', format: 'es', }, plugins: [dts()], From 66f53328f89323c3cf2ca00721c03f4c1e93c6eb Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 5 Sep 2020 11:16:14 +0200 Subject: [PATCH 402/656] microsite: remove from workspace and build independently --- .github/workflows/e2e-win.yml | 2 +- .github/workflows/e2e.yml | 2 +- .github/workflows/microsite-build-check.yml | 28 +- .../microsite-with-storybook-deploy.yml | 8 +- .gitignore | 4 - microsite/.gitignore | 4 + microsite/README.md | 26 +- microsite/package.json | 2 +- microsite/yarn.lock | 6650 +++++++++++++++++ package.json | 3 +- yarn.lock | 1329 +--- 11 files changed, 6752 insertions(+), 1306 deletions(-) create mode 100644 microsite/.gitignore create mode 100644 microsite/yarn.lock diff --git a/.github/workflows/e2e-win.yml b/.github/workflows/e2e-win.yml index 5ebf67bc9a..b4ea1e350f 100644 --- a/.github/workflows/e2e-win.yml +++ b/.github/workflows/e2e-win.yml @@ -49,6 +49,6 @@ jobs: - run: yarn tsc - name: yarn build - run: yarn build --ignore example-app --ignore example-backend --ignore @techdocs/cli --ignore backstage-microsite + run: yarn build --ignore example-app --ignore example-backend --ignore @techdocs/cli - name: run E2E test run: yarn workspace e2e-test start diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 401fe7297a..d53ca1b607 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -64,7 +64,7 @@ jobs: - run: yarn tsc - name: yarn build - run: yarn build --ignore example-app --ignore example-backend --ignore @techdocs/cli --ignore backstage-microsite + run: yarn build --ignore example-app --ignore example-backend --ignore @techdocs/cli - name: run E2E test run: | sudo sysctl fs.inotify.max_user_watches=524288 diff --git a/.github/workflows/microsite-build-check.yml b/.github/workflows/microsite-build-check.yml index dc86ca2630..ff290b71e4 100644 --- a/.github/workflows/microsite-build-check.yml +++ b/.github/workflows/microsite-build-check.yml @@ -22,33 +22,17 @@ jobs: steps: - uses: actions/checkout@v2 - # Beginning of yarn setup, keep in sync between all workflows, see ci.yml - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - registry-url: https://registry.npmjs.org/ # Needed for auth - - name: cache all node_modules - id: cache-modules - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }} - - name: find location of global yarn cache - id: yarn-cache - if: steps.cache-modules.outputs.cache-hit != 'true' - run: echo "::set-output name=dir::$(yarn cache dir)" - - name: cache global yarn cache - uses: actions/cache@v2 - if: steps.cache-modules.outputs.cache-hit != 'true' - with: - path: ${{ steps.yarn-cache.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- + + # Skip caching of microsite dependencies, it keeps the global cache size + # smaller, which make Windows builds a lot faster for the rest of the project. - name: yarn install run: yarn install --frozen-lockfile - # End of yarn setup + working-directory: microsite - name: build microsite - run: yarn workspace backstage-microsite build + run: yarn build + working-directory: microsite diff --git a/.github/workflows/microsite-with-storybook-deploy.yml b/.github/workflows/microsite-with-storybook-deploy.yml index 2c8b8af40c..a1e9723be0 100644 --- a/.github/workflows/microsite-with-storybook-deploy.yml +++ b/.github/workflows/microsite-with-storybook-deploy.yml @@ -54,8 +54,14 @@ jobs: run: yarn install --frozen-lockfile # End of yarn setup + # Previous install was to be able to build storybook, this is for the microsite, and we skip caching + - name: yarn install + run: yarn install --frozen-lockfile + working-directory: microsite + - name: build microsite - run: yarn workspace backstage-microsite build + run: yarn build + working-directory: microsite - name: build storybook run: yarn workspace storybook build-storybook diff --git a/.gitignore b/.gitignore index aee80f4c10..9884edf96e 100644 --- a/.gitignore +++ b/.gitignore @@ -90,10 +90,6 @@ typings/ .nuxt dist -# Microsite build output -microsite/build -microsite/i18n - # Gatsby files .cache/ # Comment in the public line in if your project uses Gatsby and not Next.js diff --git a/microsite/.gitignore b/microsite/.gitignore new file mode 100644 index 0000000000..f5bcdb3385 --- /dev/null +++ b/microsite/.gitignore @@ -0,0 +1,4 @@ + +# Build output +build +i18n diff --git a/microsite/README.md b/microsite/README.md index d7187888a3..d244caa22a 100644 --- a/microsite/README.md +++ b/microsite/README.md @@ -2,12 +2,36 @@ This website was created with [Docusaurus](https://docusaurus.io/). # What's In This Document -- [Get Started in 5 Minutes](#get-started-in-5-minutes) +- [Getting Started](#getting-started) - [Directory Structure](#directory-structure) - [Editing Content](#editing-content) - [Adding Content](#adding-content) - [Full Documentation](#full-documentation) +# Getting Started + +## Installation + +``` +$ yarn install +``` + +## Local Development + +``` +$ yarn start +``` + +This command starts a local development server and open up a browser window. Most changes are reflected live without having to restart the server. + +## Build + +``` +$ yarn build +``` + +This command generates static content into the `build` directory, which is what will be deployed to GitHub pages from the master branch. + ## Directory Structure Your project file structure should look something like this diff --git a/microsite/package.json b/microsite/package.json index ee3c7f8dc2..25598c18b4 100644 --- a/microsite/package.json +++ b/microsite/package.json @@ -1,5 +1,5 @@ { - "version": "0.1.1-alpha.21", + "version": "0.0.0", "name": "backstage-microsite", "license": "Apache-2.0", "private": true, diff --git a/microsite/yarn.lock b/microsite/yarn.lock new file mode 100644 index 0000000000..422959d3fd --- /dev/null +++ b/microsite/yarn.lock @@ -0,0 +1,6650 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@7.5.5": + version "7.5.5" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/code-frame@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" + integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ== + dependencies: + browserslist "^4.12.0" + invariant "^2.2.4" + semver "^5.5.0" + +"@babel/core@^7.9.0": + version "7.11.6" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" + integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.11.6" + "@babel/helper-module-transforms" "^7.11.0" + "@babel/helpers" "^7.10.4" + "@babel/parser" "^7.11.5" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.11.5" + "@babel/types" "^7.11.5" + 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/generator@^7.11.5", "@babel/generator@^7.11.6": + version "7.11.6" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" + integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== + dependencies: + "@babel/types" "^7.11.5" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" + integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" + integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-builder-react-jsx-experimental@^7.10.4", "@babel/helper-builder-react-jsx-experimental@^7.11.5": + version "7.11.5" + resolved "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz#4ea43dd63857b0a35cd1f1b161dc29b43414e79f" + integrity sha512-Vc4aPJnRZKWfzeCBsqTBnzulVNjABVdahSPhtdMD3Vs80ykx4a87jTHtF/VR+alSrDmNvat7l13yrRHauGcHVw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-module-imports" "^7.10.4" + "@babel/types" "^7.11.5" + +"@babel/helper-builder-react-jsx@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d" + integrity sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-compilation-targets@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2" + integrity sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ== + dependencies: + "@babel/compat-data" "^7.10.4" + browserslist "^4.12.0" + invariant "^2.2.4" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/helper-create-class-features-plugin@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" + integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.10.5" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" + +"@babel/helper-create-regexp-features-plugin@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" + integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-regex" "^7.10.4" + regexpu-core "^4.7.0" + +"@babel/helper-define-map@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" + integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/types" "^7.10.5" + lodash "^4.17.19" + +"@babel/helper-explode-assignable-expression@^7.10.4": + version "7.11.4" + resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz#2d8e3470252cc17aba917ede7803d4a7a276a41b" + integrity sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" + integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== + dependencies: + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-get-function-arity@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" + integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-hoist-variables@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" + integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" + integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q== + dependencies: + "@babel/types" "^7.11.0" + +"@babel/helper-module-imports@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" + integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" + integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/template" "^7.10.4" + "@babel/types" "^7.11.0" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" + integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + 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-regex@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" + integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== + dependencies: + lodash "^4.17.19" + +"@babel/helper-remap-async-to-generator@^7.10.4": + version "7.11.4" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz#4474ea9f7438f18575e30b0cac784045b402a12d" + integrity sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-wrap-function" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-replace-supers@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" + integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-simple-access@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" + integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== + dependencies: + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" + integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q== + dependencies: + "@babel/types" "^7.11.0" + +"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" + integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== + dependencies: + "@babel/types" "^7.11.0" + +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + +"@babel/helper-wrap-function@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" + integrity sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helpers@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" + integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== + dependencies: + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/highlight@^7.0.0", "@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.10.4", "@babel/parser@^7.11.5": + version "7.11.5" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" + integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== + +"@babel/plugin-proposal-async-generator-functions@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" + integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.10.4" + "@babel/plugin-syntax-async-generators" "^7.8.0" + +"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.8.3": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" + integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-proposal-dynamic-import@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" + integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + +"@babel/plugin-proposal-export-namespace-from@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54" + integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" + integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.0" + +"@babel/plugin-proposal-logical-assignment-operators@^7.11.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8" + integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" + integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + +"@babel/plugin-proposal-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" + integrity sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.11.0", "@babel/plugin-proposal-object-rest-spread@^7.9.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" + integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.10.4" + +"@babel/plugin-proposal-optional-catch-binding@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" + integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@^7.11.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" + integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-private-methods@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" + integrity sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" + integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-async-generators@^7.8.0": + version "7.8.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c" + integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-dynamic-import@^7.8.0": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-json-strings@^7.8.0": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c" + integrity sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + 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" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.0": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.0": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.0": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" + integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-arrow-functions@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" + integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-async-to-generator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" + integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.10.4" + +"@babel/plugin-transform-block-scoped-functions@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" + integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-block-scoping@^7.10.4": + version "7.11.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" + integrity sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-classes@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" + integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-define-map" "^7.10.4" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" + integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-destructuring@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" + integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" + integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-duplicate-keys@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" + integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-exponentiation-operator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" + integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-for-of@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" + integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" + integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-literals@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" + integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" + integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-modules-amd@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" + integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw== + dependencies: + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" + integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w== + dependencies: + "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-simple-access" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" + integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw== + dependencies: + "@babel/helper-hoist-variables" "^7.10.4" + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" + integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA== + dependencies: + "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" + integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + +"@babel/plugin-transform-new-target@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" + integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-object-super@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" + integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + +"@babel/plugin-transform-parameters@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" + integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw== + dependencies: + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-property-literals@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" + integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-react-display-name@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz#b5795f4e3e3140419c3611b7a2a3832b9aef328d" + integrity sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-react-jsx-development@^7.10.4": + version "7.11.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.11.5.tgz#e1439e6a57ee3d43e9f54ace363fb29cefe5d7b6" + integrity sha512-cImAmIlKJ84sDmpQzm4/0q/2xrXlDezQoixy3qoz1NJeZL/8PRon6xZtluvr4H4FzwlDGI5tCcFupMnXGtr+qw== + dependencies: + "@babel/helper-builder-react-jsx-experimental" "^7.11.5" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.10.4" + +"@babel/plugin-transform-react-jsx-self@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz#cd301a5fed8988c182ed0b9d55e9bd6db0bd9369" + integrity sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.10.4" + +"@babel/plugin-transform-react-jsx-source@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz#34f1779117520a779c054f2cdd9680435b9222b4" + integrity sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.10.4" + +"@babel/plugin-transform-react-jsx@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz#673c9f913948764a4421683b2bef2936968fddf2" + integrity sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A== + dependencies: + "@babel/helper-builder-react-jsx" "^7.10.4" + "@babel/helper-builder-react-jsx-experimental" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.10.4" + +"@babel/plugin-transform-react-pure-annotations@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz#3eefbb73db94afbc075f097523e445354a1c6501" + integrity sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-regenerator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" + integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" + integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-shorthand-properties@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" + integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-spread@^7.11.0": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" + integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" + +"@babel/plugin-transform-sticky-regex@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" + integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-regex" "^7.10.4" + +"@babel/plugin-transform-template-literals@^7.10.4": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" + integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-typeof-symbol@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" + integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-unicode-escapes@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" + integrity sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-unicode-regex@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" + integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/polyfill@^7.8.7": + version "7.11.5" + resolved "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.11.5.tgz#df550b2ec53abbc2ed599367ec59e64c7a707bb5" + integrity sha512-FunXnE0Sgpd61pKSj2OSOs1D44rKTD3pGOfGilZ6LGrrIH0QEtJlTjqOqdF8Bs98JmjfGhni2BBkTfv9KcKJ9g== + dependencies: + core-js "^2.6.5" + regenerator-runtime "^0.13.4" + +"@babel/preset-env@^7.9.0": + version "7.11.5" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.5.tgz#18cb4b9379e3e92ffea92c07471a99a2914e4272" + integrity sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA== + dependencies: + "@babel/compat-data" "^7.11.0" + "@babel/helper-compilation-targets" "^7.10.4" + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-proposal-async-generator-functions" "^7.10.4" + "@babel/plugin-proposal-class-properties" "^7.10.4" + "@babel/plugin-proposal-dynamic-import" "^7.10.4" + "@babel/plugin-proposal-export-namespace-from" "^7.10.4" + "@babel/plugin-proposal-json-strings" "^7.10.4" + "@babel/plugin-proposal-logical-assignment-operators" "^7.11.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" + "@babel/plugin-proposal-numeric-separator" "^7.10.4" + "@babel/plugin-proposal-object-rest-spread" "^7.11.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" + "@babel/plugin-proposal-optional-chaining" "^7.11.0" + "@babel/plugin-proposal-private-methods" "^7.10.4" + "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-class-properties" "^7.10.4" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.10.4" + "@babel/plugin-transform-arrow-functions" "^7.10.4" + "@babel/plugin-transform-async-to-generator" "^7.10.4" + "@babel/plugin-transform-block-scoped-functions" "^7.10.4" + "@babel/plugin-transform-block-scoping" "^7.10.4" + "@babel/plugin-transform-classes" "^7.10.4" + "@babel/plugin-transform-computed-properties" "^7.10.4" + "@babel/plugin-transform-destructuring" "^7.10.4" + "@babel/plugin-transform-dotall-regex" "^7.10.4" + "@babel/plugin-transform-duplicate-keys" "^7.10.4" + "@babel/plugin-transform-exponentiation-operator" "^7.10.4" + "@babel/plugin-transform-for-of" "^7.10.4" + "@babel/plugin-transform-function-name" "^7.10.4" + "@babel/plugin-transform-literals" "^7.10.4" + "@babel/plugin-transform-member-expression-literals" "^7.10.4" + "@babel/plugin-transform-modules-amd" "^7.10.4" + "@babel/plugin-transform-modules-commonjs" "^7.10.4" + "@babel/plugin-transform-modules-systemjs" "^7.10.4" + "@babel/plugin-transform-modules-umd" "^7.10.4" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" + "@babel/plugin-transform-new-target" "^7.10.4" + "@babel/plugin-transform-object-super" "^7.10.4" + "@babel/plugin-transform-parameters" "^7.10.4" + "@babel/plugin-transform-property-literals" "^7.10.4" + "@babel/plugin-transform-regenerator" "^7.10.4" + "@babel/plugin-transform-reserved-words" "^7.10.4" + "@babel/plugin-transform-shorthand-properties" "^7.10.4" + "@babel/plugin-transform-spread" "^7.11.0" + "@babel/plugin-transform-sticky-regex" "^7.10.4" + "@babel/plugin-transform-template-literals" "^7.10.4" + "@babel/plugin-transform-typeof-symbol" "^7.10.4" + "@babel/plugin-transform-unicode-escapes" "^7.10.4" + "@babel/plugin-transform-unicode-regex" "^7.10.4" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.11.5" + browserslist "^4.12.0" + core-js-compat "^3.6.2" + invariant "^2.2.2" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/preset-modules@^0.1.3": + version "0.1.4" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.9.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz#92e8a66d816f9911d11d4cc935be67adfc82dbcf" + integrity sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-react-display-name" "^7.10.4" + "@babel/plugin-transform-react-jsx" "^7.10.4" + "@babel/plugin-transform-react-jsx-development" "^7.10.4" + "@babel/plugin-transform-react-jsx-self" "^7.10.4" + "@babel/plugin-transform-react-jsx-source" "^7.10.4" + "@babel/plugin-transform-react-pure-annotations" "^7.10.4" + +"@babel/register@^7.9.0": + version "7.11.5" + resolved "https://registry.npmjs.org/@babel/register/-/register-7.11.5.tgz#79becf89e0ddd0fba8b92bc279bc0f5d2d7ce2ea" + integrity sha512-CAml0ioKX+kOAvBQDHa/+t1fgOt3qkTIz0TrRtRAT6XY0m5qYZXR85k6/sLCNPMGhYDlCFHCYuU0ybTJbvlC6w== + dependencies: + find-cache-dir "^2.0.0" + lodash "^4.17.19" + make-dir "^2.1.0" + pirates "^4.0.0" + source-map-support "^0.5.16" + +"@babel/runtime@^7.8.4": + version "7.11.2" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" + integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" + integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.5", "@babel/traverse@^7.9.0": + version "7.11.5" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3" + integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.11.5" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/parser" "^7.11.5" + "@babel/types" "^7.11.5" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + +"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.4.4", "@babel/types@^7.9.0": + version "7.11.5" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" + integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@sindresorhus/is@^0.7.0": + version "0.7.0" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" + integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== + +"@types/cheerio@^0.22.8": + version "0.22.21" + resolved "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.21.tgz#5e37887de309ba11b2e19a6e14cad7874b31a8a3" + integrity sha512-aGI3DfswwqgKPiEOTaiHV2ZPC9KEhprpgEbJnv0fZl3SGX0cGgEva1126dGrMC6AJM6v/aihlUgJn9M5DbDZ/Q== + dependencies: + "@types/node" "*" + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/node@*": + version "14.6.4" + resolved "https://registry.npmjs.org/@types/node/-/node-14.6.4.tgz#a145cc0bb14ef9c4777361b7bbafa5cf8e3acb5a" + integrity sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ== + +"@types/q@^1.5.1": + version "1.5.4" + resolved "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" + integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== + +accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +address@1.1.2, address@^1.0.1: + version "1.1.2" + resolved "https://registry.npmjs.org/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + +ajv@^6.12.3: + version "6.12.4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" + integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-red@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" + integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= + dependencies: + ansi-wrap "0.1.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +ansi-wrap@0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +arch@^2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/arch/-/arch-2.1.2.tgz#0c52bbe7344bb4fa260c443d2cbad9c00ff2f0bf" + integrity sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ== + +archive-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70" + integrity sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA= + dependencies: + file-type "^4.2.0" + +argparse@^1.0.10, argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +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" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autolinker@^3.11.0: + version "3.14.1" + resolved "https://registry.npmjs.org/autolinker/-/autolinker-3.14.1.tgz#6ae4b812b6eaf42d4d68138b9e67757cbf2bc1e4" + integrity sha512-yvsRHIaY51EYDml6MGlbqyJGfl4n7zezGYf+R7gvM8c5LNpRGc4SISkvgAswSS8SWxk/OrGCylKV9mJyVstz7w== + dependencies: + tslib "^1.9.3" + +autolinker@~0.28.0: + version "0.28.1" + resolved "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47" + integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc= + dependencies: + gulp-header "^1.7.1" + +autoprefixer@^9.7.5: + version "9.8.6" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" + integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + colorette "^1.2.1" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.10.1" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" + integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== + +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-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" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-js@^1.0.2: + version "1.3.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bin-build@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz#c5780a25a8a9f966d8244217e6c1f5082a143861" + integrity sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA== + dependencies: + decompress "^4.0.0" + download "^6.2.2" + execa "^0.7.0" + p-map-series "^1.0.0" + tempfile "^2.0.0" + +bin-check@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz#fc495970bdc88bb1d5a35fc17e65c4a149fc4a49" + integrity sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA== + dependencies: + execa "^0.7.0" + executable "^4.1.0" + +bin-version-check@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz#7d819c62496991f80d893e6e02a3032361608f71" + integrity sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ== + dependencies: + bin-version "^3.0.0" + semver "^5.6.0" + semver-truncate "^1.1.2" + +bin-version@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz#5b09eb280752b1bd28f0c9db3f96f2f43b6c0839" + integrity sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ== + dependencies: + execa "^1.0.0" + find-versions "^3.0.0" + +bin-wrapper@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz#99348f2cf85031e3ef7efce7e5300aeaae960605" + integrity sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q== + dependencies: + bin-check "^4.1.0" + bin-version-check "^4.0.0" + download "^7.1.0" + import-lazy "^3.1.0" + os-filter-obj "^2.0.0" + pify "^4.0.1" + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bl@^1.0.0: + version "1.2.3" + resolved "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" + integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +body@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" + integrity sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk= + dependencies: + continuable-cache "^0.3.1" + error "^7.0.0" + raw-body "~1.1.0" + safe-json-parse "~1.0.1" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +browserslist@4.7.0: + version "4.7.0" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" + integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== + dependencies: + caniuse-lite "^1.0.30000989" + electron-to-chromium "^1.3.247" + node-releases "^1.1.29" + +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.8.5: + version "4.14.1" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.14.1.tgz#cb2b490ba881d45dc3039078c7ed04411eaf3fa3" + integrity sha512-zyBTIHydW37pnb63c7fHFXUG6EcqWOqoMdDx6cdyaDFriZ20EoVxcE95S54N+heRqY8m8IUgB5zYta/gCwSaaA== + dependencies: + caniuse-lite "^1.0.30001124" + electron-to-chromium "^1.3.562" + escalade "^3.0.2" + node-releases "^1.1.60" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer@^5.2.1: + version "5.6.0" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" + integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +bytes@1: + version "1.0.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" + integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cacheable-request@^2.1.1: + version "2.1.4" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" + integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= + dependencies: + clone-response "1.0.2" + get-stream "3.0.0" + http-cache-semantics "3.8.1" + keyv "3.0.0" + lowercase-keys "1.0.0" + normalize-url "2.0.1" + responselike "1.0.2" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001124: + version "1.0.30001124" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001124.tgz#5d9998190258e11630d674fc50ea8e579ae0ced2" + integrity sha512-zQW8V3CdND7GHRH6rxm6s59Ww4g/qGWTheoboW9nfeMg7sUoopIfKCcNZUjwYRCOrvereh3kwDpZj4VLQ7zGtA== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +caw@^2.0.0, caw@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95" + integrity sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA== + dependencies: + get-proxy "^2.0.0" + isurl "^1.0.0-alpha5" + tunnel-agent "^0.6.0" + url-to-options "^1.0.1" + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +cheerio@0.22.0: + version "0.22.0" + resolved "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" + integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash.assignin "^4.0.9" + lodash.bind "^4.1.4" + lodash.defaults "^4.0.1" + lodash.filter "^4.4.0" + lodash.flatten "^4.2.0" + lodash.foreach "^4.3.0" + lodash.map "^4.4.0" + lodash.merge "^4.4.0" + lodash.pick "^4.2.1" + lodash.reduce "^4.4.0" + lodash.reject "^4.4.0" + lodash.some "^4.4.0" + +chokidar@^2.0.4: + version "2.1.8" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +classnames@^2.2.6: + version "2.2.6" + resolved "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" + integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +clipboard@^2.0.0: + version "2.0.6" + resolved "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" + integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +clone-response@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +coffee-script@^1.12.4: + version "1.12.7" + resolved "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz#c05dae0cb79591d05b3070a8433a98c9a89ccc53" + integrity sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.1.2" + resolved "https://registry.npmjs.org/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" + integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.8.1: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.1: + version "4.1.1" + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-with-sourcemaps@*: + version "1.1.0" + resolved "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" + integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== + dependencies: + source-map "^0.6.1" + +config-chain@^1.1.11: + version "1.1.12" + resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +console-stream@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44" + integrity sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ= + +content-disposition@0.5.3, content-disposition@^0.5.2: + version "0.5.3" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +continuable-cache@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" + integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8= + +convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-js-compat@^3.6.2: + version "3.6.5" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" + integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== + dependencies: + browserslist "^4.8.5" + semver "7.0.0" + +core-js@^2.6.5: + version "2.6.11" + resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cross-spawn@6.0.5, cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +crowdin-cli@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/crowdin-cli/-/crowdin-cli-0.3.0.tgz#eac9989a6fe7feaaf33090397afc187c67b46191" + integrity sha1-6smYmm/n/qrzMJA5evwYfGe0YZE= + dependencies: + request "^2.53.0" + yamljs "^0.2.1" + yargs "^2.3.0" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +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" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@1.0.0-alpha.39: + version "1.0.0-alpha.39" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" + integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== + dependencies: + mdn-data "2.0.6" + source-map "^0.6.1" + +css-what@2.1: + version "2.1.3" + resolved "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +css-what@^3.2.1: + version "3.3.0" + resolved "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz#10fec696a9ece2e591ac772d759aacabac38cd39" + integrity sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.1.10: + version "4.1.10" + resolved "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.0.3" + resolved "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" + integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ== + dependencies: + css-tree "1.0.0-alpha.39" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" + integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== + dependencies: + ms "^2.1.1" + +debug@^3.1.0, debug@^3.1.1, debug@^3.2.5: + version "3.2.6" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.1.2: + version "1.2.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^3.2.0, decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" + integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== + dependencies: + file-type "^5.2.0" + is-stream "^1.1.0" + tar-stream "^1.5.2" + +decompress-tarbz2@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" + integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== + dependencies: + decompress-tar "^4.1.0" + file-type "^6.1.0" + is-stream "^1.1.0" + seek-bzip "^1.0.5" + unbzip2-stream "^1.0.9" + +decompress-targz@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" + integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== + dependencies: + decompress-tar "^4.1.1" + file-type "^5.2.0" + is-stream "^1.1.0" + +decompress-unzip@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" + integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k= + dependencies: + file-type "^3.8.0" + get-stream "^2.2.0" + pify "^2.3.0" + yauzl "^2.4.2" + +decompress@^4.0.0, decompress@^4.2.0: + version "4.2.1" + resolved "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" + integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== + dependencies: + decompress-tar "^4.0.0" + decompress-tarbz2 "^4.0.0" + decompress-targz "^4.0.0" + decompress-unzip "^4.0.1" + graceful-fs "^4.1.10" + make-dir "^1.0.0" + pify "^2.3.0" + strip-dirs "^2.0.0" + +deep-is@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +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" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-port-alt@1.1.6: + version "1.1.6" + resolved "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +diacritics-map@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz#6dfc0ff9d01000a2edf2865371cac316e94977af" + integrity sha1-bfwP+dAQAKLt8oZTccrDFulJd68= + +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" + +docusaurus@^2.0.0-alpha.61: + version "2.0.0-alpha.63" + resolved "https://registry.npmjs.org/docusaurus/-/docusaurus-2.0.0-alpha.63.tgz#40402d47b18c42b62e93beb78ce06e000cb88312" + integrity sha512-R19pAqcTemJMt7Qykd7ogB2i6R86vbE4/vA/l5/Uuh7xg7ixSKOVZ5M7d9uSoX5jCALOwEyp5iJdleznXUVwAw== + dependencies: + "@babel/core" "^7.9.0" + "@babel/plugin-proposal-class-properties" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.9.0" + "@babel/polyfill" "^7.8.7" + "@babel/preset-env" "^7.9.0" + "@babel/preset-react" "^7.9.4" + "@babel/register" "^7.9.0" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" + autoprefixer "^9.7.5" + babylon "^6.18.0" + chalk "^3.0.0" + classnames "^2.2.6" + commander "^4.0.1" + crowdin-cli "^0.3.0" + cssnano "^4.1.10" + escape-string-regexp "^2.0.0" + express "^4.17.1" + feed "^4.0.0" + fs-extra "^8.1.0" + gaze "^1.1.3" + github-slugger "^1.2.1" + glob "^7.1.6" + highlight.js "^9.16.2" + imagemin "^6.0.0" + imagemin-gifsicle "^6.0.1" + imagemin-jpegtran "^6.0.0" + imagemin-optipng "^6.0.0" + imagemin-svgo "^7.0.0" + lodash "^4.17.15" + markdown-toc "^1.2.0" + mkdirp "^0.5.1" + portfinder "^1.0.25" + postcss "^7.0.23" + prismjs "^1.17.1" + react "^16.8.4" + react-dev-utils "^9.1.0" + react-dom "^16.8.4" + remarkable "^2.0.0" + request "^2.88.0" + shelljs "^0.8.4" + sitemap "^3.2.2" + tcp-port-used "^1.0.1" + tiny-lr "^1.1.1" + tree-node-cli "^1.2.5" + truncate-html "^1.0.3" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" + integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== + dependencies: + is-obj "^2.0.0" + +download@^6.2.2: + version "6.2.5" + resolved "https://registry.npmjs.org/download/-/download-6.2.5.tgz#acd6a542e4cd0bb42ca70cfc98c9e43b07039714" + integrity sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA== + dependencies: + caw "^2.0.0" + content-disposition "^0.5.2" + decompress "^4.0.0" + ext-name "^5.0.0" + file-type "5.2.0" + filenamify "^2.0.0" + get-stream "^3.0.0" + got "^7.0.0" + make-dir "^1.0.0" + p-event "^1.0.0" + pify "^3.0.0" + +download@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/download/-/download-7.1.0.tgz#9059aa9d70b503ee76a132897be6dec8e5587233" + integrity sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ== + dependencies: + archive-type "^4.0.0" + caw "^2.0.1" + content-disposition "^0.5.2" + decompress "^4.2.0" + ext-name "^5.0.0" + file-type "^8.1.0" + filenamify "^2.0.0" + get-stream "^3.0.0" + got "^8.3.1" + make-dir "^1.2.0" + p-event "^2.1.0" + pify "^3.0.0" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.562: + version "1.3.562" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.562.tgz#79c20277ee1c8d0173a22af00e38433b752bc70f" + integrity sha512-WhRe6liQ2q/w1MZc8mD8INkenHivuHdrr4r5EQHNomy3NJux+incP6M6lDMd0paShP3MD0WGe5R1TWmEClf+Bg== + +"emoji-regex@>=6.0.0 <=6.1.1": + version "6.1.1" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" + integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= + +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= + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +entities@^1.1.1, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" + integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error@^7.0.0: + version "7.2.1" + resolved "https://registry.npmjs.org/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" + integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== + dependencies: + string-template "~0.2.1" + +es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: + version "1.17.6" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" + integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.0" + is-regex "^1.1.0" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +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" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escalade@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4" + integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" + +exec-buffer@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz#b1686dbd904c7cf982e652c1f5a79b1e5573082b" + integrity sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA== + dependencies: + execa "^0.7.0" + p-finally "^1.0.0" + pify "^3.0.0" + rimraf "^2.5.4" + tempfile "^2.0.0" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +executable@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" + integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== + dependencies: + pify "^2.2.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= + dependencies: + fill-range "^2.1.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== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext-list@^2.0.0: + version "2.2.2" + resolved "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" + integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== + dependencies: + mime-db "^1.28.0" + +ext-name@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" + integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== + dependencies: + ext-list "^2.0.0" + sort-keys-length "^1.0.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "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: + version "2.2.7" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +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: + 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== + dependencies: + websocket-driver ">=0.5.1" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +feed@^4.0.0: + version "4.2.1" + resolved "https://registry.npmjs.org/feed/-/feed-4.2.1.tgz#b246ef891051c7dbf088ca203341d9fb0444baee" + integrity sha512-l28KKcK1J/u3iq5dRDmmoB2p7dtBfACC2NqJh4dI2kFptxH0asfjmOfcxqh5Sv8suAlVa73gZJ4REY5RrafVvg== + dependencies: + xml-js "^1.6.11" + +figures@^1.3.5: + version "1.7.0" + resolved "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +file-type@5.2.0, file-type@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" + integrity sha1-LdvqfHP/42No365J3DOMBYwritY= + +file-type@^10.4.0, file-type@^10.7.0: + version "10.11.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz#2961d09e4675b9fb9a3ee6b69e9cd23f43fd1890" + integrity sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw== + +file-type@^3.8.0: + version "3.9.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= + +file-type@^4.2.0: + version "4.4.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" + integrity sha1-G2AOX8ofvcboDApwxxyNul95BsU= + +file-type@^6.1.0: + version "6.2.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" + integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== + +file-type@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz#244f3b7ef641bbe0cca196c7276e4b332399f68c" + integrity sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ== + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" + integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= + +filenamify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz#88faf495fb1b47abfd612300002a16228c677ee9" + integrity sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA== + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.0" + trim-repeated "^1.0.0" + +filesize@3.6.1: + version "3.6.1" + resolved "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-up@3.0.0, find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-versions@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" + integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== + dependencies: + semver-regex "^2.0.0" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +forever-agent@~0.6.1: + version "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@1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz#ce1d77190b44d81a761b10b6284a373795e41f0c" + integrity sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA== + dependencies: + babel-code-frame "^6.22.0" + chalk "^2.4.1" + chokidar "^2.0.4" + micromatch "^3.1.10" + minimatch "^3.0.4" + semver "^5.6.0" + tapable "^1.0.0" + worker-rpc "^0.1.0" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.1: + version "2.3.0" + resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gaze@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== + dependencies: + globule "^1.0.0" + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + +get-proxy@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93" + integrity sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw== + dependencies: + npm-conf "^1.1.0" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stream@3.0.0, get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^2.2.0: + version "2.3.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" + integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +gifsicle@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/gifsicle/-/gifsicle-4.0.1.tgz#30e1e61e3ee4884ef702641b2e98a15c2127b2e2" + integrity sha512-A/kiCLfDdV+ERV/UB+2O41mifd+RxH8jlRG8DMxZO84Bma/Fw0htqZ+hY2iaalLRNyUu7tYZQslqUBJxBggxbg== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.0" + execa "^1.0.0" + logalot "^2.0.0" + +github-slugger@^1.2.1: + version "1.3.0" + resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" + integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== + dependencies: + emoji-regex ">=6.0.0 <=6.1.1" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= + +glob@^7.0.0, glob@^7.0.5, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6, glob@~7.1.1: + version "7.1.6" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globby@8.0.2, globby@^8.0.1: + 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" + +globule@^1.0.0: + version "1.3.2" + resolved "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4" + integrity sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA== + dependencies: + glob "~7.1.1" + lodash "~4.17.10" + minimatch "~3.0.2" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= + dependencies: + delegate "^3.1.2" + +got@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" + integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== + dependencies: + decompress-response "^3.2.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-plain-obj "^1.1.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^1.1.1" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + url-parse-lax "^1.0.0" + url-to-options "^1.0.1" + +got@^8.3.1: + version "8.3.2" + resolved "https://registry.npmjs.org/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" + integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== + dependencies: + "@sindresorhus/is" "^0.7.0" + cacheable-request "^2.1.1" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + into-stream "^3.1.0" + is-retry-allowed "^1.1.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + mimic-response "^1.0.0" + p-cancelable "^0.4.0" + p-timeout "^2.0.1" + pify "^3.0.0" + safe-buffer "^5.1.1" + timed-out "^4.0.1" + url-parse-lax "^3.0.0" + url-to-options "^1.0.1" + +graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.4" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + +gray-matter@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-2.1.1.tgz#3042d9adec2a1ded6a7707a9ed2380f8a17a430e" + integrity sha1-MELZrewqHe1qdwep7SOA+KF6Qw4= + dependencies: + ansi-red "^0.1.1" + coffee-script "^1.12.4" + extend-shallow "^2.0.1" + js-yaml "^3.8.1" + toml "^2.3.2" + +gulp-header@^1.7.1: + version "1.8.12" + resolved "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84" + integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ== + dependencies: + concat-with-sourcemaps "*" + lodash.template "^4.4.0" + through2 "^2.0.0" + +gzip-size@5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + dependencies: + has-symbol-support-x "^1.4.1" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +highlight.js@^9.16.2: + version "9.18.3" + resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.3.tgz#a1a0a2028d5e3149e2380f8a865ee8516703d634" + integrity sha512-zBZAmhSupHIl5sITeMqIJnYCDfAEc3Gdkqj65wC1lpI468MMQeeQkhcIAvk+RylAkxrCcI9xy9piHiXeQ1BdzQ== + +hosted-git-info@^2.1.4: + version "2.8.8" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0, html-comment-regex@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +htmlparser2@^3.9.1: + version "3.10.1" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +http-cache-semantics@3.8.1: + version "3.8.1" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-parser-js@>=0.5.1: + version "0.5.2" + resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz#da2e31d237b393aae72ace43882dd7e270a8ff77" + integrity sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ== + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +ignore@^3.3.5: + version "3.3.10" + resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +imagemin-gifsicle@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-6.0.1.tgz#6abad4e95566d52e5a104aba1c24b4f3b48581b3" + integrity sha512-kuu47c6iKDQ6R9J10xCwL0lgs0+sMz3LRHqRcJ2CRBWdcNmo3T5hUaM8hSZfksptZXJLGKk8heSAvwtSdB1Fng== + dependencies: + exec-buffer "^3.0.0" + gifsicle "^4.0.0" + is-gif "^3.0.0" + +imagemin-jpegtran@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-6.0.0.tgz#c8d3bcfb6ec9c561c20a987142854be70d90b04f" + integrity sha512-Ih+NgThzqYfEWv9t58EItncaaXIHR0u9RuhKa8CtVBlMBvY0dCIxgQJQCfwImA4AV1PMfmUKlkyIHJjb7V4z1g== + dependencies: + exec-buffer "^3.0.0" + is-jpg "^2.0.0" + jpegtran-bin "^4.0.0" + +imagemin-optipng@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-6.0.0.tgz#a6bfc7b542fc08fc687e83dfb131249179a51a68" + integrity sha512-FoD2sMXvmoNm/zKPOWdhKpWdFdF9qiJmKC17MxZJPH42VMAp17/QENI/lIuP7LCUnLVAloO3AUoTSNzfhpyd8A== + dependencies: + exec-buffer "^3.0.0" + is-png "^1.0.0" + optipng-bin "^5.0.0" + +imagemin-svgo@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-7.1.0.tgz#528a42fd3d55eff5d4af8fd1113f25fb61ad6d9a" + integrity sha512-0JlIZNWP0Luasn1HT82uB9nU9aa+vUj6kpT+MjPW11LbprXC+iC4HDwn1r4Q2/91qj4iy9tRZNsFySMlEpLdpg== + dependencies: + is-svg "^4.2.1" + svgo "^1.3.2" + +imagemin@^6.0.0: + version "6.1.0" + resolved "https://registry.npmjs.org/imagemin/-/imagemin-6.1.0.tgz#62508b465728fea36c03cdc07d915fe2d8cf9e13" + integrity sha512-8ryJBL1CN5uSHpiBMX0rJw79C9F9aJqMnjGnrd/1CafegpNuA81RBAAru/jQQEOWlOJJlpRnlcVFF6wq+Ist0A== + dependencies: + file-type "^10.7.0" + globby "^8.0.1" + make-dir "^1.0.0" + p-pipe "^1.1.0" + pify "^4.0.1" + replace-ext "^1.0.0" + +immer@1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" + integrity sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg== + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-lazy@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz#891279202c8a2280fdbd6674dbd8da1a1dfc67cc" + integrity sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ== + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + dependencies: + repeating "^2.0.0" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, 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== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4, ini@^1.3.5: + version "1.3.5" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +inquirer@6.5.0: + version "6.5.0" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42" + integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +into-stream@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" + integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= + dependencies: + from2 "^2.1.1" + p-is-promise "^1.1.0" + +invariant@^2.2.2, invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +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== + +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" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" + integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +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" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-gif@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-gif/-/is-gif-3.0.0.tgz#c4be60b26a301d695bb833b20d9b5d66c6cf83b1" + integrity sha512-IqJ/jlbw5WJSNfwQ/lHEDXF8rxhRgF6ythk2oiEvhpG29F704eX9NO6TvPfMiq9DrbwgcEDnETYNcZDPewQoVw== + dependencies: + file-type "^10.4.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-jpg@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz#2e1997fa6e9166eaac0242daae443403e4ef1d97" + integrity sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc= + +is-natural-number@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" + integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg= + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-object@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" + integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-png@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz#d574b12bf275c0350455570b0e5b57ab062077ce" + integrity sha1-1XSxK/J1wDUEVVcLDltXqwYgd84= + +is-regex@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== + dependencies: + has-symbols "^1.0.1" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-root@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + +is-stream@^1.0.0, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + dependencies: + html-comment-regex "^1.1.0" + +is-svg@^4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/is-svg/-/is-svg-4.2.1.tgz#095b496e345fec9211c2a7d5d021003e040d6f81" + integrity sha512-PHx3ANecKsKNl5y5+Jvt53Y4J7MfMpbNZkv384QNiswMKAWIbvcqbPz+sYbFKJI8Xv3be01GSFniPmoaP+Ai5A== + dependencies: + html-comment-regex "^1.1.2" + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-url@^1.2.2: + version "1.2.4" + resolved "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is2@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/is2/-/is2-2.0.1.tgz#8ac355644840921ce435d94f05d3a94634d3481a" + integrity sha512-+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA== + dependencies: + deep-is "^0.1.3" + ip-regex "^2.1.0" + is-url "^1.2.2" + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + +jpegtran-bin@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-4.0.0.tgz#d00aed809fba7aa6f30817e59eee4ddf198f8f10" + integrity sha512-2cRl1ism+wJUoYAYFt6O/rLBfpXNWG2dUWbgcEkTt5WGMnqI46eEro8T4C5zGROxKRqyKpCBSdHPvt5UYCtxaQ== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.0" + logalot "^2.0.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + 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.1, js-yaml@^3.14.0, js-yaml@^3.8.1: + version "3.14.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json3@^3.3.2: + 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" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.1.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +keyv@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" + integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== + dependencies: + json-buffer "3.0.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +lazy-cache@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264" + integrity sha1-uRkKT5EzVGlIQIWfio9whNiCImQ= + dependencies: + set-getter "^0.1.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levenary@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" + integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== + dependencies: + leven "^3.1.0" + +list-item@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/list-item/-/list-item-1.1.1.tgz#0c65d00e287cb663ccb3cb3849a77e89ec268a56" + integrity sha1-DGXQDih8tmPMs8s4Sad+iewmilY= + dependencies: + expand-range "^1.8.1" + extend-shallow "^2.0.1" + is-number "^2.1.0" + repeat-string "^1.5.2" + +livereload-js@^2.3.0: + version "2.4.0" + resolved "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" + integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw== + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +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" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + +lodash.assignin@^4.0.9: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= + +lodash.bind@^4.1.4: + version "4.2.1" + resolved "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" + integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= + +lodash.chunk@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc" + integrity sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw= + +lodash.defaults@^4.0.1: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + +lodash.filter@^4.4.0: + version "4.6.0" + resolved "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= + +lodash.flatten@^4.2.0: + version "4.4.0" + resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + +lodash.foreach@^4.3.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= + +lodash.map@^4.4.0: + version "4.6.0" + resolved "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.merge@^4.4.0: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.padstart@^4.6.1: + version "4.6.1" + resolved "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" + integrity sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs= + +lodash.pick@^4.2.1: + version "4.4.0" + resolved "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + +lodash.reduce@^4.4.0: + version "4.6.0" + resolved "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" + integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= + +lodash.reject@^4.4.0: + version "4.6.0" + resolved "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" + integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= + +lodash.some@^4.4.0: + version "4.6.0" + resolved "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.template@^4.4.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.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= + +lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@~4.17.10: + version "4.17.20" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + +logalot@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552" + integrity sha1-X46MkNME7fElMJUaVVSruMXj9VI= + dependencies: + figures "^1.3.5" + squeak "^1.0.0" + +longest@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lowercase-keys@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= + +lowercase-keys@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lpad-align@^1.0.1: + version "1.1.2" + resolved "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz#21f600ac1c3095c3c6e497ee67271ee08481fe9e" + integrity sha1-IfYArBwwlcPG5JfuZyce4ISB/p4= + dependencies: + get-stdin "^4.0.1" + indent-string "^2.1.0" + longest "^1.0.0" + meow "^3.3.0" + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-dir@^1.0.0, make-dir@^1.2.0: + version "1.3.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +markdown-link@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz#32c5c65199a6457316322d1e4229d13407c8c7cf" + integrity sha1-MsXGUZmmRXMWMi0eQinRNAfIx88= + +markdown-toc@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/markdown-toc/-/markdown-toc-1.2.0.tgz#44a15606844490314afc0444483f9e7b1122c339" + integrity sha512-eOsq7EGd3asV0oBfmyqngeEIhrbkc7XVP63OwcJBIhH2EpG2PzFcbZdhy1jutXSlRBBVMNXHvMtSr5LAxSUvUg== + dependencies: + concat-stream "^1.5.2" + diacritics-map "^0.1.0" + gray-matter "^2.1.0" + lazy-cache "^2.0.2" + list-item "^1.1.1" + markdown-link "^0.1.1" + minimist "^1.2.0" + mixin-deep "^1.1.3" + object.pick "^1.2.0" + remarkable "^1.7.1" + repeat-string "^1.6.1" + strip-color "^0.1.0" + +math-random@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +mdn-data@2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" + integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +meow@^3.3.0: + version "3.7.0" + resolved "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge2@^1.2.3: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +microevent.ts@~0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" + integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +mime-db@1.44.0, mime-db@^1.28.0: + version "1.44.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== + +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.27" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== + dependencies: + mime-db "1.44.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2: + version "3.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mixin-deep@^1.1.3, mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +nan@^2.12.1: + version "2.14.1" + resolved "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-releases@^1.1.29, node-releases@^1.1.60: + version "1.1.60" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" + integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.5.0" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" + integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== + dependencies: + prepend-http "^2.0.0" + query-string "^5.0.1" + sort-keys "^2.0.0" + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +npm-conf@^1.1.0: + version "1.1.3" + resolved "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" + integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +nth-check@^1.0.2, nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.7.0: + version "1.8.0" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.getownpropertydescriptors@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +object.pick@^1.2.0, object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +open@^6.3.0: + version "6.4.0" + resolved "https://registry.npmjs.org/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" + integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== + dependencies: + is-wsl "^1.1.0" + +optipng-bin@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/optipng-bin/-/optipng-bin-5.1.0.tgz#a7c7ab600a3ab5a177dae2f94c2d800aa386b5a9" + integrity sha512-9baoqZTNNmXQjq/PQTWEXbVV3AMO2sI/GaaqZJZ8SExfAzjijeAP7FEeT+TtyumSw7gr0PZtSUYB/Ke7iHQVKA== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.0" + logalot "^2.0.0" + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +os-filter-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz#1c0b62d5f3a2442749a2d139e6dddee6e81d8d16" + integrity sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg== + dependencies: + arch "^2.1.0" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== + +p-cancelable@^0.4.0: + version "0.4.1" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" + integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== + +p-event@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz#8e6b4f4f65c72bc5b6fe28b75eda874f96a4a085" + integrity sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU= + dependencies: + p-timeout "^1.1.1" + +p-event@^2.1.0: + version "2.3.1" + resolved "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz#596279ef169ab2c3e0cae88c1cfbb08079993ef6" + integrity sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA== + dependencies: + p-timeout "^2.0.1" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-is-promise@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-map-series@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" + integrity sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco= + dependencies: + p-reduce "^1.0.0" + +p-pipe@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9" + integrity sha1-SxoROZoRUgpneQ7loMHViB1r7+k= + +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= + +p-timeout@^1.1.1: + version "1.2.1" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" + integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= + dependencies: + p-finally "^1.0.0" + +p-timeout@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" + integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pirates@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-up@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + +portfinder@^1.0.25: + version "1.0.28" + resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-calc@^7.0.1: + version "7.0.4" + resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.4.tgz#5e177ddb417341e6d4a193c5d9fd8ada79094f8b" + integrity sha512-0I79VRAd1UTkaHzY9w83P39YGO/M3bG7/tNLrHGEunBolfoGM0hSjrGvjoeaj0JE/zIw5GsI2KZ0UwDJqv5hjw== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0: + version "3.3.1" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.23, postcss@^7.0.27, postcss@^7.0.32: + version "7.0.32" + resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" + integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +prepend-http@^1.0.1: + 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" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +prismjs@^1.17.1: + version "1.21.0" + resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz#36c086ec36b45319ec4218ee164c110f9fc015a3" + integrity sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw== + optionalDependencies: + clipboard "^2.0.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +prop-types@^15.6.2: + version "15.7.2" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@^6.4.0: + version "6.9.4" + resolved "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" + integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== + +qs@~6.5.2: + version "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@^5.0.1: + version "5.1.1" + resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@~1.1.0: + version "1.1.7" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" + integrity sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU= + dependencies: + bytes "1" + string_decoder "0.10" + +react-dev-utils@^9.1.0: + version "9.1.0" + resolved "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.1.0.tgz#3ad2bb8848a32319d760d0a84c56c14bdaae5e81" + integrity sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg== + dependencies: + "@babel/code-frame" "7.5.5" + address "1.1.2" + browserslist "4.7.0" + chalk "2.4.2" + cross-spawn "6.0.5" + detect-port-alt "1.1.6" + escape-string-regexp "1.0.5" + filesize "3.6.1" + find-up "3.0.0" + fork-ts-checker-webpack-plugin "1.5.0" + global-modules "2.0.0" + globby "8.0.2" + gzip-size "5.1.1" + immer "1.10.0" + inquirer "6.5.0" + is-root "2.1.0" + loader-utils "1.2.3" + open "^6.3.0" + pkg-up "2.0.0" + react-error-overlay "^6.0.3" + recursive-readdir "2.2.2" + shell-quote "1.7.2" + sockjs-client "1.4.0" + strip-ansi "5.2.0" + text-table "0.2.0" + +react-dom@^16.8.4: + version "16.13.1" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" + integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.19.1" + +react-error-overlay@^6.0.3: + version "6.0.7" + resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz#1dcfb459ab671d53f660a991513cb2f0a0553108" + integrity sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA== + +react-is@^16.8.1: + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react@^16.8.4: + version "16.13.1" + resolved "https://registry.npmjs.org/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" + integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.1.1: + version "3.6.0" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +recursive-readdir@2.2.2: + version "2.2.2" + resolved "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" + integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== + dependencies: + minimatch "3.0.4" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.1" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" + integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== + +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpu-core@^4.7.0: + version "4.7.0" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== + dependencies: + jsesc "~0.5.0" + +remarkable@^1.7.1: + version "1.7.4" + resolved "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00" + integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg== + dependencies: + argparse "^1.0.10" + autolinker "~0.28.0" + +remarkable@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/remarkable/-/remarkable-2.0.1.tgz#280ae6627384dfb13d98ee3995627ca550a12f31" + integrity sha512-YJyMcOH5lrR+kZdmB0aJJ4+93bEojRZ1HGDn9Eagu6ibg7aVZhc3OWbbShRid+Q5eAfsEqWxpe+g5W5nYNfNiA== + dependencies: + argparse "^1.0.10" + autolinker "^3.11.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +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.5.2, 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= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +replace-ext@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" + integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== + +request@^2.53.0, request@^2.88.0: + version "2.88.2" + resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-url@^0.2.1: + version "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.3.2: + version "1.17.0" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + +responselike@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@^2.5.4: + version "2.7.1" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +run-async@^2.2.0: + version "2.4.1" + resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +rxjs@^6.4.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" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-json-parse@~1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" + integrity sha1-PnZyPjjf3aE8mx0poeB//uSzC1c= + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +scheduler@^0.19.1: + version "0.19.1" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" + integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +seek-bzip@^1.0.5: + version "1.0.6" + resolved "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" + integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== + dependencies: + commander "^2.8.1" + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= + +semver-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" + integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== + +semver-truncate@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8" + integrity sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g= + dependencies: + semver "^5.3.0" + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-getter@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376" + integrity sha1-12nBgsnVpR9AkUXy+6guXoboA3Y= + dependencies: + to-object-path "^0.3.0" + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shell-quote@1.7.2: + version "1.7.2" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + +shelljs@^0.8.4: + version "0.8.4" + resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" + integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +sitemap@^3.2.2: + version "3.2.2" + resolved "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz#3f77c358fa97b555c879e457098e39910095c62b" + integrity sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg== + dependencies: + lodash.chunk "^4.2.0" + lodash.padstart "^4.6.1" + whatwg-url "^7.0.0" + xmlbuilder "^13.0.0" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + 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== + dependencies: + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" + +sort-keys-length@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" + integrity sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg= + dependencies: + sort-keys "^1.0.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" + integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= + dependencies: + is-plain-obj "^1.0.0" + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.16: + 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== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@^0.5.0, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +squeak@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz#33045037b64388b567674b84322a6521073916c3" + integrity sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM= + dependencies: + chalk "^1.0.0" + console-stream "^0.1.1" + lpad-align "^1.0.1" + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +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= + +string-template@~0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" + integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= + +string-width@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string.prototype.trimend@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimstart@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string_decoder@0.10: + version "0.10.31" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.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== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.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" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-color@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/strip-color/-/strip-color-0.1.0.tgz#106f65d3d3e6a2d9401cac0eb0ce8b8a702b4f7b" + integrity sha1-EG9l09PmotlAHKwOsM6LinArT3s= + +strip-dirs@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" + integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== + dependencies: + is-natural-number "^4.0.1" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + dependencies: + get-stdin "^4.0.1" + +strip-outer@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +svgo@^1.0.0, svgo@^1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +tapable@^1.0.0: + version "1.1.3" + resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tar-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + +tcp-port-used@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.1.tgz#46061078e2d38c73979a2c2c12b5a674e6689d70" + integrity sha512-rwi5xJeU6utXoEIiMvVBMc9eJ2/ofzB+7nLOdnZuFTmNCLqRiQh2sMG9MqCxHU/69VC/Fwp5dV9306Qd54ll1Q== + dependencies: + debug "4.1.0" + is2 "2.0.1" + +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= + +tempfile@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265" + integrity sha1-awRGhWqbERTRhW/8vlCczLCXcmU= + dependencies: + temp-dir "^1.0.0" + uuid "^3.0.1" + +text-table@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@^2.3.6, through@^2.3.8: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tiny-lr@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" + integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA== + dependencies: + body "^5.1.0" + debug "^3.1.0" + faye-websocket "~0.10.0" + livereload-js "^2.3.0" + object-assign "^4.1.0" + qs "^6.4.0" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +toml@^2.3.2: + version "2.3.6" + resolved "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz#25b0866483a9722474895559088b436fd11f861b" + integrity sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ== + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +tree-node-cli@^1.2.5: + version "1.4.0" + resolved "https://registry.npmjs.org/tree-node-cli/-/tree-node-cli-1.4.0.tgz#8f4028554610d6ee1cdeb98554a60841a3cfa3ac" + integrity sha512-hBc/cp7rTSHFSFvaTzmHNYyJv87UJBsxsfCoq2DtDQuMES4vhnLuvXZit/asGtZG8edWTCydWeFWoBz9LYkJdQ== + dependencies: + commander "^5.0.0" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= + dependencies: + escape-string-regexp "^1.0.2" + +truncate-html@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/truncate-html/-/truncate-html-1.0.3.tgz#0166dfc7890626130c2e4174c6b73d4d63993e5f" + integrity sha512-1o1prdRv+iehXcGwn29YgXU17DotHkr+OK3ijVEG7FGMwHNG9RyobXwimw6djDvbIc24rhmz3tjNNvNESjkNkQ== + dependencies: + "@types/cheerio" "^0.22.8" + cheerio "0.22.0" + +tslib@^1.9.0, tslib@^1.9.3: + version "1.13.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +unbzip2-stream@^1.0.9: + version "1.4.3" + resolved "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +uri-js@^4.2.2: + version "4.4.0" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url-parse@^1.4.3: + version "1.4.7" + resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.0.1, uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +websocket-driver@>=0.5.1: + 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" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= + +worker-rpc@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" + integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== + dependencies: + microevent.ts "~0.1.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +xml-js@^1.6.11: + version "1.6.11" + resolved "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== + dependencies: + sax "^1.2.4" + +xmlbuilder@^13.0.0: + version "13.0.2" + resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz#02ae33614b6a047d1c32b5389c1fdacb2bce47a7" + integrity sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ== + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yamljs@^0.2.1: + version "0.2.10" + resolved "https://registry.npmjs.org/yamljs/-/yamljs-0.2.10.tgz#481cc7c25ca73af59f591f0c96e3ce56c757a40f" + integrity sha1-SBzHwlynOvWfWR8MluPOVsdXpA8= + dependencies: + argparse "^1.0.7" + glob "^7.0.5" + +yargs@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-2.3.0.tgz#e900c87250ec5cd080db6009fe3dd63156f1d7fb" + integrity sha1-6QDIclDsXNCA22AJ/j3WMVbx1/s= + dependencies: + wordwrap "0.0.2" + +yauzl@^2.4.2: + version "2.10.0" + resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" diff --git a/package.json b/package.json index e6ee961701..5645d913eb 100644 --- a/package.json +++ b/package.json @@ -30,8 +30,7 @@ "workspaces": { "packages": [ "packages/*", - "plugins/*", - "microsite" + "plugins/*" ] }, "version": "1.0.0", diff --git a/yarn.lock b/yarn.lock index 5b0bec8005..1853f23f7f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -396,7 +396,7 @@ "@babel/helper-remap-async-to-generator" "^7.10.4" "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.7.0", "@babel/plugin-proposal-class-properties@^7.8.3": +"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.7.0": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg== @@ -452,7 +452,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.11.0", "@babel/plugin-proposal-object-rest-spread@^7.6.2", "@babel/plugin-proposal-object-rest-spread@^7.9.0": +"@babel/plugin-proposal-object-rest-spread@^7.11.0", "@babel/plugin-proposal-object-rest-spread@^7.6.2": version "7.11.0" resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== @@ -922,15 +922,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/polyfill@^7.8.7": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.10.4.tgz#915e5bfe61490ac0199008e35ca9d7d151a8e45a" - integrity sha512-8BYcnVqQ5kMD2HXoHInBH7H1b/uP3KdnwCYXOqFnXqguOyuu443WXusbIUbWEfY3Z0Txk0M1uG/8YuAMhNl6zg== - dependencies: - core-js "^2.6.5" - regenerator-runtime "^0.13.4" - -"@babel/preset-env@^7.4.5", "@babel/preset-env@^7.9.0", "@babel/preset-env@^7.9.5": +"@babel/preset-env@^7.4.5", "@babel/preset-env@^7.9.5": version "7.11.0" resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796" integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg== @@ -1036,17 +1028,6 @@ "@babel/plugin-transform-react-jsx-source" "^7.10.4" "@babel/plugin-transform-react-pure-annotations" "^7.10.4" -"@babel/register@^7.9.0": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/register/-/register-7.10.5.tgz#354f3574895f1307f79efe37a51525e52fd38d89" - integrity sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw== - dependencies: - find-cache-dir "^2.0.0" - lodash "^4.17.19" - make-dir "^2.1.0" - pirates "^4.0.0" - source-map-support "^0.5.16" - "@babel/runtime-corejs2@^7.10.4", "@babel/runtime-corejs2@^7.8.7": version "7.11.2" resolved "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.11.2.tgz#700a03945ebad0d31ba6690fc8a6bcc9040faa47" @@ -1079,7 +1060,7 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0", "@babel/traverse@^7.7.4", "@babel/traverse@^7.9.0": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0", "@babel/traverse@^7.7.4": version "7.11.0" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== @@ -1094,7 +1075,7 @@ globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.9.0", "@babel/types@^7.9.5": +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.9.5": version "7.11.0" resolved "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== @@ -2936,11 +2917,6 @@ resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== -"@sindresorhus/is@^0.7.0": - version "0.7.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" - integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== - "@sindresorhus/is@^2.0.0": version "2.1.1" resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" @@ -4047,13 +4023,6 @@ "@types/node" "*" "@types/responselike" "*" -"@types/cheerio@^0.22.8": - version "0.22.21" - resolved "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.21.tgz#5e37887de309ba11b2e19a6e14cad7874b31a8a3" - integrity sha512-aGI3DfswwqgKPiEOTaiHV2ZPC9KEhprpgEbJnv0fZl3SGX0cGgEva1126dGrMC6AJM6v/aihlUgJn9M5DbDZ/Q== - dependencies: - "@types/node" "*" - "@types/classnames@^2.2.9": version "2.2.10" resolved "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.10.tgz#cc658ca319b6355399efc1f5b9e818f1a24bf999" @@ -5447,13 +5416,6 @@ ansi-html@0.0.7: resolved "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= -ansi-red@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" - integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= - dependencies: - ansi-wrap "0.1.0" - ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -5501,11 +5463,6 @@ ansi-to-html@^0.6.11: dependencies: entities "^1.1.2" -ansi-wrap@0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" - integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= - any-observable@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" @@ -5728,18 +5685,11 @@ aproba@^2.0.0: resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== -arch@^2.1.0, arch@^2.1.2: +arch@^2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/arch/-/arch-2.1.2.tgz#0c52bbe7344bb4fa260c443d2cbad9c00ff2f0bf" integrity sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ== -archive-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70" - integrity sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA= - dependencies: - file-type "^4.2.0" - are-we-there-yet@~1.1.2: version "1.1.5" resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" @@ -6014,14 +5964,7 @@ autolinker@^3.11.0: dependencies: tslib "^1.9.3" -autolinker@~0.28.0: - version "0.28.1" - resolved "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47" - integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc= - dependencies: - gulp-header "^1.7.1" - -autoprefixer@^9.7.2, autoprefixer@^9.7.5: +autoprefixer@^9.7.2: version "9.8.6" resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== @@ -6395,11 +6338,6 @@ babel-runtime@6.26.0, babel-runtime@^6.26.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - backo2@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" @@ -6487,54 +6425,6 @@ big.js@^5.2.2: resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -bin-build@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz#c5780a25a8a9f966d8244217e6c1f5082a143861" - integrity sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA== - dependencies: - decompress "^4.0.0" - download "^6.2.2" - execa "^0.7.0" - p-map-series "^1.0.0" - tempfile "^2.0.0" - -bin-check@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz#fc495970bdc88bb1d5a35fc17e65c4a149fc4a49" - integrity sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA== - dependencies: - execa "^0.7.0" - executable "^4.1.0" - -bin-version-check@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz#7d819c62496991f80d893e6e02a3032361608f71" - integrity sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ== - dependencies: - bin-version "^3.0.0" - semver "^5.6.0" - semver-truncate "^1.1.2" - -bin-version@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz#5b09eb280752b1bd28f0c9db3f96f2f43b6c0839" - integrity sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ== - dependencies: - execa "^1.0.0" - find-versions "^3.0.0" - -bin-wrapper@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz#99348f2cf85031e3ef7efce7e5300aeaae960605" - integrity sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q== - dependencies: - bin-check "^4.1.0" - bin-version-check "^4.0.0" - download "^7.1.0" - import-lazy "^3.1.0" - os-filter-obj "^2.0.0" - pify "^4.0.1" - binary-extensions@^1.0.0: version "1.13.1" resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" @@ -6600,16 +6490,6 @@ body-parser@1.19.0, body-parser@^1.18.3: raw-body "2.4.0" type-is "~1.6.17" -body@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" - integrity sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk= - dependencies: - continuable-cache "^0.3.1" - error "^7.0.0" - raw-body "~1.1.0" - safe-json-parse "~1.0.1" - bonjour@^3.5.0: version "3.5.0" resolved "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" @@ -6856,7 +6736,7 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: +buffer@^5.5.0, buffer@^5.6.0: version "5.6.0" resolved "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== @@ -6896,11 +6776,6 @@ byte-size@^5.0.1: resolved "https://registry.npmjs.org/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== -bytes@1: - version "1.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" - integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= - bytes@3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -6984,19 +6859,6 @@ cacheable-lookup@^5.0.3: resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz#049fdc59dffdd4fc285e8f4f82936591bd59fec3" integrity sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w== -cacheable-request@^2.1.1: - version "2.1.4" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" - integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= - dependencies: - clone-response "1.0.2" - get-stream "3.0.0" - http-cache-semantics "3.8.1" - keyv "3.0.0" - lowercase-keys "1.0.0" - normalize-url "2.0.1" - responselike "1.0.2" - cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" @@ -7172,16 +7034,6 @@ caseless@~0.12.0: resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -caw@^2.0.0, caw@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95" - integrity sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA== - dependencies: - get-proxy "^2.0.0" - isurl "^1.0.0-alpha5" - tunnel-agent "^0.6.0" - url-to-options "^1.0.1" - chalk@2.4.2, chalk@^2.0.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -7253,28 +7105,6 @@ check-types@^11.1.1: resolved "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f" integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== -cheerio@0.22.0: - version "0.22.0" - resolved "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" - integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= - dependencies: - css-select "~1.2.0" - dom-serializer "~0.1.0" - entities "~1.1.1" - htmlparser2 "^3.9.1" - lodash.assignin "^4.0.9" - lodash.bind "^4.1.4" - lodash.defaults "^4.0.1" - lodash.filter "^4.4.0" - lodash.flatten "^4.2.0" - lodash.foreach "^4.3.0" - lodash.map "^4.4.0" - lodash.merge "^4.4.0" - lodash.pick "^4.2.1" - lodash.reduce "^4.4.0" - lodash.reject "^4.4.0" - lodash.some "^4.4.0" - chokidar@^2.0.4, chokidar@^2.1.8: version "2.1.8" resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" @@ -7496,7 +7326,7 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" -clone-response@1.0.2, clone-response@^1.0.2: +clone-response@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= @@ -7550,11 +7380,6 @@ codemirror@^5.52.2: resolved "https://registry.npmjs.org/codemirror/-/codemirror-5.53.2.tgz#9799121cf8c50809cca487304e9de3a74d33f428" integrity sha512-wvSQKS4E+P8Fxn/AQ+tQtJnF1qH5UOlxtugFLpubEZ5jcdH2iXTVinb+Xc/4QjshuOxRm4fUsU2QPF1JJKiyXA== -coffee-script@^1.12.4: - version "1.12.7" - resolved "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz#c05dae0cb79591d05b3070a8433a98c9a89ccc53" - integrity sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw== - 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" @@ -7669,7 +7494,7 @@ command-exists-promise@^2.0.2: resolved "https://registry.npmjs.org/command-exists-promise/-/command-exists-promise-2.0.2.tgz#7beecc4b218299f3c61fa69a4047aa0b36a64a99" integrity sha512-T6PB6vdFrwnHXg/I0kivM3DqaCGZLjjYSOe0a5WgFKcz1sOnmOeIjnhQPXVXX3QjVbLyTJ85lJkX6lUpukTzaA== -commander@^2.11.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3, commander@^2.8.1, commander@~2.20.3: +commander@^2.11.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3, commander@~2.20.3: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -7761,7 +7586,7 @@ concat-map@0.0.1: resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.2: +concat-stream@^1.5.0, concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -7781,7 +7606,7 @@ concat-stream@^2.0.0: readable-stream "^3.0.2" typedarray "^0.0.6" -concat-with-sourcemaps@*, concat-with-sourcemaps@^1.1.0: +concat-with-sourcemaps@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== @@ -7838,11 +7663,6 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= -console-stream@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44" - integrity sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ= - constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -7863,7 +7683,7 @@ content-disposition@0.5.2: resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= -content-disposition@0.5.3, content-disposition@^0.5.2: +content-disposition@0.5.3: version "0.5.3" resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== @@ -7875,11 +7695,6 @@ content-type@~1.0.4: resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -continuable-cache@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" - integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8= - conventional-changelog-angular@^5.0.3: version "5.0.6" resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.6.tgz#269540c624553aded809c29a3508fdc2b544c059" @@ -8160,15 +7975,6 @@ cross-spawn@7.0.1: shebang-command "^2.0.0" which "^2.0.1" -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -8178,15 +7984,6 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" -crowdin-cli@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/crowdin-cli/-/crowdin-cli-0.3.0.tgz#eac9989a6fe7feaaf33090397afc187c67b46191" - integrity sha1-6smYmm/n/qrzMJA5evwYfGe0YZE= - dependencies: - request "^2.53.0" - yamljs "^0.2.1" - yargs "^2.3.0" - crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -8280,7 +8077,7 @@ css-select-base-adapter@^0.1.1: resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== -css-select@^1.1.0, css-select@~1.2.0: +css-select@^1.1.0: version "1.2.0" resolved "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= @@ -8642,13 +8439,6 @@ debug@3.1.0, debug@=3.1.0: dependencies: ms "2.0.0" -debug@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" - integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== - dependencies: - ms "^2.1.1" - debug@4.1.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" @@ -8691,7 +8481,7 @@ decode-uri-component@^0.2.0: resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -decompress-response@^3.2.0, decompress-response@^3.3.0: +decompress-response@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= @@ -8719,59 +8509,6 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" -decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" - integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== - dependencies: - file-type "^5.2.0" - is-stream "^1.1.0" - tar-stream "^1.5.2" - -decompress-tarbz2@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" - integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== - dependencies: - decompress-tar "^4.1.0" - file-type "^6.1.0" - is-stream "^1.1.0" - seek-bzip "^1.0.5" - unbzip2-stream "^1.0.9" - -decompress-targz@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" - integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== - dependencies: - decompress-tar "^4.1.1" - file-type "^5.2.0" - is-stream "^1.1.0" - -decompress-unzip@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" - integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k= - dependencies: - file-type "^3.8.0" - get-stream "^2.2.0" - pify "^2.3.0" - yauzl "^2.4.2" - -decompress@^4.0.0, decompress@^4.2.0: - version "4.2.1" - resolved "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" - integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== - dependencies: - decompress-tar "^4.0.0" - decompress-tarbz2 "^4.0.0" - decompress-targz "^4.0.0" - decompress-unzip "^4.0.1" - graceful-fs "^4.1.10" - make-dir "^1.0.0" - pify "^2.3.0" - strip-dirs "^2.0.0" - dedent@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -8992,11 +8729,6 @@ dezalgo@^1.0.0: asap "^2.0.0" wrappy "1" -diacritics-map@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz#6dfc0ff9d01000a2edf2865371cac316e94977af" - integrity sha1-bfwP+dAQAKLt8oZTccrDFulJd68= - diagnostics@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a" @@ -9119,58 +8851,6 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -docusaurus@^2.0.0-alpha.61: - version "2.0.0-alpha.61" - resolved "https://registry.npmjs.org/docusaurus/-/docusaurus-2.0.0-alpha.61.tgz#f347b81c98c66f1de3ecfccf63fa421ddff52fbb" - integrity sha512-qDU3nOA4Xs95tIjjSETnEuRmTukTzgxyTZ5MgMyuG7y6h4oDHtpLcYf8F+xlXuuWHKv3VSxRJNzV8fZHPgnK3g== - dependencies: - "@babel/core" "^7.9.0" - "@babel/plugin-proposal-class-properties" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.9.0" - "@babel/polyfill" "^7.8.7" - "@babel/preset-env" "^7.9.0" - "@babel/preset-react" "^7.9.4" - "@babel/register" "^7.9.0" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - autoprefixer "^9.7.5" - babylon "^6.18.0" - chalk "^3.0.0" - classnames "^2.2.6" - commander "^4.0.1" - crowdin-cli "^0.3.0" - cssnano "^4.1.10" - escape-string-regexp "^2.0.0" - express "^4.17.1" - feed "^4.0.0" - fs-extra "^8.1.0" - gaze "^1.1.3" - github-slugger "^1.2.1" - glob "^7.1.6" - highlight.js "^9.16.2" - imagemin "^6.0.0" - imagemin-gifsicle "^6.0.1" - imagemin-jpegtran "^6.0.0" - imagemin-optipng "^6.0.0" - imagemin-svgo "^7.0.0" - lodash "^4.17.15" - markdown-toc "^1.2.0" - mkdirp "^0.5.1" - portfinder "^1.0.25" - postcss "^7.0.23" - prismjs "^1.17.1" - react "^16.8.4" - react-dev-utils "^9.1.0" - react-dom "^16.8.4" - remarkable "^2.0.0" - request "^2.88.0" - shelljs "^0.8.4" - sitemap "^3.2.2" - tcp-port-used "^1.0.1" - tiny-lr "^1.1.1" - tree-node-cli "^1.2.5" - truncate-html "^1.0.3" - dom-accessibility-api@^0.5.1: version "0.5.2" resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.2.tgz#ef3cdb5d3f0d599d8f9c8b18df2fb63c9793739d" @@ -9199,14 +8879,6 @@ dom-serializer@0, dom-serializer@^0.2.1: domelementtype "^2.0.1" entities "^2.0.0" -dom-serializer@~0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" - integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== - dependencies: - domelementtype "^1.3.0" - entities "^1.1.1" - dom-walk@^0.1.0: version "0.1.1" resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" @@ -9217,7 +8889,7 @@ domain-browser@^1.1.1: resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: +domelementtype@1, domelementtype@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== @@ -9348,41 +9020,6 @@ dotenv@^8.0.0: resolved "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== -download@^6.2.2: - version "6.2.5" - resolved "https://registry.npmjs.org/download/-/download-6.2.5.tgz#acd6a542e4cd0bb42ca70cfc98c9e43b07039714" - integrity sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA== - dependencies: - caw "^2.0.0" - content-disposition "^0.5.2" - decompress "^4.0.0" - ext-name "^5.0.0" - file-type "5.2.0" - filenamify "^2.0.0" - get-stream "^3.0.0" - got "^7.0.0" - make-dir "^1.0.0" - p-event "^1.0.0" - pify "^3.0.0" - -download@^7.1.0: - version "7.1.0" - resolved "https://registry.npmjs.org/download/-/download-7.1.0.tgz#9059aa9d70b503ee76a132897be6dec8e5587233" - integrity sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ== - dependencies: - archive-type "^4.0.0" - caw "^2.0.1" - content-disposition "^0.5.2" - decompress "^4.2.0" - ext-name "^5.0.0" - file-type "^8.1.0" - filenamify "^2.0.0" - get-stream "^3.0.0" - got "^8.3.1" - make-dir "^1.2.0" - p-event "^2.1.0" - pify "^3.0.0" - duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" @@ -9588,13 +9225,6 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.1.1" -error@^7.0.0: - version "7.2.1" - resolved "https://registry.npmjs.org/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" - integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== - dependencies: - string-template "~0.2.1" - es-abstract@^1.17.0, es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.4: version "1.17.4" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184" @@ -10072,17 +9702,6 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -exec-buffer@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz#b1686dbd904c7cf982e652c1f5a79b1e5573082b" - integrity sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA== - dependencies: - execa "^0.7.0" - p-finally "^1.0.0" - pify "^3.0.0" - rimraf "^2.5.4" - tempfile "^2.0.0" - exec-sh@^0.3.2: version "0.3.4" resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" @@ -10104,19 +9723,6 @@ execa@3.4.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -10145,7 +9751,7 @@ execa@^4.0.0, execa@^4.0.1: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -executable@^4.1.0, executable@^4.1.1: +executable@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== @@ -10175,13 +9781,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= - dependencies: - fill-range "^2.1.0" - expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" @@ -10254,21 +9853,6 @@ express@^4.0.0, express@^4.17.0, express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" -ext-list@^2.0.0: - version "2.2.2" - resolved "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" - integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== - dependencies: - mime-db "^1.28.0" - -ext-name@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" - integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== - dependencies: - ext-list "^2.0.0" - sort-keys-length "^1.0.0" - ext@^1.1.2: version "1.4.0" resolved "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" @@ -10436,7 +10020,7 @@ fault@^1.0.0, fault@^1.0.2: dependencies: format "^0.2.0" -faye-websocket@^0.10.0, faye-websocket@~0.10.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= @@ -10469,13 +10053,6 @@ fecha@^2.3.3: resolved "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd" integrity sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg== -feed@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/feed/-/feed-4.2.1.tgz#b246ef891051c7dbf088ca203341d9fb0444baee" - integrity sha512-l28KKcK1J/u3iq5dRDmmoB2p7dtBfACC2NqJh4dI2kFptxH0asfjmOfcxqh5Sv8suAlVa73gZJ4REY5RrafVvg== - dependencies: - xml-js "^1.6.11" - fetch-readablestream@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/fetch-readablestream/-/fetch-readablestream-0.2.0.tgz#eaa6d1a76b12de2d4731a343393c6ccdcfe2c795" @@ -10486,7 +10063,7 @@ figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== -figures@^1.3.5, figures@^1.7.0: +figures@^1.7.0: version "1.7.0" resolved "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= @@ -10536,36 +10113,6 @@ file-system-cache@^1.0.5: fs-extra "^0.30.0" ramda "^0.21.0" -file-type@5.2.0, file-type@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" - integrity sha1-LdvqfHP/42No365J3DOMBYwritY= - -file-type@^10.4.0, file-type@^10.7.0: - version "10.11.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz#2961d09e4675b9fb9a3ee6b69e9cd23f43fd1890" - integrity sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw== - -file-type@^3.8.0: - version "3.9.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" - integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= - -file-type@^4.2.0: - version "4.4.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" - integrity sha1-G2AOX8ofvcboDApwxxyNul95BsU= - -file-type@^6.1.0: - version "6.2.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" - integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== - -file-type@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz#244f3b7ef641bbe0cca196c7276e4b332399f68c" - integrity sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ== - file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" @@ -10576,20 +10123,6 @@ filefy@0.1.10: resolved "https://registry.npmjs.org/filefy/-/filefy-0.1.10.tgz#174677c8e2fa5bc39a3af0ed6fb492f16b8fbf42" integrity sha512-VgoRVOOY1WkTpWH+KBy8zcU1G7uQTVsXqhWEgzryB9A5hg2aqCyZ6aQ/5PSzlqM5+6cnVrX6oYV0XqD3HZSnmQ== -filename-reserved-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" - integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= - -filenamify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz#88faf495fb1b47abfd612300002a16228c677ee9" - integrity sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA== - dependencies: - filename-reserved-regex "^2.0.0" - strip-outer "^1.0.0" - trim-repeated "^1.0.0" - filesize@3.6.1: version "3.6.1" resolved "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" @@ -10600,17 +10133,6 @@ filesize@6.0.1: resolved "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz#f850b509909c7c86f7e450ea19006c31c2ed3d2f" integrity sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg== -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -10641,7 +10163,7 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: +find-cache-dir@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== @@ -10694,7 +10216,7 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" -find-versions@^3.0.0, find-versions@^3.2.0: +find-versions@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== @@ -10900,7 +10422,7 @@ fresh@0.5.2: resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= -from2@^2.1.0, from2@^2.1.1: +from2@^2.1.0: version "2.3.0" resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= @@ -11047,13 +10569,6 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -gaze@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" - integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== - dependencies: - globule "^1.0.0" - generic-names@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" @@ -11120,13 +10635,6 @@ get-port@^5.1.1: resolved "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== -get-proxy@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93" - integrity sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw== - dependencies: - npm-conf "^1.1.0" - get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" @@ -11137,19 +10645,6 @@ get-stdin@^6.0.0: resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== -get-stream@3.0.0, get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^2.2.0: - version "2.3.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" - integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -11188,16 +10683,6 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -gifsicle@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/gifsicle/-/gifsicle-4.0.1.tgz#30e1e61e3ee4884ef702641b2e98a15c2127b2e2" - integrity sha512-A/kiCLfDdV+ERV/UB+2O41mifd+RxH8jlRG8DMxZO84Bma/Fw0htqZ+hY2iaalLRNyUu7tYZQslqUBJxBggxbg== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.0" - execa "^1.0.0" - logalot "^2.0.0" - git-raw-commits@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz#d92addf74440c14bcc5c83ecce3fb7f8a79118b5" @@ -11247,7 +10732,7 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" -github-slugger@^1.2.1, github-slugger@^1.3.0: +github-slugger@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== @@ -11289,7 +10774,7 @@ 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@7.1.6, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1: +glob@7.1.6, glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -11383,7 +10868,7 @@ globby@11.0.1, globby@^11.0.0: merge2 "^1.3.0" slash "^3.0.0" -globby@8.0.2, globby@^8.0.1: +globby@8.0.2: version "8.0.2" resolved "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w== @@ -11447,15 +10932,6 @@ globby@^9.2.0: pify "^4.0.1" slash "^2.0.0" -globule@^1.0.0: - version "1.3.2" - resolved "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4" - integrity sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA== - dependencies: - glob "~7.1.1" - lodash "~4.17.10" - minimatch "~3.0.2" - good-listener@^1.2.2: version "1.2.2" resolved "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" @@ -11501,49 +10977,6 @@ got@^11.5.2: p-cancelable "^2.0.0" responselike "^2.0.0" -got@^7.0.0: - version "7.1.0" - resolved "https://registry.npmjs.org/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" - integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== - dependencies: - decompress-response "^3.2.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-plain-obj "^1.1.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^1.1.1" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - url-parse-lax "^1.0.0" - url-to-options "^1.0.1" - -got@^8.3.1: - version "8.3.2" - resolved "https://registry.npmjs.org/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" - integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== - dependencies: - "@sindresorhus/is" "^0.7.0" - cacheable-request "^2.1.1" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - into-stream "^3.1.0" - is-retry-allowed "^1.1.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - mimic-response "^1.0.0" - p-cancelable "^0.4.0" - p-timeout "^2.0.1" - pify "^3.0.0" - safe-buffer "^5.1.1" - timed-out "^4.0.1" - url-parse-lax "^3.0.0" - url-to-options "^1.0.1" - got@^9.6.0: version "9.6.0" resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -11561,7 +10994,7 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, 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: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, 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== @@ -11692,17 +11125,6 @@ graphql@^14.5.3: dependencies: iterall "^1.2.2" -gray-matter@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-2.1.1.tgz#3042d9adec2a1ded6a7707a9ed2380f8a17a430e" - integrity sha1-MELZrewqHe1qdwep7SOA+KF6Qw4= - dependencies: - ansi-red "^0.1.1" - coffee-script "^1.12.4" - extend-shallow "^2.0.1" - js-yaml "^3.8.1" - toml "^2.3.2" - growly@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -11713,15 +11135,6 @@ gud@^1.0.0: resolved "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== -gulp-header@^1.7.1: - version "1.8.12" - resolved "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84" - integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ== - dependencies: - concat-with-sourcemaps "*" - lodash.template "^4.4.0" - through2 "^2.0.0" - gzip-size@5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" @@ -11787,23 +11200,11 @@ has-flag@^4.0.0: resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - has-symbols@^1.0.0, has-symbols@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -11908,11 +11309,6 @@ highlight.js@^10.1.1, highlight.js@~10.1.0: resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.1.2.tgz#c20db951ba1c22c055010648dfffd7b2a968e00c" integrity sha512-Q39v/Mn5mfBlMff9r+zzA+gWxRsCRKwEMvYTiisLr/XUiFI/4puWt0Ojdko3R3JCNWGdOWaA5g/Yxqa23kC5AA== -highlight.js@^9.16.2: - version "9.18.3" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.3.tgz#a1a0a2028d5e3149e2380f8a865ee8516703d634" - integrity sha512-zBZAmhSupHIl5sITeMqIJnYCDfAEc3Gdkqj65wC1lpI468MMQeeQkhcIAvk+RylAkxrCcI9xy9piHiXeQ1BdzQ== - highlight.js@~9.13.0: version "9.13.1" resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz#054586d53a6863311168488a0f58d6c505ce641e" @@ -11995,7 +11391,7 @@ hsla-regex@^1.0.0: resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= -html-comment-regex@^1.1.0, html-comment-regex@^1.1.2: +html-comment-regex@^1.1.0: version "1.1.2" resolved "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== @@ -12069,7 +11465,7 @@ html2canvas@1.0.0-alpha.12: dependencies: css-line-break "1.0.1" -htmlparser2@^3.3.0, htmlparser2@^3.9.1: +htmlparser2@^3.3.0: version "3.10.1" resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== @@ -12091,7 +11487,7 @@ htmlparser2@^4.0, htmlparser2@^4.1.0: domutils "^2.0.0" entities "^2.0.0" -http-cache-semantics@3.8.1, http-cache-semantics@^3.8.1: +http-cache-semantics@^3.8.1: version "3.8.1" resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== @@ -12317,53 +11713,6 @@ ignore@^5.1.1, ignore@^5.1.4: resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== -imagemin-gifsicle@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-6.0.1.tgz#6abad4e95566d52e5a104aba1c24b4f3b48581b3" - integrity sha512-kuu47c6iKDQ6R9J10xCwL0lgs0+sMz3LRHqRcJ2CRBWdcNmo3T5hUaM8hSZfksptZXJLGKk8heSAvwtSdB1Fng== - dependencies: - exec-buffer "^3.0.0" - gifsicle "^4.0.0" - is-gif "^3.0.0" - -imagemin-jpegtran@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-6.0.0.tgz#c8d3bcfb6ec9c561c20a987142854be70d90b04f" - integrity sha512-Ih+NgThzqYfEWv9t58EItncaaXIHR0u9RuhKa8CtVBlMBvY0dCIxgQJQCfwImA4AV1PMfmUKlkyIHJjb7V4z1g== - dependencies: - exec-buffer "^3.0.0" - is-jpg "^2.0.0" - jpegtran-bin "^4.0.0" - -imagemin-optipng@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-6.0.0.tgz#a6bfc7b542fc08fc687e83dfb131249179a51a68" - integrity sha512-FoD2sMXvmoNm/zKPOWdhKpWdFdF9qiJmKC17MxZJPH42VMAp17/QENI/lIuP7LCUnLVAloO3AUoTSNzfhpyd8A== - dependencies: - exec-buffer "^3.0.0" - is-png "^1.0.0" - optipng-bin "^5.0.0" - -imagemin-svgo@^7.0.0: - version "7.1.0" - resolved "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-7.1.0.tgz#528a42fd3d55eff5d4af8fd1113f25fb61ad6d9a" - integrity sha512-0JlIZNWP0Luasn1HT82uB9nU9aa+vUj6kpT+MjPW11LbprXC+iC4HDwn1r4Q2/91qj4iy9tRZNsFySMlEpLdpg== - dependencies: - is-svg "^4.2.1" - svgo "^1.3.2" - -imagemin@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/imagemin/-/imagemin-6.1.0.tgz#62508b465728fea36c03cdc07d915fe2d8cf9e13" - integrity sha512-8ryJBL1CN5uSHpiBMX0rJw79C9F9aJqMnjGnrd/1CafegpNuA81RBAAru/jQQEOWlOJJlpRnlcVFF6wq+Ist0A== - dependencies: - file-type "^10.7.0" - globby "^8.0.1" - make-dir "^1.0.0" - p-pipe "^1.1.0" - pify "^4.0.1" - replace-ext "^1.0.0" - immer@1.10.0: version "1.10.0" resolved "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" @@ -12423,11 +11772,6 @@ import-lazy@^2.1.0: resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= -import-lazy@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz#891279202c8a2280fdbd6674dbd8da1a1dfc67cc" - integrity sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ== - import-local@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" @@ -12629,14 +11973,6 @@ interpret@^2.0.0, interpret@^2.2.0: resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -into-stream@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" - integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= - dependencies: - from2 "^2.1.1" - p-is-promise "^1.1.0" - invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: version "2.2.4" resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -12881,13 +12217,6 @@ 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-gif@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-gif/-/is-gif-3.0.0.tgz#c4be60b26a301d695bb833b20d9b5d66c6cf83b1" - integrity sha512-IqJ/jlbw5WJSNfwQ/lHEDXF8rxhRgF6ythk2oiEvhpG29F704eX9NO6TvPfMiq9DrbwgcEDnETYNcZDPewQoVw== - dependencies: - file-type "^10.4.0" - 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" @@ -12932,11 +12261,6 @@ 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-jpg@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz#2e1997fa6e9166eaac0242daae443403e4ef1d97" - integrity sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc= - is-map@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz#520dafc4307bb8ebc33b813de5ce7c9400d644a1" @@ -12947,23 +12271,11 @@ is-module@^1.0.0: resolved "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= -is-natural-number@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" - integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg= - is-npm@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= - dependencies: - kind-of "^3.0.2" - is-number@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -12971,11 +12283,6 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== - is-number@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -13046,11 +12353,6 @@ is-plain-object@^3.0.0: dependencies: isobject "^4.0.0" -is-png@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz#d574b12bf275c0350455570b0e5b57ab062077ce" - integrity sha1-1XSxK/J1wDUEVVcLDltXqwYgd84= - is-potential-custom-element-name@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" @@ -13092,11 +12394,6 @@ is-resolvable@^1.0.0: resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== -is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - is-root@2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" @@ -13114,7 +12411,7 @@ is-ssh@^1.3.0: dependencies: protocols "^1.1.0" -is-stream@^1.0.0, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -13136,13 +12433,6 @@ is-svg@^3.0.0: dependencies: html-comment-regex "^1.1.0" -is-svg@^4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/is-svg/-/is-svg-4.2.1.tgz#095b496e345fec9211c2a7d5d021003e040d6f81" - integrity sha512-PHx3ANecKsKNl5y5+Jvt53Y4J7MfMpbNZkv384QNiswMKAWIbvcqbPz+sYbFKJI8Xv3be01GSFniPmoaP+Ai5A== - dependencies: - html-comment-regex "^1.1.2" - is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" @@ -13169,11 +12459,6 @@ is-unc-path@^1.0.0: dependencies: unc-path-regex "^0.1.2" -is-url@^1.2.2: - version "1.2.4" - resolved "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" - integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== - is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" @@ -13221,15 +12506,6 @@ is-yarn-global@^0.3.0: resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== -is2@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is2/-/is2-2.0.1.tgz#8ac355644840921ce435d94f05d3a94634d3481a" - integrity sha512-+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA== - dependencies: - deep-is "^0.1.3" - ip-regex "^2.1.0" - is-url "^1.2.2" - isarray@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -13333,14 +12609,6 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - iterall@^1.1.3, iterall@^1.2.1, iterall@^1.2.2: version "1.3.0" resolved "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" @@ -13799,15 +13067,6 @@ jose@^1.27.1: dependencies: "@panva/asn1.js" "^1.0.0" -jpegtran-bin@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-4.0.0.tgz#d00aed809fba7aa6f30817e59eee4ddf198f8f10" - integrity sha512-2cRl1ism+wJUoYAYFt6O/rLBfpXNWG2dUWbgcEkTt5WGMnqI46eEro8T4C5zGROxKRqyKpCBSdHPvt5UYCtxaQ== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.0" - logalot "^2.0.0" - js-cookie@^2.2.1: version "2.2.1" resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" @@ -13833,7 +13092,7 @@ js-tokens@^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.1, js-yaml@^3.14.0, js-yaml@^3.8.1, js-yaml@^3.8.3: +js-yaml@^3.13.1, js-yaml@^3.14.0, js-yaml@^3.8.3: version "3.14.0" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== @@ -14194,13 +13453,6 @@ jwt-decode@2.2.0: resolved "https://registry.npmjs.org/jwt-decode/-/jwt-decode-2.2.0.tgz#7d86bd56679f58ce6a84704a657dd392bba81a79" integrity sha1-fYa9VmefWM5qhHBKZX3TkruoGnk= -keyv@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" - integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== - dependencies: - json-buffer "3.0.0" - keyv@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" @@ -14313,13 +13565,6 @@ lazy-cache@^1.0.3: resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= -lazy-cache@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264" - integrity sha1-uRkKT5EzVGlIQIWfio9whNiCImQ= - dependencies: - set-getter "^0.1.0" - lazy-universal-dotenv@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz#a6c8938414bca426ab8c9463940da451a911db38" @@ -14442,16 +13687,6 @@ lint-staged@^10.1.0: string-argv "0.3.1" stringify-object "^3.3.0" -list-item@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/list-item/-/list-item-1.1.1.tgz#0c65d00e287cb663ccb3cb3849a77e89ec268a56" - integrity sha1-DGXQDih8tmPMs8s4Sad+iewmilY= - dependencies: - expand-range "^1.8.1" - extend-shallow "^2.0.1" - is-number "^2.1.0" - repeat-string "^1.5.2" - listr-silent-renderer@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" @@ -14510,11 +13745,6 @@ listr@^0.14.3: p-map "^2.0.0" rxjs "^6.3.3" -livereload-js@^2.3.0: - version "2.4.0" - resolved "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" - integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw== - load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" @@ -14627,26 +13857,11 @@ lodash.assign@^4.1.0, lodash.assign@^4.2.0: resolved "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= -lodash.assignin@^4.0.9: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" - integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= - -lodash.bind@^4.1.4: - version "4.2.1" - resolved "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" - integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= - lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= -lodash.chunk@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc" - integrity sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw= - lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" @@ -14657,17 +13872,7 @@ lodash.debounce@^4, lodash.debounce@^4.0.8: resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= -lodash.defaults@^4.0.1: - version "4.2.0" - resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= - -lodash.filter@^4.4.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" - integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= - -lodash.flatten@^4.2.0, lodash.flatten@^4.4.0: +lodash.flatten@^4.4.0: version "4.4.0" resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= @@ -14677,11 +13882,6 @@ lodash.flattendeep@^4.0.0: resolved "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= -lodash.foreach@^4.3.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" - integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= - lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" @@ -14692,62 +13892,27 @@ lodash.ismatch@^4.4.0: resolved "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= -lodash.map@^4.4.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= - lodash.memoize@4.x, lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= -lodash.merge@^4.4.0: - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= -lodash.padstart@^4.6.1: - version "4.6.1" - resolved "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" - integrity sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs= - -lodash.pick@^4.2.1: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= - -lodash.reduce@^4.4.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" - integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= - -lodash.reject@^4.4.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" - integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= - lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM= -lodash.some@^4.4.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= - lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash.template@^4.0.2, lodash.template@^4.4.0, lodash.template@^4.5.0: +lodash.template@^4.0.2, lodash.template@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== @@ -14777,7 +13942,7 @@ lodash.without@^4.4.0: resolved "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.2.1, lodash@~4.17.10: +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.2.1: version "4.17.20" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== @@ -14822,14 +13987,6 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -logalot@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552" - integrity sha1-X46MkNME7fElMJUaVVSruMXj9VI= - dependencies: - figures "^1.3.5" - squeak "^1.0.0" - logform@^2.1.1: version "2.1.2" resolved "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz#957155ebeb67a13164069825ce67ddb5bb2dd360" @@ -14851,11 +14008,6 @@ long@^4.0.0: resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== -longest@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= - loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -14878,11 +14030,6 @@ lower-case@^2.0.1: dependencies: tslib "^1.10.0" -lowercase-keys@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= - lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" @@ -14917,24 +14064,6 @@ lowlight@~1.11.0: fault "^1.0.2" highlight.js "~9.13.0" -lpad-align@^1.0.1: - version "1.1.2" - resolved "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz#21f600ac1c3095c3c6e497ee67271ee08481fe9e" - integrity sha1-IfYArBwwlcPG5JfuZyce4ISB/p4= - dependencies: - get-stdin "^4.0.1" - indent-string "^2.1.0" - longest "^1.0.0" - meow "^3.3.0" - -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - lru-cache@^5.0.0, lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -14961,7 +14090,7 @@ magic-string@^0.25.2: dependencies: sourcemap-codec "^1.4.4" -make-dir@^1.0.0, make-dir@^1.2.0: +make-dir@^1.0.0: version "1.3.0" resolved "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== @@ -15083,11 +14212,6 @@ markdown-it@^9.1.0: mdurl "^1.0.1" uc.micro "^1.0.5" -markdown-link@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz#32c5c65199a6457316322d1e4229d13407c8c7cf" - integrity sha1-MsXGUZmmRXMWMi0eQinRNAfIx88= - 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" @@ -15096,24 +14220,6 @@ markdown-to-jsx@^6.11.4: prop-types "^15.6.2" unquote "^1.1.0" -markdown-toc@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/markdown-toc/-/markdown-toc-1.2.0.tgz#44a15606844490314afc0444483f9e7b1122c339" - integrity sha512-eOsq7EGd3asV0oBfmyqngeEIhrbkc7XVP63OwcJBIhH2EpG2PzFcbZdhy1jutXSlRBBVMNXHvMtSr5LAxSUvUg== - dependencies: - concat-stream "^1.5.2" - diacritics-map "^0.1.0" - gray-matter "^2.1.0" - lazy-cache "^2.0.2" - list-item "^1.1.1" - markdown-link "^0.1.1" - minimist "^1.2.0" - mixin-deep "^1.1.3" - object.pick "^1.2.0" - remarkable "^1.7.1" - repeat-string "^1.6.1" - strip-color "^0.1.0" - material-table@1.68.0: version "1.68.0" resolved "https://registry.npmjs.org/material-table/-/material-table-1.68.0.tgz#275c3d9a885c40ae4bc5a7461c00e877f92397b9" @@ -15132,11 +14238,6 @@ material-table@1.68.0: react-beautiful-dnd "^13.0.0" react-double-scrollbar "0.0.15" -math-random@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" - integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== - md5.js@^1.3.4: version "1.3.5" resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -15340,7 +14441,7 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.44.0, "mime-db@>= 1.43.0 < 2", mime-db@^1.28.0: +mime-db@1.44.0, "mime-db@>= 1.43.0 < 2": version "1.44.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== @@ -15449,7 +14550,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: +minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -15541,7 +14642,7 @@ mitt@^1.1.2: resolved "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz#cb24e6569c806e31bd4e3995787fe38a04fdf90d" integrity sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw== -mixin-deep@^1.1.3, mixin-deep@^1.2.0: +mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== @@ -16094,15 +15195,6 @@ normalize-url@1.9.1: query-string "^4.1.0" sort-keys "^1.0.0" -normalize-url@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.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" @@ -16120,14 +15212,6 @@ npm-bundled@^1.0.1: dependencies: npm-normalize-package-bin "^1.0.1" -npm-conf@^1.1.0: - version "1.1.3" - resolved "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== - dependencies: - config-chain "^1.1.11" - pify "^3.0.0" - npm-lifecycle@^3.1.2: version "3.1.4" resolved "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.4.tgz#de6975c7d8df65f5150db110b57cce498b0b604c" @@ -16471,15 +15555,6 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -optipng-bin@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/optipng-bin/-/optipng-bin-5.1.0.tgz#a7c7ab600a3ab5a177dae2f94c2d800aa386b5a9" - integrity sha512-9baoqZTNNmXQjq/PQTWEXbVV3AMO2sI/GaaqZJZ8SExfAzjijeAP7FEeT+TtyumSw7gr0PZtSUYB/Ke7iHQVKA== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.0" - logalot "^2.0.0" - ora@*, ora@^4.0.3: version "4.0.4" resolved "https://registry.npmjs.org/ora/-/ora-4.0.4.tgz#e8da697cc5b6a47266655bf68e0fb588d29a545d" @@ -16506,13 +15581,6 @@ os-browserify@^0.3.0: resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -os-filter-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz#1c0b62d5f3a2442749a2d139e6dddee6e81d8d16" - integrity sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg== - dependencies: - arch "^2.1.0" - os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" @@ -16551,16 +15619,6 @@ ospath@^1.2.2: resolved "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= -p-cancelable@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" - integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== - -p-cancelable@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" - integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== - p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" @@ -16576,20 +15634,6 @@ p-each-series@^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@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz#8e6b4f4f65c72bc5b6fe28b75eda874f96a4a085" - integrity sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU= - dependencies: - p-timeout "^1.1.1" - -p-event@^2.1.0: - version "2.3.1" - resolved "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz#596279ef169ab2c3e0cae88c1cfbb08079993ef6" - integrity sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA== - dependencies: - p-timeout "^2.0.1" - p-event@^4.0.0: version "4.2.0" resolved "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" @@ -16607,11 +15651,6 @@ p-finally@^2.0.0: resolved "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== -p-is-promise@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" - integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= - p-limit@3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" @@ -16680,7 +15719,7 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-pipe@^1.1.0, p-pipe@^1.2.0: +p-pipe@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9" integrity sha1-SxoROZoRUgpneQ7loMHViB1r7+k= @@ -16712,20 +15751,6 @@ p-retry@^3.0.1: dependencies: retry "^0.12.0" -p-timeout@^1.1.1: - version "1.2.1" - resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" - integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= - dependencies: - p-finally "^1.0.0" - -p-timeout@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" - integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== - dependencies: - p-finally "^1.0.0" - p-timeout@^3.1.0: version "3.2.0" resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" @@ -17326,7 +16351,7 @@ pinkie@^2.0.0: resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -pirates@^4.0.0, pirates@^4.0.1: +pirates@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== @@ -17404,7 +16429,7 @@ popper.js@^1.14.1, popper.js@^1.14.4, popper.js@^1.14.7: resolved "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== -portfinder@^1.0.25, portfinder@^1.0.26: +portfinder@^1.0.26: version "1.0.28" resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== @@ -17793,7 +16818,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^ resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== -"postcss@5 - 7", postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.23, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: +"postcss@5 - 7", postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: version "7.0.32" resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== @@ -17857,7 +16882,7 @@ 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, prepend-http@^1.0.1: +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= @@ -17915,7 +16940,7 @@ pretty-hrtime@^1.0.3: resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= -prismjs@^1.17.1, prismjs@^1.21.0, prismjs@^1.8.4, prismjs@~1.21.0: +prismjs@^1.21.0, prismjs@^1.8.4, prismjs@~1.21.0: version "1.21.0" resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz#36c086ec36b45319ec4218ee164c110f9fc015a3" integrity sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw== @@ -18091,11 +17116,6 @@ ps-tree@1.2.0: dependencies: event-stream "=3.3.4" -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - psl@^1.1.28: version "1.8.0" resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" @@ -18183,7 +17203,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.4.0, qs@^6.5.1, qs@^6.6.0, qs@^6.9.4: +qs@^6.5.1, qs@^6.6.0, qs@^6.9.4: version "6.9.4" resolved "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== @@ -18201,15 +17221,6 @@ query-string@^4.1.0: object-assign "^4.1.0" strict-uri-encode "^1.0.0" -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - querystring-browser@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/querystring-browser/-/querystring-browser-1.0.4.tgz#f2e35881840a819bc7b1bf597faf0979e6622dc6" @@ -18282,15 +17293,6 @@ ramldt2jsonschema@^1.1.0: json-schema-migrate "^0.2.0" webapi-parser "^0.5.0" -randomatic@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" - integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -18326,14 +17328,6 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -raw-body@~1.1.0: - version "1.1.7" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" - integrity sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU= - dependencies: - bytes "1" - string_decoder "0.10" - raw-loader@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz#5e9d399a5a222cc0de18f42c3bc5e49677532b3f" @@ -18445,7 +17439,7 @@ react-dev-utils@^10.2.1: strip-ansi "6.0.0" text-table "0.2.0" -react-dev-utils@^9.0.0, react-dev-utils@^9.1.0: +react-dev-utils@^9.0.0: version "9.1.0" resolved "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.1.0.tgz#3ad2bb8848a32319d760d0a84c56c14bdaae5e81" integrity sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg== @@ -18490,7 +17484,7 @@ react-docgen@^5.0.0: node-dir "^0.1.10" strip-indent "^3.0.0" -react-dom@^16.12.0, react-dom@^16.13.1, react-dom@^16.8.3, react-dom@^16.8.4: +react-dom@^16.12.0, react-dom@^16.13.1, react-dom@^16.8.3: version "16.13.1" resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== @@ -18903,7 +17897,7 @@ react-wait@^0.3.0: resolved "https://registry.npmjs.org/react-wait/-/react-wait-0.3.0.tgz#0cdd4d919012451a5bc3ab0a16d00c6fd9a8c10b" integrity sha512-kB5x/kMKWcn0uVr9gBdNz21/oGbQwEQnF3P9p6E9yLfJ9DRcKS0fagbgYMFI0YFOoyKDj+2q6Rwax0kTYJF37g== -react@^16.0.0, react@^16.12.0, react@^16.13.1, react@^16.8.3, react@^16.8.4: +react@^16.0.0, react@^16.12.0, react@^16.13.1, react@^16.8.3: version "16.13.1" resolved "https://registry.npmjs.org/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== @@ -19270,15 +18264,7 @@ remark-parse@^5.0.0: vfile-location "^2.0.0" xtend "^4.0.1" -remarkable@^1.7.1: - version "1.7.4" - resolved "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00" - integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg== - dependencies: - argparse "^1.0.10" - autolinker "~0.28.0" - -remarkable@^2.0.0, remarkable@^2.0.1: +remarkable@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/remarkable/-/remarkable-2.0.1.tgz#280ae6627384dfb13d98ee3995627ca550a12f31" integrity sha512-YJyMcOH5lrR+kZdmB0aJJ4+93bEojRZ1HGDn9Eagu6ibg7aVZhc3OWbbShRid+Q5eAfsEqWxpe+g5W5nYNfNiA== @@ -19324,11 +18310,6 @@ replace-ext@1.0.0: resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= -replace-ext@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" - integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== - replace-in-file@^6.0.0: version "6.1.0" resolved "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.1.0.tgz#9f9ddd7bb70d6ad231d2ad692e1b646e73d06647" @@ -19361,7 +18342,7 @@ request-promise-native@^1.0.5, request-promise-native@^1.0.8: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.53.0, request@^2.55.0, request@^2.85.0, request@^2.87.0, request@^2.88.0, request@^2.88.2: +request@^2.55.0, request@^2.85.0, request@^2.87.0, request@^2.88.0, request@^2.88.2: version "2.88.2" resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -19483,7 +18464,7 @@ resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12. dependencies: path-parse "^1.0.6" -responselike@1.0.2, responselike@^1.0.2: +responselike@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= @@ -19746,11 +18727,6 @@ safe-identifier@^0.4.1: resolved "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.1.tgz#b6516bf72594f03142b5f914f4c01842ccb1b678" integrity sha512-73tOz5TXsq3apuCc3vC8c9QRhhdNZGiBhHmPPjqpH4TO5oCDqk8UIsDcSs/RG6dYcFAkOOva0pqHS3u7hh7XXA== -safe-json-parse@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" - integrity sha1-PnZyPjjf3aE8mx0poeB//uSzC1c= - safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" @@ -19833,13 +18809,6 @@ screenfull@^5.0.0: resolved "https://registry.npmjs.org/screenfull/-/screenfull-5.0.2.tgz#b9acdcf1ec676a948674df5cd0ff66b902b0bed7" integrity sha512-cCF2b+L/mnEiORLN5xSAz6H3t18i2oHh9BA8+CQlAh5DRw2+NFAGQJOSYbcGw8B2k04g/lVvFcfZ83b3ysH5UQ== -seek-bzip@^1.0.5: - version "1.0.6" - resolved "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" - integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== - dependencies: - commander "^2.8.1" - select-hose@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -19874,13 +18843,6 @@ semver-regex@^2.0.0: resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== -semver-truncate@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8" - integrity sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g= - dependencies: - semver "^5.3.0" - "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -19993,13 +18955,6 @@ set-blocking@^2.0.0, set-blocking@~2.0.0: resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -set-getter@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376" - integrity sha1-12nBgsnVpR9AkUXy+6guXoboA3Y= - dependencies: - to-object-path "^0.3.0" - set-harmonic-interval@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz#e1773705539cdfb80ce1c3d99e7f298bb3995249" @@ -20099,7 +19054,7 @@ shell-quote@1.7.2: resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== -shelljs@^0.8.3, shelljs@^0.8.4: +shelljs@^0.8.3: version "0.8.4" resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== @@ -20179,16 +19134,6 @@ sisteransi@^1.0.4: resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -sitemap@^3.2.2: - version "3.2.2" - resolved "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz#3f77c358fa97b555c879e457098e39910095c62b" - integrity sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg== - dependencies: - lodash.chunk "^4.2.0" - lodash.padstart "^4.6.1" - whatwg-url "^7.0.0" - xmlbuilder "^13.0.0" - slash@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -20313,13 +19258,6 @@ socks@~2.3.2: ip "1.1.5" smart-buffer "^4.1.0" -sort-keys-length@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" - integrity sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg= - dependencies: - sort-keys "^1.0.0" - sort-keys@^1.0.0: version "1.1.2" resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" @@ -20350,7 +19288,7 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: source-map-url "^0.4.0" urix "^0.1.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.17, source-map-support@^0.5.6, source-map-support@~0.5.12: 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== @@ -20493,15 +19431,6 @@ sqlite3@^4.2.0: nan "^2.12.1" node-pre-gyp "^0.11.0" -squeak@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz#33045037b64388b567674b84322a6521073916c3" - integrity sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM= - dependencies: - chalk "^1.0.0" - console-stream "^0.1.1" - lpad-align "^1.0.1" - srcset@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/srcset/-/srcset-2.0.1.tgz#8f842d357487eb797f413d9c309de7a5149df5ac" @@ -20752,11 +19681,6 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= - string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -20836,11 +19760,6 @@ string.prototype.trimright@^2.1.1: define-properties "^1.1.3" function-bind "^1.1.1" -string_decoder@0.10: - version "0.10.31" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -20909,18 +19828,6 @@ strip-bom@^4.0.0: resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== -strip-color@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/strip-color/-/strip-color-0.1.0.tgz#106f65d3d3e6a2d9401cac0eb0ce8b8a702b4f7b" - integrity sha1-EG9l09PmotlAHKwOsM6LinArT3s= - -strip-dirs@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" - integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== - dependencies: - is-natural-number "^4.0.1" - strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -20960,13 +19867,6 @@ strip-json-comments@~2.0.1: resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -strip-outer@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" - integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== - dependencies: - escape-string-regexp "^1.0.2" - strong-log-transformer@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" @@ -21115,7 +20015,7 @@ svg-parser@^2.0.0, svg-parser@^2.0.2: resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== -svgo@^1.0.0, svgo@^1.2.2, svgo@^1.3.2: +svgo@^1.0.0, svgo@^1.2.2: version "1.3.2" resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== @@ -21261,7 +20161,7 @@ tar-fs@~2.0.1: pump "^3.0.0" tar-stream "^2.0.0" -tar-stream@^1.1.2, tar-stream@^1.5.2: +tar-stream@^1.1.2: version "1.6.2" resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== @@ -21315,14 +20215,6 @@ tarn@^3.0.0: resolved "https://registry.npmjs.org/tarn/-/tarn-3.0.0.tgz#a4082405216c0cce182b8b4cb2639c52c1e870d4" integrity sha512-PKUnlDFODZueoA8owLehl8vLcgtA8u4dRuVbZc92tspDYZixjJL6TqYOmryf/PfP/EBX+2rgNcrj96NO+RPkdQ== -tcp-port-used@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.1.tgz#46061078e2d38c73979a2c2c12b5a674e6689d70" - integrity sha512-rwi5xJeU6utXoEIiMvVBMc9eJ2/ofzB+7nLOdnZuFTmNCLqRiQh2sMG9MqCxHU/69VC/Fwp5dV9306Qd54ll1Q== - dependencies: - debug "4.1.0" - is2 "2.0.1" - tdigest@^0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz#2e3cb2c39ea449e55d1e6cd91117accca4588021" @@ -21375,14 +20267,6 @@ temp-write@^3.4.0: temp-dir "^1.0.0" uuid "^3.0.1" -tempfile@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265" - integrity sha1-awRGhWqbERTRhW/8vlCczLCXcmU= - dependencies: - temp-dir "^1.0.0" - uuid "^3.0.1" - term-size@^2.1.0: version "2.2.0" resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" @@ -21540,11 +20424,6 @@ timeago.js@^4.0.2: resolved "https://registry.npmjs.org/timeago.js/-/timeago.js-4.0.2.tgz#724e8c8833e3490676c7bb0a75f5daf20e558028" integrity sha512-a7wPxPdVlQL7lqvitHGGRsofhdwtkoSXPGATFuSOA2i1ZNQEPLrGnj68vOp2sOJTCFAQVXPeNMX/GctBaO9L2w== -timed-out@^4.0.0, timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - timers-browserify@^2.0.4: version "2.0.11" resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" @@ -21575,18 +20454,6 @@ tiny-invariant@^1.0.2, tiny-invariant@^1.0.6: resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== -tiny-lr@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" - integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA== - dependencies: - body "^5.1.0" - debug "^3.1.0" - faye-websocket "~0.10.0" - livereload-js "^2.3.0" - object-assign "^4.1.0" - qs "^6.4.0" - tiny-merge-patch@^0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/tiny-merge-patch/-/tiny-merge-patch-0.1.2.tgz#2e8ded19c56ea15dbd3ad4ed5db1c8e5ad544c3c" @@ -21683,11 +20550,6 @@ toidentifier@1.0.0: resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== -toml@^2.3.2: - version "2.3.6" - resolved "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz#25b0866483a9722474895559088b436fd11f861b" - integrity sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ== - toposort@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" @@ -21751,13 +20613,6 @@ tree-kill@^1.2.2: resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== -tree-node-cli@^1.2.5: - version "1.4.0" - resolved "https://registry.npmjs.org/tree-node-cli/-/tree-node-cli-1.4.0.tgz#8f4028554610d6ee1cdeb98554a60841a3cfa3ac" - integrity sha512-hBc/cp7rTSHFSFvaTzmHNYyJv87UJBsxsfCoq2DtDQuMES4vhnLuvXZit/asGtZG8edWTCydWeFWoBz9LYkJdQ== - dependencies: - commander "^5.0.0" - trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -21773,13 +20628,6 @@ 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-repeated@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" - integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= - dependencies: - escape-string-regexp "^1.0.2" - trim-trailing-lines@^1.0.0: version "1.1.3" resolved "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz#7f0739881ff76657b7776e10874128004b625a94" @@ -21800,14 +20648,6 @@ trough@^1.0.0: resolved "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== -truncate-html@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/truncate-html/-/truncate-html-1.0.3.tgz#0166dfc7890626130c2e4174c6b73d4d63993e5f" - integrity sha512-1o1prdRv+iehXcGwn29YgXU17DotHkr+OK3ijVEG7FGMwHNG9RyobXwimw6djDvbIc24rhmz3tjNNvNESjkNkQ== - dependencies: - "@types/cheerio" "^0.22.8" - cheerio "0.22.0" - tryer@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" @@ -22039,14 +20879,6 @@ umask@^1.1.0: resolved "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= -unbzip2-stream@^1.0.9: - version "1.4.3" - resolved "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" - integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== - dependencies: - buffer "^5.2.1" - through "^2.3.8" - unc-path-regex@^0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" @@ -22292,13 +21124,6 @@ url-loader@^4.1.0: mime-types "^2.1.26" schema-utils "^2.6.5" -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= - dependencies: - prepend-http "^1.0.1" - url-parse-lax@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" @@ -22314,11 +21139,6 @@ url-parse@^1.4.3, url-parse@^1.4.7: querystringify "^2.1.1" requires-port "^1.0.0" -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= - url-value-parser@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/url-value-parser/-/url-value-parser-2.0.1.tgz#c8179a095ab9ec1f5aa17ca36af5af396b4e95ed" @@ -22929,11 +21749,6 @@ word-wrap@^1.2.3, word-wrap@~1.2.3: resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= - wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" @@ -23104,13 +21919,6 @@ xml-encryption@^1.0.0: xmldom "~0.1.15" xpath "0.0.27" -xml-js@^1.6.11: - version "1.6.11" - resolved "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" - integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== - dependencies: - sax "^1.2.4" - "xml-name-validator@>= 2.0.1 < 3.0.0": version "2.0.1" resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" @@ -23134,11 +21942,6 @@ xmlbuilder@^11.0.0, xmlbuilder@~11.0.0: resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== -xmlbuilder@^13.0.0: - version "13.0.2" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz#02ae33614b6a047d1c32b5389c1fdacb2bce47a7" - integrity sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ== - xmlchars@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" @@ -23194,11 +21997,6 @@ yaeti@^0.0.6: resolved "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: version "3.1.1" resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" @@ -23219,14 +22017,6 @@ yaml@*, yaml@^1.10.0, yaml@^1.7.2, yaml@^1.9.2: resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== -yamljs@^0.2.1: - version "0.2.10" - resolved "https://registry.npmjs.org/yamljs/-/yamljs-0.2.10.tgz#481cc7c25ca73af59f591f0c96e3ce56c757a40f" - integrity sha1-SBzHwlynOvWfWR8MluPOVsdXpA8= - dependencies: - argparse "^1.0.7" - glob "^7.0.5" - yargs-parser@18.x, yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -23316,13 +22106,6 @@ yargs@^15.3.1, yargs@^15.4.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-2.3.0.tgz#e900c87250ec5cd080db6009fe3dd63156f1d7fb" - integrity sha1-6QDIclDsXNCA22AJ/j3WMVbx1/s= - dependencies: - wordwrap "0.0.2" - yargs@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/yargs/-/yargs-5.0.0.tgz#3355144977d05757dbb86d6e38ec056123b3a66e" @@ -23343,7 +22126,7 @@ yargs@^5.0.0: y18n "^3.2.1" yargs-parser "^3.2.0" -yauzl@^2.10.0, yauzl@^2.4.2: +yauzl@^2.10.0: version "2.10.0" resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= From d26d5e7fc892c3ae79370a7e8aa58023e2b114d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Sat, 5 Sep 2020 12:20:14 +0200 Subject: [PATCH 403/656] Add issue template for RFCs (#2290) * Add issue template for RFCs * Update rfc_template.md * Update rfc_template.md --- .github/ISSUE_TEMPLATE/rfc_template.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/rfc_template.md diff --git a/.github/ISSUE_TEMPLATE/rfc_template.md b/.github/ISSUE_TEMPLATE/rfc_template.md new file mode 100644 index 0000000000..c4990ee5d6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/rfc_template.md @@ -0,0 +1,26 @@ +--- +name: 'RFC' +about: 'Request For Comments (RFC) from the community' +labels: rfc +title: '[RFC] ' +--- + +**Status:** Open for comments + + + +## Need + + + +## Proposal + + + +## Alternatives + + + +## Risks + + From df9fc649fd7b3eab8f901cf7c8d1e6a5e50c13f2 Mon Sep 17 00:00:00 2001 From: Fabian Chong Date: Sat, 5 Sep 2020 19:20:24 +0800 Subject: [PATCH 404/656] ignore dist-types dir --- .eslintignore | 1 + packages/cli/config/eslint.backend.js | 2 +- packages/cli/config/eslint.js | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.eslintignore b/.eslintignore index 2f59b98bca..c73074efb3 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,5 +1,6 @@ **/node_modules/** **/dist/** +**/dist-types/** **/storybook-static/** **/coverage/** **/build/** diff --git a/packages/cli/config/eslint.backend.js b/packages/cli/config/eslint.backend.js index 9b9efc7649..113ba55818 100644 --- a/packages/cli/config/eslint.backend.js +++ b/packages/cli/config/eslint.backend.js @@ -35,7 +35,7 @@ module.exports = { ecmaVersion: 2018, sourceType: 'module', }, - ignorePatterns: ['.eslintrc.js', '**/dist/**'], + ignorePatterns: ['.eslintrc.js', '**/dist/**', '**/dist-types/**'], rules: { 'no-console': 0, // Permitted in console programs 'new-cap': ['error', { capIsNew: false }], // Because Express constructs things e.g. like 'const r = express.Router()' diff --git a/packages/cli/config/eslint.js b/packages/cli/config/eslint.js index 792cd467d5..3e171d1f82 100644 --- a/packages/cli/config/eslint.js +++ b/packages/cli/config/eslint.js @@ -39,7 +39,7 @@ module.exports = { version: 'detect', }, }, - ignorePatterns: ['.eslintrc.js', '**/dist/**'], + ignorePatterns: ['.eslintrc.js', '**/dist/**', '**/dist-types/**'], rules: { 'import/newline-after-import': 'error', 'import/no-duplicates': 'warn', From ab2e0f26e17d7166a78013507ca097a2ff364971 Mon Sep 17 00:00:00 2001 From: NetPenguins Date: Sat, 5 Sep 2020 08:23:43 -0400 Subject: [PATCH 405/656] ran yarn install --- yarn.lock | 200 +++++++++++++++++++++++------------------------------- 1 file changed, 86 insertions(+), 114 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1dcce2bb8b..45b61fff0e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -541,13 +541,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" @@ -1049,7 +1042,7 @@ 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.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.4", "@babel/runtime@^7.7.6", "@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.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@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.11.2" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== @@ -1065,7 +1058,7 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0", "@babel/traverse@^7.7.4": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0": version "7.11.0" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== @@ -3846,7 +3839,7 @@ "@testing-library/dom" "^7.22.2" "@types/testing-library__cypress" "^5.0.6" -"@testing-library/dom@^7.11.0", "@testing-library/dom@^7.17.1", "@testing-library/dom@^7.22.2": +"@testing-library/dom@^7.11.0", "@testing-library/dom@^7.22.2": version "7.23.0" resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-7.23.0.tgz#c54c0fa53705ad867bcefb52fc0c96487fbc10f6" integrity sha512-H5m090auYH+obdZmsaYLrSWC5OauWD2CvNbz88KBxQJoXgkJzbU0DpAG8BS7Evj5WqCC3nAAKrLS6vw0ljUYLg== @@ -3857,6 +3850,19 @@ dom-accessibility-api "^0.5.1" pretty-format "^26.4.2" +"@testing-library/dom@^7.22.3": + version "7.24.1" + resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-7.24.1.tgz#0e8acd042070f2c1b183fbfe5c0d38b3194ad3c0" + integrity sha512-TemHWY59gvzcScGiE5eooZpzYk9GaED0TuuK4WefbIc/DQg0L5wOpnj7MIEeAGF3B7Ekf1kvmVnQ97vwz4Lmhg== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.10.3" + "@types/aria-query" "^4.2.0" + aria-query "^4.2.2" + chalk "^4.1.0" + dom-accessibility-api "^0.5.1" + pretty-format "^26.4.2" + "@testing-library/jest-dom@^5.10.1": version "5.11.4" resolved "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.11.4.tgz#f325c600db352afb92995c2576022b35621ddc99" @@ -4366,6 +4372,14 @@ jest-diff "^25.2.1" pretty-format "^25.2.1" +"@types/jest@26.x": + version "26.0.13" + resolved "https://registry.npmjs.org/@types/jest/-/jest-26.0.13.tgz#5a7b9d5312f5dd521a38329c38ee9d3802a0b85e" + integrity sha512-sCzjKow4z9LILc6DhBvn5AkIfmQzDZkgtVVKmGwVrs5tuid38ws281D4l+7x1kP487+FlKDh5kfMZ8WSPAdmdA== + dependencies: + jest-diff "^25.2.1" + pretty-format "^25.2.1" + "@types/jquery@^3.3.34": version "3.5.1" resolved "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.1.tgz#cebb057acf5071c40e439f30e840c57a30d406c3" @@ -6011,10 +6025,10 @@ axios@^0.20.0: dependencies: follow-redirects "^1.10.0" -axobject-query@^2.0.2: - version "2.1.2" - resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-2.1.2.tgz#2bdffc0371e643e5f03ba99065d5179b9ca79799" - integrity sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ== +axobject-query@^2.1.2: + version "2.2.0" + resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" + integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== babel-code-frame@^6.22.0: version "6.26.0" @@ -7521,7 +7535,7 @@ command-exists-promise@^2.0.2: resolved "https://registry.npmjs.org/command-exists-promise/-/command-exists-promise-2.0.2.tgz#7beecc4b218299f3c61fa69a4047aa0b36a64a99" integrity sha512-T6PB6vdFrwnHXg/I0kivM3DqaCGZLjjYSOe0a5WgFKcz1sOnmOeIjnhQPXVXX3QjVbLyTJ85lJkX6lUpukTzaA== -commander@^2.11.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3, commander@~2.20.3: +commander@^2.19.0, commander@^2.20.0, commander@^2.20.3: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -7536,7 +7550,7 @@ commander@^5.0.0, commander@^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.0.0, commander@^6.1.0: version "6.1.0" resolved "https://registry.npmjs.org/commander/-/commander-6.1.0.tgz#f8d722b78103141006b66f4c7ba1e97315ba75bc" integrity sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA== @@ -8833,20 +8847,6 @@ dezalgo@^1.0.0: asap "^2.0.0" wrappy "1" -diacritics-map@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz#6dfc0ff9d01000a2edf2865371cac316e94977af" - integrity sha1-bfwP+dAQAKLt8oZTccrDFulJd68= - -diagnostics@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a" - integrity sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ== - dependencies: - colorspace "1.1.x" - enabled "1.0.x" - kuler "1.0.x" - dicer@0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872" @@ -8988,6 +8988,15 @@ dom-serializer@0: domelementtype "^2.0.1" entities "^2.0.0" +dom-serializer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.0.1.tgz#79695eb49af3cd8abc8d93a73da382deb1ca0795" + integrity sha512-1Aj1Qy3YLbdslkI75QEOfdp9TkQ3o8LRISAzxOibjBs/xWwr1WxZFOQphFkZuepHFGo+kB8e5FVJSS0faAJ4Rw== + dependencies: + domelementtype "^2.0.1" + domhandler "^3.0.0" + entities "^2.0.0" + dom-walk@^0.1.0: version "0.1.2" resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" @@ -9329,6 +9338,23 @@ es-abstract@^1.17.0, es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1, es- version "1.17.4" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184" integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + +es-abstract@^1.17.5: + version "1.17.6" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" + integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" @@ -10225,7 +10251,7 @@ file-loader@^4.2.0: loader-utils "^1.2.3" schema-utils "^2.5.0" -"file-saver@github:eligrey/FileSaver.js#1.3.8": +file-saver@eligrey/FileSaver.js#1.3.8: version "1.3.8" resolved "https://codeload.github.com/eligrey/FileSaver.js/tar.gz/e865e37af9f9947ddcced76b549e27dc45c1cb2e" @@ -11455,11 +11481,6 @@ highlight.js@~9.13.0: resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz#054586d53a6863311168488a0f58d6c505ce641e" integrity sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A== -highlight.js@~9.15.0, highlight.js@~9.15.1: - version "9.15.10" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz#7b18ed75c90348c045eef9ed08ca1319a2219ad2" - integrity sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw== - history@^4.9.0: version "4.10.1" resolved "https://registry.npmjs.org/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" @@ -12121,7 +12142,7 @@ interpret@^2.0.0, interpret@^2.2.0: resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: +invariant@^2.0.0, invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: version "2.2.4" resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -12419,6 +12440,11 @@ is-module@^1.0.0: resolved "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= +is-negative-zero@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" + integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= + is-npm@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" @@ -12567,7 +12593,7 @@ is-ssh@^1.3.0: dependencies: protocols "^1.1.0" -is-stream@^1.1.0: +is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -12652,13 +12678,6 @@ is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - is-yarn-global@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" @@ -12736,16 +12755,6 @@ istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: istanbul-lib-coverage "^3.0.0" semver "^6.3.0" -istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - istanbul-lib-report@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" @@ -12998,16 +13007,6 @@ jest-leak-detector@^26.4.2: jest-get-type "^26.3.0" pretty-format "^26.4.2" -jest-matcher-utils@^25.1.0: - version "25.1.0" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.1.0.tgz#fa5996c45c7193a3c24e73066fc14acdee020220" - integrity sha512-KGOAFcSFbclXIFE7bS4C53iYobKI20ZWleAdAFun4W1Wz1Kkej8Ng6RRbhL8leaEvIOjGXhGf/a1JjO8bkxIWQ== - dependencies: - chalk "^3.0.0" - jest-diff "^25.1.0" - jest-get-type "^25.1.0" - pretty-format "^25.1.0" - jest-matcher-utils@^26.4.2: version "26.4.2" resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.4.2.tgz#fa81f3693f7cb67e5fc1537317525ef3b85f4b06" @@ -13160,7 +13159,7 @@ jest-snapshot@^26.4.2: pretty-format "^26.4.2" semver "^7.3.2" -jest-util@^26.3.0: +jest-util@26.x, jest-util@^26.3.0: version "26.3.0" resolved "https://registry.npmjs.org/jest-util/-/jest-util-26.3.0.tgz#a8974b191df30e2bf523ebbfdbaeb8efca535b3e" integrity sha512-4zpn6bwV0+AMFN0IYhH/wnzIQzRaYVrz1A8sYnRnj4UXDXbOVtWmlaZkO9mipFqZ13okIfN87aDoJWB7VH6hcw== @@ -13223,6 +13222,17 @@ jest@^26.0.1: import-local "^3.0.2" jest-cli "^26.4.2" +joi@^17.1.1: + version "17.2.1" + resolved "https://registry.npmjs.org/joi/-/joi-17.2.1.tgz#e5140fdf07e8fecf9bc977c2832d1bdb1e3f2a0a" + integrity sha512-YT3/4Ln+5YRpacdmfEfrrKh50/kkgX3LgBltjqnlMPIYiZ4hxXZuVJcxmsvxsdeHg9soZfE3qXxHC2tMpCCBOA== + dependencies: + "@hapi/address" "^4.1.0" + "@hapi/formula" "^2.0.0" + "@hapi/hoek" "^9.0.0" + "@hapi/pinpoint" "^2.0.0" + "@hapi/topo" "^5.0.0" + jose@^1.27.1: version "1.28.0" resolved "https://registry.npmjs.org/jose/-/jose-1.28.0.tgz#0803f8c71f43cd293a9d931c555c30531f5ca5dc" @@ -13230,6 +13240,11 @@ jose@^1.27.1: dependencies: "@panva/asn1.js" "^1.0.0" +joycon@^2.2.5: + version "2.2.5" + resolved "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz#8d4cf4cbb2544d7b7583c216fcdfec19f6be1615" + integrity sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ== + js-cookie@^2.2.1: version "2.2.1" resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" @@ -14166,15 +14181,7 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -logalot@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552" - integrity sha1-X46MkNME7fElMJUaVVSruMXj9VI= - dependencies: - figures "^1.3.5" - squeak "^1.0.0" - -logform@^2.2.0: +logform@^2.1.1, logform@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz#40f036d19161fc76b68ab50fdc7fe495544492f2" integrity sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg== @@ -14195,12 +14202,7 @@ long@^4.0.0: resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== -longest@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -15762,15 +15764,6 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -optipng-bin@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/optipng-bin/-/optipng-bin-5.1.0.tgz#a7c7ab600a3ab5a177dae2f94c2d800aa386b5a9" - integrity sha512-9baoqZTNNmXQjq/PQTWEXbVV3AMO2sI/GaaqZJZ8SExfAzjijeAP7FEeT+TtyumSw7gr0PZtSUYB/Ke7iHQVKA== - dependencies: - bin-build "^3.0.0" - bin-wrapper "^4.0.0" - logalot "^2.0.0" - ora@*: version "5.0.0" resolved "https://registry.npmjs.org/ora/-/ora-5.0.0.tgz#4f0b34f2994877b49b452a707245ab1e9f6afccb" @@ -17057,7 +17050,7 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== -"postcss@5 - 7", postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: +"postcss@5 - 7", postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: version "7.0.32" resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== @@ -17154,7 +17147,7 @@ pretty-error@^2.1.1: renderkid "^2.0.1" utila "~0.4" -pretty-format@^25.1.0, pretty-format@^25.2.1, pretty-format@^25.5.0: +pretty-format@^25.2.1, pretty-format@^25.5.0: version "25.5.0" resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== @@ -19553,7 +19546,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.17, source-map-support@^0.5.6, source-map-support@~0.5.12: 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== @@ -19696,19 +19689,6 @@ sqlite3@^4.2.0: nan "^2.12.1" node-pre-gyp "^0.11.0" -squeak@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz#33045037b64388b567674b84322a6521073916c3" - integrity sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM= - dependencies: - chalk "^1.0.0" - console-stream "^0.1.1" - lpad-align "^1.0.1" -srcset@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/srcset/-/srcset-2.0.1.tgz#8f842d357487eb797f413d9c309de7a5149df5ac" - integrity sha512-00kZI87TdRKwt+P8jj8UZxbfp7mK2ufxcIMWvhAOZNJTRROimpHeruWrGvCZneiuVDLqdyHefVp748ECTnyUBQ== - ssh2-streams@~0.4.10: version "0.4.10" resolved "https://registry.npmjs.org/ssh2-streams/-/ssh2-streams-0.4.10.tgz#48ef7e8a0e39d8f2921c30521d56dacb31d23a34" @@ -22311,14 +22291,6 @@ yaml@*, yaml@^1.10.0, yaml@^1.7.2, yaml@^1.9.2: resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== -yamljs@^0.2.1: - version "0.2.10" - resolved "https://registry.npmjs.org/yamljs/-/yamljs-0.2.10.tgz#481cc7c25ca73af59f591f0c96e3ce56c757a40f" - integrity sha1-SBzHwlynOvWfWR8MluPOVsdXpA8= - dependencies: - argparse "^1.0.7" - glob "^7.0.5" - yargs-parser@18.x, 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" From 66a0239f188fe7122ca643bc5e8c28e71b9231aa Mon Sep 17 00:00:00 2001 From: NetPenguins Date: Sat, 5 Sep 2020 08:39:57 -0400 Subject: [PATCH 406/656] Update to include Entity object --- .../WorkflowRunLogs/WorkflowRunLogs.tsx | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx b/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx index d6db13dc61..785e902a8b 100644 --- a/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx +++ b/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx @@ -35,6 +35,7 @@ import LinePart from 'react-lazylog/build/LinePart'; import { useProjectName } from '../useProjectName'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import DescriptionIcon from '@material-ui/icons/Description'; +import { Entity } from '@backstage/catalog-model'; const LazyLog = React.lazy(() => import('react-lazylog/build/LazyLog')); @@ -89,19 +90,9 @@ const DisplayLog = ({ jobLogs, className }: { jobLogs: any; className: string }) /** * A component for Run Logs visualization. */ -export const WorkflowRunLogs = ({ runId, inProgress }:{ runId: string, inProgress: boolean }) => { +export const WorkflowRunLogs = ({ runId, inProgress, entity }:{ runId: string, inProgress: boolean, entity: Entity }) => { const classes = useStyles(); - let entityCompoundName = useEntityCompoundName(); - if (!entityCompoundName.name) { - // TODO(shmidt-i): remove when is fully integrated - // into the entity view - entityCompoundName = { - kind: 'Component', - name: 'backstage', - namespace: 'default', - }; - } - const projectName = useProjectName(entityCompoundName); + const projectName = useProjectName(entity); const [owner, repo] = projectName.value ? projectName.value.split('/') : []; const jobLogs = useDownloadWorkflowRunLogs(repo, owner, runId); @@ -114,6 +105,7 @@ export const WorkflowRunLogs = ({ runId, inProgress }:{ runId: string, inProgres const handleClose = () => { setOpen(false); }; + return ( Date: Sat, 5 Sep 2020 08:40:30 -0400 Subject: [PATCH 407/656] Removal of entityCompound import --- .../src/components/WorkflowRunLogs/WorkflowRunLogs.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx b/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx index 785e902a8b..7d83647456 100644 --- a/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx +++ b/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx @@ -29,7 +29,6 @@ import { } from '@material-ui/core'; import React, { Suspense } from 'react'; -import { useEntityCompoundName } from '@backstage/plugin-catalog'; import { useDownloadWorkflowRunLogs } from './useDownloadWorkflowRunLogs'; import LinePart from 'react-lazylog/build/LinePart'; import { useProjectName } from '../useProjectName'; From 3fa419d7658dbf921d19a59af9cccc15f1253e4a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 5 Sep 2020 15:27:27 +0200 Subject: [PATCH 408/656] workflows: skip caching in microsite deployment --- .../microsite-with-storybook-deploy.yml | 30 ++++--------------- 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/.github/workflows/microsite-with-storybook-deploy.yml b/.github/workflows/microsite-with-storybook-deploy.yml index a1e9723be0..22fd48789a 100644 --- a/.github/workflows/microsite-with-storybook-deploy.yml +++ b/.github/workflows/microsite-with-storybook-deploy.yml @@ -26,36 +26,18 @@ jobs: steps: - uses: actions/checkout@v2 - # Beginning of yarn setup, keep in sync between all workflows, see ci.yml - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - - name: cache all node_modules - id: cache-modules - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }} - - name: find location of global yarn cache - id: yarn-cache - if: steps.cache-modules.outputs.cache-hit != 'true' - run: echo "::set-output name=dir::$(yarn cache dir)" - - name: cache global yarn cache - uses: actions/cache@v2 - if: steps.cache-modules.outputs.cache-hit != 'true' - with: - path: ${{ steps.yarn-cache.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - name: yarn install - run: yarn install --frozen-lockfile - # End of yarn setup - # Previous install was to be able to build storybook, this is for the microsite, and we skip caching - - name: yarn install + # We avoid caching in this workflow, as we're running an install of both the top-level + # dependencies and the microsite. We leave it to the main master workflow to produce the + # cache, as that results in a smaller bundle. + - name: top-level yarn install + run: yarn install --frozen-lockfile + - name: microsite yarn install run: yarn install --frozen-lockfile working-directory: microsite From 9e07bdb43d7372c92201eef2e0a60cea7b1f520f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 5 Sep 2020 13:42:58 +0200 Subject: [PATCH 409/656] auth-backend: slim down oauth start interface and allow for state modifications --- .../auth-backend/src/lib/oauth/OAuthAdapter.ts | 17 +++++++---------- plugins/auth-backend/src/lib/oauth/index.ts | 2 ++ plugins/auth-backend/src/lib/oauth/types.ts | 10 ++++++---- .../src/providers/auth0/provider.ts | 15 +++++++-------- .../src/providers/github/provider.ts | 12 +++++++----- .../src/providers/gitlab/provider.ts | 12 +++++++----- .../src/providers/google/provider.ts | 15 +++++++-------- .../src/providers/microsoft/provider.ts | 12 +++++++----- .../src/providers/oauth2/provider.ts | 15 +++++++-------- .../auth-backend/src/providers/okta/provider.ts | 15 +++++++-------- 10 files changed, 64 insertions(+), 61 deletions(-) diff --git a/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts b/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts index 0f092ae780..a0583cdd9e 100644 --- a/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts +++ b/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts @@ -24,9 +24,9 @@ import { } from '../../providers/types'; import { InputError } from '@backstage/backend-common'; import { TokenIssuer } from '../../identity'; -import { verifyNonce, encodeState } from './helpers'; +import { verifyNonce } from './helpers'; import { postMessageResponse, ensuresXRequestedWith } from '../flow'; -import { OAuthHandlers } from './types'; +import { OAuthHandlers, OAuthStartRequest } from './types'; export const THOUSAND_DAYS_MS = 1000 * 24 * 60 * 60 * 1000; export const TEN_MINUTES_MS = 600 * 1000; @@ -86,15 +86,12 @@ export class OAuthAdapter implements AuthProviderRouteHandlers { // set a nonce cookie before redirecting to oauth provider this.setNonceCookie(res, nonce); - const stateObject = { nonce: nonce, env: env }; - const stateParameter = encodeState(stateObject); + const state = { nonce: nonce, env: env }; + const forwardReq = Object.assign(req, { scope, state }); - const queryParameters = { - scope, - state: stateParameter, - }; - - const { url, status } = await this.handlers.start(req, queryParameters); + const { url, status } = await this.handlers.start( + forwardReq as OAuthStartRequest, + ); res.statusCode = status || 302; res.setHeader('Location', url); diff --git a/plugins/auth-backend/src/lib/oauth/index.ts b/plugins/auth-backend/src/lib/oauth/index.ts index 05c8bd9d3d..20a1ca6f99 100644 --- a/plugins/auth-backend/src/lib/oauth/index.ts +++ b/plugins/auth-backend/src/lib/oauth/index.ts @@ -16,10 +16,12 @@ export { OAuthEnvironmentHandler } from './OAuthEnvironmentHandler'; export { OAuthAdapter } from './OAuthAdapter'; +export { encodeState } from './helpers'; export type { OAuthHandlers, OAuthProviderInfo, OAuthProviderOptions, OAuthResponse, OAuthState, + OAuthStartRequest, } from './types'; diff --git a/plugins/auth-backend/src/lib/oauth/types.ts b/plugins/auth-backend/src/lib/oauth/types.ts index a854326bed..f3a50e8596 100644 --- a/plugins/auth-backend/src/lib/oauth/types.ts +++ b/plugins/auth-backend/src/lib/oauth/types.ts @@ -67,6 +67,11 @@ export type OAuthState = { env: string; }; +export type OAuthStartRequest = express.Request<{}> & { + scope: string; + state: OAuthState; +}; + /** * Any OAuth provider needs to implement this interface which has provider specific * handlers for different methods to perform authentication, get access tokens, @@ -78,10 +83,7 @@ export interface OAuthHandlers { * @param {express.Request} req * @param options */ - start( - req: express.Request, - options: Record, - ): Promise; + start(req: OAuthStartRequest): Promise; /** * Handles the redirect from the auth provider when the user has signed in. diff --git a/plugins/auth-backend/src/providers/auth0/provider.ts b/plugins/auth-backend/src/providers/auth0/provider.ts index 3b7817ffe9..d71ee1bbed 100644 --- a/plugins/auth-backend/src/providers/auth0/provider.ts +++ b/plugins/auth-backend/src/providers/auth0/provider.ts @@ -23,6 +23,8 @@ import { OAuthHandlers, OAuthResponse, OAuthEnvironmentHandler, + OAuthStartRequest, + encodeState, } from '../../lib/oauth'; import { executeFetchUserProfileStrategy, @@ -81,16 +83,13 @@ export class Auth0AuthProvider implements OAuthHandlers { ); } - async start( - req: express.Request, - options: Record, - ): Promise { - const providerOptions = { - ...options, + async start(req: OAuthStartRequest): Promise { + return await executeRedirectStrategy(req, this._strategy, { accessType: 'offline', prompt: 'consent', - }; - return await executeRedirectStrategy(req, this._strategy, providerOptions); + scope: req.scope, + state: encodeState(req.state), + }); } async handler( diff --git a/plugins/auth-backend/src/providers/github/provider.ts b/plugins/auth-backend/src/providers/github/provider.ts index 2205fb6794..bab7b3fc28 100644 --- a/plugins/auth-backend/src/providers/github/provider.ts +++ b/plugins/auth-backend/src/providers/github/provider.ts @@ -29,6 +29,8 @@ import { OAuthHandlers, OAuthResponse, OAuthEnvironmentHandler, + OAuthStartRequest, + encodeState, } from '../../lib/oauth'; import passport from 'passport'; @@ -117,11 +119,11 @@ export class GithubAuthProvider implements OAuthHandlers { ); } - async start( - req: express.Request, - options: Record, - ): Promise { - return await executeRedirectStrategy(req, this._strategy, options); + async start(req: OAuthStartRequest): Promise { + return await executeRedirectStrategy(req, this._strategy, { + scope: req.scope, + state: encodeState(req.state), + }); } async handler(req: express.Request) { diff --git a/plugins/auth-backend/src/providers/gitlab/provider.ts b/plugins/auth-backend/src/providers/gitlab/provider.ts index 97f0b2bd22..4d4ecc3b56 100644 --- a/plugins/auth-backend/src/providers/gitlab/provider.ts +++ b/plugins/auth-backend/src/providers/gitlab/provider.ts @@ -29,6 +29,8 @@ import { OAuthHandlers, OAuthResponse, OAuthEnvironmentHandler, + OAuthStartRequest, + encodeState, } from '../../lib/oauth'; import passport from 'passport'; @@ -122,11 +124,11 @@ export class GitlabAuthProvider implements OAuthHandlers { ); } - async start( - req: express.Request, - options: Record, - ): Promise { - return await executeRedirectStrategy(req, this._strategy, options); + async start(req: OAuthStartRequest): Promise { + return await executeRedirectStrategy(req, this._strategy, { + scope: req.scope, + state: encodeState(req.state), + }); } async handler(req: express.Request): Promise<{ response: OAuthResponse }> { diff --git a/plugins/auth-backend/src/providers/google/provider.ts b/plugins/auth-backend/src/providers/google/provider.ts index 9ee2e1d680..2eb7b8573b 100644 --- a/plugins/auth-backend/src/providers/google/provider.ts +++ b/plugins/auth-backend/src/providers/google/provider.ts @@ -31,6 +31,8 @@ import { OAuthProviderOptions, OAuthResponse, OAuthEnvironmentHandler, + OAuthStartRequest, + encodeState, } from '../../lib/oauth'; import passport from 'passport'; @@ -79,16 +81,13 @@ export class GoogleAuthProvider implements OAuthHandlers { ); } - async start( - req: express.Request, - options: Record, - ): Promise { - const providerOptions = { - ...options, + async start(req: OAuthStartRequest): Promise { + return await executeRedirectStrategy(req, this._strategy, { accessType: 'offline', prompt: 'consent', - }; - return await executeRedirectStrategy(req, this._strategy, providerOptions); + scope: req.scope, + state: encodeState(req.state), + }); } async handler( diff --git a/plugins/auth-backend/src/providers/microsoft/provider.ts b/plugins/auth-backend/src/providers/microsoft/provider.ts index edc5509d84..2eba3b5191 100644 --- a/plugins/auth-backend/src/providers/microsoft/provider.ts +++ b/plugins/auth-backend/src/providers/microsoft/provider.ts @@ -35,6 +35,8 @@ import { OAuthHandlers, OAuthResponse, OAuthEnvironmentHandler, + OAuthStartRequest, + encodeState, } from '../../lib/oauth'; import got from 'got'; @@ -111,11 +113,11 @@ export class MicrosoftAuthProvider implements OAuthHandlers { ); } - async start( - req: express.Request, - options: Record, - ): Promise { - return await executeRedirectStrategy(req, this._strategy, options); + async start(req: OAuthStartRequest): Promise { + return await executeRedirectStrategy(req, this._strategy, { + scope: req.scope, + state: encodeState(req.state), + }); } async handler( diff --git a/plugins/auth-backend/src/providers/oauth2/provider.ts b/plugins/auth-backend/src/providers/oauth2/provider.ts index 5a4882fa6f..4a510f8c25 100644 --- a/plugins/auth-backend/src/providers/oauth2/provider.ts +++ b/plugins/auth-backend/src/providers/oauth2/provider.ts @@ -23,6 +23,8 @@ import { OAuthHandlers, OAuthResponse, OAuthEnvironmentHandler, + OAuthStartRequest, + encodeState, } from '../../lib/oauth'; import { executeFetchUserProfileStrategy, @@ -84,16 +86,13 @@ export class OAuth2AuthProvider implements OAuthHandlers { ); } - async start( - req: express.Request, - options: Record, - ): Promise { - const providerOptions = { - ...options, + async start(req: OAuthStartRequest): Promise { + return await executeRedirectStrategy(req, this._strategy, { accessType: 'offline', prompt: 'consent', - }; - return await executeRedirectStrategy(req, this._strategy, providerOptions); + scope: req.scope, + state: encodeState(req.state), + }); } async handler( diff --git a/plugins/auth-backend/src/providers/okta/provider.ts b/plugins/auth-backend/src/providers/okta/provider.ts index 0368bd8415..0ac75beaf8 100644 --- a/plugins/auth-backend/src/providers/okta/provider.ts +++ b/plugins/auth-backend/src/providers/okta/provider.ts @@ -20,6 +20,8 @@ import { OAuthHandlers, OAuthResponse, OAuthEnvironmentHandler, + OAuthStartRequest, + encodeState, } from '../../lib/oauth'; import { Strategy as OktaStrategy } from 'passport-okta-oauth'; import passport from 'passport'; @@ -101,16 +103,13 @@ export class OktaAuthProvider implements OAuthHandlers { ); } - async start( - req: express.Request, - options: Record, - ): Promise { - const providerOptions = { - ...options, + async start(req: OAuthStartRequest): Promise { + return await executeRedirectStrategy(req, this._strategy, { accessType: 'offline', prompt: 'consent', - }; - return await executeRedirectStrategy(req, this._strategy, providerOptions); + scope: req.scope, + state: encodeState(req.state), + }); } async handler( From 40b71f8299bf0d63ea80d7a92b671be241d849d0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 5 Sep 2020 15:08:10 +0200 Subject: [PATCH 410/656] auth-backend: refactory oauth refresh handler to receive a single request object --- plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts | 8 ++++++-- plugins/auth-backend/src/lib/oauth/index.ts | 1 + plugins/auth-backend/src/lib/oauth/types.ts | 10 ++++++---- plugins/auth-backend/src/providers/auth0/provider.ts | 7 ++++--- plugins/auth-backend/src/providers/google/provider.ts | 7 ++++--- .../auth-backend/src/providers/microsoft/provider.ts | 7 ++++--- plugins/auth-backend/src/providers/oauth2/provider.ts | 7 ++++--- plugins/auth-backend/src/providers/okta/provider.ts | 7 ++++--- 8 files changed, 33 insertions(+), 21 deletions(-) diff --git a/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts b/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts index a0583cdd9e..62cb8e444d 100644 --- a/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts +++ b/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts @@ -26,7 +26,7 @@ import { InputError } from '@backstage/backend-common'; import { TokenIssuer } from '../../identity'; import { verifyNonce } from './helpers'; import { postMessageResponse, ensuresXRequestedWith } from '../flow'; -import { OAuthHandlers, OAuthStartRequest } from './types'; +import { OAuthHandlers, OAuthStartRequest, OAuthRefreshRequest } from './types'; export const THOUSAND_DAYS_MS = 1000 * 24 * 60 * 60 * 1000; export const TEN_MINUTES_MS = 600 * 1000; @@ -182,8 +182,12 @@ export class OAuthAdapter implements AuthProviderRouteHandlers { const scope = req.query.scope?.toString() ?? ''; + const forwardReq = Object.assign(req, { scope, refreshToken }); + // get new access_token - const response = await this.handlers.refresh(refreshToken, scope); + const response = await this.handlers.refresh( + forwardReq as OAuthRefreshRequest, + ); await this.populateIdentity(response.backstageIdentity); diff --git a/plugins/auth-backend/src/lib/oauth/index.ts b/plugins/auth-backend/src/lib/oauth/index.ts index 20a1ca6f99..564a0e1e7c 100644 --- a/plugins/auth-backend/src/lib/oauth/index.ts +++ b/plugins/auth-backend/src/lib/oauth/index.ts @@ -24,4 +24,5 @@ export type { OAuthResponse, OAuthState, OAuthStartRequest, + OAuthRefreshRequest, } from './types'; diff --git a/plugins/auth-backend/src/lib/oauth/types.ts b/plugins/auth-backend/src/lib/oauth/types.ts index f3a50e8596..b2b7915a4e 100644 --- a/plugins/auth-backend/src/lib/oauth/types.ts +++ b/plugins/auth-backend/src/lib/oauth/types.ts @@ -72,6 +72,11 @@ export type OAuthStartRequest = express.Request<{}> & { state: OAuthState; }; +export type OAuthRefreshRequest = express.Request<{}> & { + scope: string; + refreshToken: string; +}; + /** * Any OAuth provider needs to implement this interface which has provider specific * handlers for different methods to perform authentication, get access tokens, @@ -101,10 +106,7 @@ export interface OAuthHandlers { * @param {string} refreshToken * @param {string} scope */ - refresh?( - refreshToken: string, - scope: string, - ): Promise>; + refresh?(req: OAuthRefreshRequest): Promise>; /** * (Optional) Sign out of the auth provider. diff --git a/plugins/auth-backend/src/providers/auth0/provider.ts b/plugins/auth-backend/src/providers/auth0/provider.ts index d71ee1bbed..668ab17ee1 100644 --- a/plugins/auth-backend/src/providers/auth0/provider.ts +++ b/plugins/auth-backend/src/providers/auth0/provider.ts @@ -25,6 +25,7 @@ import { OAuthEnvironmentHandler, OAuthStartRequest, encodeState, + OAuthRefreshRequest, } from '../../lib/oauth'; import { executeFetchUserProfileStrategy, @@ -106,11 +107,11 @@ export class Auth0AuthProvider implements OAuthHandlers { }; } - async refresh(refreshToken: string, scope: string): Promise { + async refresh(req: OAuthRefreshRequest): Promise { const { accessToken, params } = await executeRefreshTokenStrategy( this._strategy, - refreshToken, - scope, + req.refreshToken, + req.scope, ); const profile = await executeFetchUserProfileStrategy( diff --git a/plugins/auth-backend/src/providers/google/provider.ts b/plugins/auth-backend/src/providers/google/provider.ts index 2eb7b8573b..3cc585605c 100644 --- a/plugins/auth-backend/src/providers/google/provider.ts +++ b/plugins/auth-backend/src/providers/google/provider.ts @@ -33,6 +33,7 @@ import { OAuthEnvironmentHandler, OAuthStartRequest, encodeState, + OAuthRefreshRequest, } from '../../lib/oauth'; import passport from 'passport'; @@ -104,11 +105,11 @@ export class GoogleAuthProvider implements OAuthHandlers { }; } - async refresh(refreshToken: string, scope: string): Promise { + async refresh(req: OAuthRefreshRequest): Promise { const { accessToken, params } = await executeRefreshTokenStrategy( this._strategy, - refreshToken, - scope, + req.refreshToken, + req.scope, ); const profile = await executeFetchUserProfileStrategy( diff --git a/plugins/auth-backend/src/providers/microsoft/provider.ts b/plugins/auth-backend/src/providers/microsoft/provider.ts index 2eba3b5191..baa66f0662 100644 --- a/plugins/auth-backend/src/providers/microsoft/provider.ts +++ b/plugins/auth-backend/src/providers/microsoft/provider.ts @@ -37,6 +37,7 @@ import { OAuthEnvironmentHandler, OAuthStartRequest, encodeState, + OAuthRefreshRequest, } from '../../lib/oauth'; import got from 'got'; @@ -134,11 +135,11 @@ export class MicrosoftAuthProvider implements OAuthHandlers { }; } - async refresh(refreshToken: string, scope: string): Promise { + async refresh(req: OAuthRefreshRequest): Promise { const { accessToken, params } = await executeRefreshTokenStrategy( this._strategy, - refreshToken, - scope, + req.refreshToken, + req.scope, ); const profile = await executeFetchUserProfileStrategy( diff --git a/plugins/auth-backend/src/providers/oauth2/provider.ts b/plugins/auth-backend/src/providers/oauth2/provider.ts index 4a510f8c25..a657ea2195 100644 --- a/plugins/auth-backend/src/providers/oauth2/provider.ts +++ b/plugins/auth-backend/src/providers/oauth2/provider.ts @@ -25,6 +25,7 @@ import { OAuthEnvironmentHandler, OAuthStartRequest, encodeState, + OAuthRefreshRequest, } from '../../lib/oauth'; import { executeFetchUserProfileStrategy, @@ -109,11 +110,11 @@ export class OAuth2AuthProvider implements OAuthHandlers { }; } - async refresh(refreshToken: string, scope: string): Promise { + async refresh(req: OAuthRefreshRequest): Promise { const refreshTokenResponse = await executeRefreshTokenStrategy( this._strategy, - refreshToken, - scope, + req.refreshToken, + req.scope, ); const { accessToken, diff --git a/plugins/auth-backend/src/providers/okta/provider.ts b/plugins/auth-backend/src/providers/okta/provider.ts index 0ac75beaf8..09597696ba 100644 --- a/plugins/auth-backend/src/providers/okta/provider.ts +++ b/plugins/auth-backend/src/providers/okta/provider.ts @@ -22,6 +22,7 @@ import { OAuthEnvironmentHandler, OAuthStartRequest, encodeState, + OAuthRefreshRequest, } from '../../lib/oauth'; import { Strategy as OktaStrategy } from 'passport-okta-oauth'; import passport from 'passport'; @@ -126,11 +127,11 @@ export class OktaAuthProvider implements OAuthHandlers { }; } - async refresh(refreshToken: string, scope: string): Promise { + async refresh(req: OAuthRefreshRequest): Promise { const { accessToken, params } = await executeRefreshTokenStrategy( this._strategy, - refreshToken, - scope, + req.refreshToken, + req.scope, ); const profile = await executeFetchUserProfileStrategy( From 7a7396be5594896a77633326c06a368c2dee5cb7 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 5 Sep 2020 15:53:57 +0200 Subject: [PATCH 411/656] add prettier scripts and .prettierignore + workflow check --- .github/workflows/ci.yml | 3 +++ .prettierignore | 7 +++++++ package.json | 1 + 3 files changed, 11 insertions(+) create mode 100644 .prettierignore diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 492b008431..9ea1308336 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -69,6 +69,9 @@ jobs: - name: verify doc links run: node docs/verify-links.js + - name: prettier + run: yarn prettier:check + - name: lint run: yarn lerna -- run lint --since origin/master diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000000..ef75947604 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,7 @@ +.yarn +dist +microsite/build +coverage +*.hbs +templates +plugins/scaffolder-backend/sample-templates diff --git a/package.json b/package.json index 5645d913eb..bf2dfc3246 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "create-plugin": "backstage-cli create-plugin", "remove-plugin": "backstage-cli remove-plugin", "release": "if [ \"$(git symbolic-ref --short HEAD)\" = master ]; then echo \"don't try to release master\"; exit 1; else lerna version --no-push --force-publish; fi", + "prettier:check": "prettier --check .", "lerna": "lerna", "storybook": "yarn workspace storybook start", "build-storybook": "yarn workspace storybook build-storybook" From b045b166b62bc75764f128b07f986f235cccc80c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 5 Sep 2020 16:07:04 +0200 Subject: [PATCH 412/656] run prettier --- .github/PULL_REQUEST_TEMPLATE.md | 2 + .github/workflows/master-win.yml | 6 +-- .github/workflows/master.yml | 6 +-- CODE_OF_CONDUCT.md | 31 +++++++------ app-config.yaml | 4 +- docs/api/utility-apis.md | 5 +-- docs/dls/design.md | 4 +- .../extending/create-your-own-publisher.md | 12 ++--- docs/features/software-templates/index.md | 2 +- .../techdocs/creating-and-publishing.md | 6 +-- docs/getting-started/index.md | 3 +- install/kubernetes/app.yaml | 14 +++--- install/kubernetes/backend.yaml | 14 +++--- install/kubernetes/backstage/Chart.yaml | 2 +- install/kubernetes/backstage/values.yaml | 44 +++++++++++-------- install/kubernetes/ingress.yaml | 22 +++++----- install/kubernetes/service.yaml | 16 +++---- .../data/plugins/github-pull-requests.yaml | 1 - microsite/data/plugins/rollbar.yaml | 1 - microsite/data/plugins/travis-ci.yaml | 1 - microsite/sidebars.json | 6 ++- .../remove-plugin/removePlugin.test.ts | 2 +- .../commands/remove-plugin/removePlugin.ts | 4 +- .../auth/okta/OktaAuth.test.ts | 9 ++-- .../apis/implementations/auth/okta/index.ts | 2 +- .../SimpleStepper/SimpleStepper.stories.tsx | 2 +- .../src/layout/Sidebar/Sidebar.stories.tsx | 20 ++++----- .../techdocs-container/mock-docs/mkdocs.yml | 2 +- .../mock-docs/sub-docs/mkdocs.yml | 2 +- plugins/auth-backend/README.md | 4 +- .../auth-backend/src/providers/okta/index.ts | 2 +- .../src/providers/okta/types.d.ts | 4 +- plugins/explore/README.md | 1 + .../explore/src/components/ExploreCard.tsx | 2 +- plugins/gcp-projects/dev/index.tsx | 4 +- .../GraphiQLBrowser/GraphiQLBrowser.tsx | 2 +- .../components/AuditList/AuditListTable.tsx | 12 ++--- .../lighthouse/src/components/Intro/index.tsx | 2 +- plugins/scaffolder-backend/README.md | 1 + plugins/scaffolder-backend/src/index.ts | 1 - plugins/techdocs/src/api.ts | 8 +++- plugins/welcome/README.md | 1 + 42 files changed, 150 insertions(+), 139 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 57746da2e8..0437698301 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -4,7 +4,9 @@ That makes it easier to understand the change so we can :shipit: faster. --> #### :heavy_check_mark: Checklist + + - [ ] All tests are passing `yarn test` - [ ] Screenshots attached (for UI changes) - [ ] Relevant documentation updated diff --git a/.github/workflows/master-win.yml b/.github/workflows/master-win.yml index 296a7511bc..9fdff4af32 100644 --- a/.github/workflows/master-win.yml +++ b/.github/workflows/master-win.yml @@ -38,8 +38,6 @@ jobs: - name: yarn install run: yarn install --frozen-lockfile # End of yarn setup - - # Tests are broken on Windows, disabled for now - # - name: test - # run: yarn lerna -- run test +# - name: test +# run: yarn lerna -- run test diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 354838037e..b5c4fdf370 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -71,9 +71,9 @@ jobs: # Tags the commit with the version in the core package if the tag doesn't exist - uses: Klemensas/action-autotag@1.2.3 with: - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - package_root: "packages/core" - tag_prefix: "v" + GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' + package_root: 'packages/core' + tag_prefix: 'v' - name: Discord notification if: ${{ failure() }} diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 69f6457dd9..55269dd2a5 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -4,12 +4,12 @@ This code of conduct outlines our expectations for participants within the **Spo Our open source community strives to: -* **Be friendly and patient.** -* **Be welcoming**: We strive to be a community that welcomes and supports people of all backgrounds and identities. This includes, but is not limited to members of any race, ethnicity, culture, national origin, colour, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion, and mental and physical ability. -* **Be considerate**: Your work will be used by other people, and you in turn will depend on the work of others. Any decision you take will affect users and colleagues, and you should take those consequences into account when making decisions. Remember that we're a world-wide community, so you might not be communicating in someone else's primary language. -* **Be respectful**: Not all of us will agree all the time, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It’s important to remember that a community where people feel uncomfortable or threatened is not a productive one. -* **Be careful in the words that we choose**: we are a community of professionals, and we conduct ourselves professionally. Be kind to others. Do not insult or put down other participants. Harassment and other exclusionary behavior aren't acceptable. -* **Try to understand why we disagree**: Disagreements, both social and technical, happen all the time. It is important that we resolve disagreements and differing views constructively. Remember that we’re different. The strength of our community comes from its diversity, people from a wide range of backgrounds. Different people have different perspectives on issues. Being unable to understand why someone holds a viewpoint doesn’t mean that they’re wrong. Don’t forget that it is human to err and blaming each other doesn’t get us anywhere. Instead, focus on helping to resolve issues and learning from mistakes. +- **Be friendly and patient.** +- **Be welcoming**: We strive to be a community that welcomes and supports people of all backgrounds and identities. This includes, but is not limited to members of any race, ethnicity, culture, national origin, colour, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion, and mental and physical ability. +- **Be considerate**: Your work will be used by other people, and you in turn will depend on the work of others. Any decision you take will affect users and colleagues, and you should take those consequences into account when making decisions. Remember that we're a world-wide community, so you might not be communicating in someone else's primary language. +- **Be respectful**: Not all of us will agree all the time, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It’s important to remember that a community where people feel uncomfortable or threatened is not a productive one. +- **Be careful in the words that we choose**: we are a community of professionals, and we conduct ourselves professionally. Be kind to others. Do not insult or put down other participants. Harassment and other exclusionary behavior aren't acceptable. +- **Try to understand why we disagree**: Disagreements, both social and technical, happen all the time. It is important that we resolve disagreements and differing views constructively. Remember that we’re different. The strength of our community comes from its diversity, people from a wide range of backgrounds. Different people have different perspectives on issues. Being unable to understand why someone holds a viewpoint doesn’t mean that they’re wrong. Don’t forget that it is human to err and blaming each other doesn’t get us anywhere. Instead, focus on helping to resolve issues and learning from mistakes. ## Definitions @@ -18,7 +18,7 @@ Harassment includes, but is not limited to: - Offensive comments related to gender, gender identity and expression, sexual orientation, disability, mental illness, neuro(a)typicality, physical appearance, body size, race, age, regional discrimination, political or religious affiliation - Unwelcome comments regarding a person’s lifestyle choices and practices, including those related to food, health, parenting, drugs, and employment - Deliberate misgendering. This includes deadnaming or persistently using a pronoun that does not correctly reflect a person's gender identity. You must address people by the name they give you when not addressing them by their username or handle -- Physical contact and simulated physical contact (eg, textual descriptions like “*hug*†or “*backrub*â€) without consent or after a request to stop +- Physical contact and simulated physical contact (eg, textual descriptions like “_hug_†or “_backrub_â€) without consent or after a request to stop - Threats of violence, both physical and psychological - Incitement of violence towards any individual, including encouraging a person to commit suicide or to engage in self-harm - Deliberate intimidation @@ -39,7 +39,6 @@ Our open source community prioritizes marginalized people’s safety over privil - Communicating in a ‘tone’ you don’t find congenial - Criticizing racist, sexist, cissexist, or otherwise oppressive behavior or assumptions - ### Diversity Statement We encourage everyone to participate and are committed to building a community for all. Although we will fail at times, we seek to treat everyone both as fairly and equally as possible. Whenever a participant has made a mistake, we expect them to take responsibility for it. If someone has been harmed or offended, it is our responsibility to listen carefully and respectfully, and do our best to right the wrong. @@ -53,18 +52,18 @@ If you experience or witness unacceptable behavior—or have any other concerns - Your contact information. - Names (real, nicknames, or pseudonyms) of any individuals involved. If there are additional witnesses, please -include them as well. Your account of what occurred, and if you believe the incident is ongoing. If there is a publicly available record (e.g. a mailing list archive or a public IRC logger), please include a link. + include them as well. Your account of what occurred, and if you believe the incident is ongoing. If there is a publicly available record (e.g. a mailing list archive or a public IRC logger), please include a link. - Any additional information that may be helpful. After filing a report, a representative will contact you personally, review the incident, follow up with any additional questions, and make a decision as to how to respond. If the person who is harassing you is part of the response team, they will recuse themselves from handling your incident. If the complaint originates from a member of the response team, it will be handled by a different member of the response team. We will respect confidentiality requests for the purpose of protecting victims of abuse. ### Attribution & Acknowledgements -We all stand on the shoulders of giants across many open source communities. We'd like to thank the communities and projects that established code of conducts and diversity statements as our inspiration: +We all stand on the shoulders of giants across many open source communities. We'd like to thank the communities and projects that established code of conducts and diversity statements as our inspiration: -* [Django](https://www.djangoproject.com/conduct/reporting/) -* [Python](https://www.python.org/community/diversity/) -* [Ubuntu](http://www.ubuntu.com/about/about-ubuntu/conduct) -* [Contributor Covenant](http://contributor-covenant.org/) -* [Geek Feminism](http://geekfeminism.org/about/code-of-conduct/) -* [Citizen Code of Conduct](http://citizencodeofconduct.org/) +- [Django](https://www.djangoproject.com/conduct/reporting/) +- [Python](https://www.python.org/community/diversity/) +- [Ubuntu](http://www.ubuntu.com/about/about-ubuntu/conduct) +- [Contributor Covenant](http://contributor-covenant.org/) +- [Geek Feminism](http://geekfeminism.org/about/code-of-conduct/) +- [Citizen Code of Conduct](http://citizencodeofconduct.org/) diff --git a/app-config.yaml b/app-config.yaml index 957d17990a..2620f6b9b7 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -121,8 +121,8 @@ auth: $secret: env: GITLAB_BASE_URL saml: - entryPoint: "http://localhost:7001/" - issuer: "passport-saml" + entryPoint: 'http://localhost:7001/' + issuer: 'passport-saml' okta: development: clientId: diff --git a/docs/api/utility-apis.md b/docs/api/utility-apis.md index b4c2fd161e..0e09da3f83 100644 --- a/docs/api/utility-apis.md +++ b/docs/api/utility-apis.md @@ -71,10 +71,9 @@ import { AlertApiForwarder, ErrorApiForwarder, ErrorAlerter, - ConfigApi + ConfigApi, } from '@backstage/core'; - const apis = (config: ConfigApi) => { const builder = ApiRegistry.builder(); @@ -84,7 +83,7 @@ const apis = (config: ConfigApi) => { // The error API uses the alert API to send error notifications to the user. builder.add(errorApiRef, new ErrorAlerter(alertApi, new ErrorApiForwarder())); return builder.build(); -} +}; const app = createApp({ apis, diff --git a/docs/dls/design.md b/docs/dls/design.md index 23ba84024a..b434fc8791 100644 --- a/docs/dls/design.md +++ b/docs/dls/design.md @@ -116,8 +116,8 @@ components. If you’d like to help build up our design system, you can also add components we’ve designed to the Storybook as well. **[Figma](https://www.figma.com/@backstage)** - we're stoked to be using Figma -Community to share our design assets. You can duplicate our UI Kit -and design your own plugin for Backstage. +Community to share our design assets. You can duplicate our UI Kit and design +your own plugin for Backstage. **[Discord](https://discord.gg/EBHEGzX)** - all design questions should be directed to the _#design_ channel. diff --git a/docs/features/software-templates/extending/create-your-own-publisher.md b/docs/features/software-templates/extending/create-your-own-publisher.md index 391f6f0658..111125b49f 100644 --- a/docs/features/software-templates/extending/create-your-own-publisher.md +++ b/docs/features/software-templates/extending/create-your-own-publisher.md @@ -7,18 +7,18 @@ Publishers are responsible for pushing and storing the templated skeleton after the values have been templated by the `Templater`. See [Create your own templater](./create-your-own-templater.md) for more info. -They receive a directory or location where the templater has sucessfully run -and is now ready to store somewhere. They also are given some other options -which are sent from the frontend, such as the `storePath` which is a string of -where the frontend thinks we should save this templated folder. +They receive a directory or location where the templater has sucessfully run and +is now ready to store somewhere. They also are given some other options which +are sent from the frontend, such as the `storePath` which is a string of where +the frontend thinks we should save this templated folder. Currently we provide the following `publishers`: - `github` This publisher is passed through to the `createRouter` function of the -`@spotify/plugin-scaffolder-backend`. Currently, only one publisher is supported, -but PR's are always welcome. +`@spotify/plugin-scaffolder-backend`. Currently, only one publisher is +supported, but PR's are always welcome. An full example backend can be found [here](https://github.com/spotify/backstage/blob/d91c10f654475a60829fa33a5c81018e517a319a/packages/backend/src/plugins/scaffolder.ts), diff --git a/docs/features/software-templates/index.md b/docs/features/software-templates/index.md index 1c67676b3e..b594cfce2a 100644 --- a/docs/features/software-templates/index.md +++ b/docs/features/software-templates/index.md @@ -4,7 +4,7 @@ title: Software Templates --- The Software Templates part of Backstage is a tool that can help you create -Components inside Backstage. By default, it has the ability to load skeletons of +Components inside Backstage. By default, it has the ability to load skeletons of code, template in some variables, and then publish the template to some location like GitHub. diff --git a/docs/features/techdocs/creating-and-publishing.md b/docs/features/techdocs/creating-and-publishing.md index 037c4be172..4a37b6bca5 100644 --- a/docs/features/techdocs/creating-and-publishing.md +++ b/docs/features/techdocs/creating-and-publishing.md @@ -30,9 +30,9 @@ the documentation template. Create an entity from the documentation template and you will get the needed setup for free. -!!! warning Currently the Backstage Software Templates are limited to create repositories -inside GitHub organizations. You also need to generate an personal access token -and use as an environment variable. Read more about this +!!! warning Currently the Backstage Software Templates are limited to create +repositories inside GitHub organizations. You also need to generate an personal +access token and use as an environment variable. Read more about this [here](../software-templates/installation.md#runtime-dependencies). ### Manually add documentation setup to already existing repository diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index abe7776371..c1c6ea9231 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -4,7 +4,8 @@ title: Running Backstage Locally --- First make sure you are using NodeJS with an Active LTS Release, currently v12. -This is made easy with a version manager such as nvm which allows for version switching. +This is made easy with a version manager such as nvm which allows for version +switching. ```bash # Checking your version diff --git a/install/kubernetes/app.yaml b/install/kubernetes/app.yaml index ce284afd31..c54e25d519 100644 --- a/install/kubernetes/app.yaml +++ b/install/kubernetes/app.yaml @@ -18,10 +18,10 @@ spec: component: frontend spec: containers: - - name: app - image: spotify/backstage:latest - imagePullPolicy: IfNotPresent - ports: - - containerPort: 80 - name: app - protocol: TCP + - name: app + image: spotify/backstage:latest + imagePullPolicy: IfNotPresent + ports: + - containerPort: 80 + name: app + protocol: TCP diff --git a/install/kubernetes/backend.yaml b/install/kubernetes/backend.yaml index bc82731958..f0695753fd 100644 --- a/install/kubernetes/backend.yaml +++ b/install/kubernetes/backend.yaml @@ -18,10 +18,10 @@ spec: component: backend spec: containers: - - name: backend - image: spotify/backstage-backend:latest - imagePullPolicy: IfNotPresent - ports: - - containerPort: 7000 - name: backend - protocol: TCP + - name: backend + image: spotify/backstage-backend:latest + imagePullPolicy: IfNotPresent + ports: + - containerPort: 7000 + name: backend + protocol: TCP diff --git a/install/kubernetes/backstage/Chart.yaml b/install/kubernetes/backstage/Chart.yaml index 23ea41ec41..efc3635a7f 100644 --- a/install/kubernetes/backstage/Chart.yaml +++ b/install/kubernetes/backstage/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -appVersion: "1.0" +appVersion: '1.0' description: A Helm chart for Spotify Backstage name: backstage version: 0.1.1-alpha.12 diff --git a/install/kubernetes/backstage/values.yaml b/install/kubernetes/backstage/values.yaml index fd4dd66b53..d91808ed28 100644 --- a/install/kubernetes/backstage/values.yaml +++ b/install/kubernetes/backstage/values.yaml @@ -1,12 +1,12 @@ app: enabled: true - nameOverride: "" - fullnameOverride: "" + nameOverride: '' + fullnameOverride: '' replicaCount: 1 serviceAccount: create: false - Name: "" - image: + Name: '' + image: repository: spotify/backstage tag: latest pullPolicy: Always @@ -15,20 +15,23 @@ app: port: 80 ingress: enabled: false - annotations: {} + annotations: + {} # kubernetes.io/ingress.class: "nginx" hosts: - - host: backstage.local - paths: - - / + - host: backstage.local + paths: + - / tls: [] # - secretName: chart-example-tls # hosts: # - chart-example.local imagePullSecrets: [] - podSecurityContext: {} + podSecurityContext: + {} # fsGroup: 2000 - securityContext: {} + securityContext: + {} # capabilities: # drop: # - ALL @@ -48,12 +51,12 @@ app: backend: enabled: false - nameOverride: "" - fullnameOverride: "" + nameOverride: '' + fullnameOverride: '' replicaCount: 1 serviceAccount: create: false - Name: "" + Name: '' image: repository: spotify/backstage-backend tag: latest @@ -63,20 +66,23 @@ backend: port: 7000 ingress: enabled: false - annotations: {} + annotations: + {} # kubernetes.io/ingress.class: "nginx" hosts: - - host: backstage.local - paths: - - /backend + - host: backstage.local + paths: + - /backend tls: [] # - secretName: chart-example-tls # hosts: # - chart-example.local imagePullSecrets: [] - podSecurityContext: {} + podSecurityContext: + {} # fsGroup: 2000 - securityContext: {} + securityContext: + {} # capabilities: # drop: # - ALL diff --git a/install/kubernetes/ingress.yaml b/install/kubernetes/ingress.yaml index d2ecae74c6..f93a814a0c 100644 --- a/install/kubernetes/ingress.yaml +++ b/install/kubernetes/ingress.yaml @@ -7,14 +7,14 @@ metadata: component: ingress spec: rules: - - host: - http: - paths: - - backend: - serviceName: backstage - servicePort: frontend - path: / - - backend: - serviceName: backstage-backend - servicePort: backend - path: /backend + - host: + http: + paths: + - backend: + serviceName: backstage + servicePort: frontend + path: / + - backend: + serviceName: backstage-backend + servicePort: backend + path: /backend diff --git a/install/kubernetes/service.yaml b/install/kubernetes/service.yaml index bbbc3d6e17..4d947b7afc 100644 --- a/install/kubernetes/service.yaml +++ b/install/kubernetes/service.yaml @@ -11,10 +11,10 @@ spec: app: backstage component: frontend ports: - - name: frontend - port: 80 - protocol: TCP - targetPort: app + - name: frontend + port: 80 + protocol: TCP + targetPort: app --- apiVersion: v1 kind: Service @@ -29,7 +29,7 @@ spec: app: backstage component: backend ports: - - name: backend - port: 7000 - protocol: TCP - targetPort: backend + - name: backend + port: 7000 + protocol: TCP + targetPort: backend diff --git a/microsite/data/plugins/github-pull-requests.yaml b/microsite/data/plugins/github-pull-requests.yaml index 917198a221..6479452c8e 100644 --- a/microsite/data/plugins/github-pull-requests.yaml +++ b/microsite/data/plugins/github-pull-requests.yaml @@ -7,4 +7,3 @@ description: View GitHub pull requests for your service in Backstage. documentation: https://roadie.io/backstage/plugins/github-pull-requests iconUrl: https://roadie.io/static/7f13bb8d861d8dedc5112fb939d215f9/351f2/GitHub-Mark-Light-120px-plus.png npmPackageName: '@roadiehq/backstage-plugin-github-pull-requests' - diff --git a/microsite/data/plugins/rollbar.yaml b/microsite/data/plugins/rollbar.yaml index 0118fab391..8ef3d8d66a 100644 --- a/microsite/data/plugins/rollbar.yaml +++ b/microsite/data/plugins/rollbar.yaml @@ -7,4 +7,3 @@ description: View Rollbar errors for your services in Backstage. documentation: https://github.com/spotify/backstage/tree/master/plugins/rollbar iconUrl: https://rollbar.com/assets/media/rollbar-mark-color.png npmPackageName: '@backstage/plugin-rollbar' - diff --git a/microsite/data/plugins/travis-ci.yaml b/microsite/data/plugins/travis-ci.yaml index 48c0a4cb86..520b884c20 100644 --- a/microsite/data/plugins/travis-ci.yaml +++ b/microsite/data/plugins/travis-ci.yaml @@ -7,4 +7,3 @@ description: View Travis CI builds for your service in Backstage. documentation: https://roadie.io/backstage/plugins/travis-ci iconUrl: https://roadie.io/static/af2941eaf0af675facb281d566f42e14/45f2b/travis-ci-mascot-200x200.png npmPackageName: '@roadiehq/backstage-plugin-travis-ci' - diff --git a/microsite/sidebars.json b/microsite/sidebars.json index f5741bd355..d31c14fd1d 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -92,7 +92,11 @@ { "type": "subcategory", "label": "Publishing", - "ids": ["plugins/publishing", "plugins/publish-private", "plugins/add-to-marketplace"] + "ids": [ + "plugins/publishing", + "plugins/publish-private", + "plugins/add-to-marketplace" + ] } ], "Configuration": [ diff --git a/packages/cli/src/commands/remove-plugin/removePlugin.test.ts b/packages/cli/src/commands/remove-plugin/removePlugin.test.ts index 465260008d..72fbc6f084 100644 --- a/packages/cli/src/commands/remove-plugin/removePlugin.test.ts +++ b/packages/cli/src/commands/remove-plugin/removePlugin.test.ts @@ -66,7 +66,7 @@ const createTestPluginFile = async ( fse.copyFileSync(pluginsFilePath, testFilePath); const pluginNameCapitalized = testPluginName .split('-') - .map((name) => capitalize(name)) + .map(name => capitalize(name)) .join(''); const exportStatement = `export { default as ${pluginNameCapitalized}} from @backstage/plugin-${testPluginName}`; addExportStatement(testFilePath, exportStatement); diff --git a/packages/cli/src/commands/remove-plugin/removePlugin.ts b/packages/cli/src/commands/remove-plugin/removePlugin.ts index b9bf1c4af3..1395384022 100644 --- a/packages/cli/src/commands/remove-plugin/removePlugin.ts +++ b/packages/cli/src/commands/remove-plugin/removePlugin.ts @@ -84,7 +84,7 @@ const removeAllStatementsContainingID = async (file: string, ID: string) => { const originalContent = await fse.readFile(file, 'utf8'); const contentAfterRemoval = originalContent .split('\n') - .filter((statement) => !statement.includes(`${ID}`)) // get rid of lines with pluginName + .filter(statement => !statement.includes(`${ID}`)) // get rid of lines with pluginName .join('\n'); if (originalContent !== contentAfterRemoval) { await fse.writeFile(file, contentAfterRemoval, 'utf8'); @@ -100,7 +100,7 @@ export const removeReferencesFromPluginsFile = async ( ) => { const pluginNameCapitalized = pluginName .split('-') - .map((name) => capitalize(name)) + .map(name => capitalize(name)) .join(''); await Task.forItem('removing', 'export references', async () => { diff --git a/packages/core-api/src/apis/implementations/auth/okta/OktaAuth.test.ts b/packages/core-api/src/apis/implementations/auth/okta/OktaAuth.test.ts index ab6c46c9b4..40e6f78909 100644 --- a/packages/core-api/src/apis/implementations/auth/okta/OktaAuth.test.ts +++ b/packages/core-api/src/apis/implementations/auth/okta/OktaAuth.test.ts @@ -23,7 +23,7 @@ const PREFIX = 'okta.'; describe('OktaAuth', () => { it('should get refreshed access token', async () => { const getSession = jest.fn().mockResolvedValue({ - providerInfo: { accessToken: 'access-token', expiresAt: theFuture }, + providerInfo: { accessToken: 'access-token', expiresAt: theFuture }, }); const oktaAuth = new OktaAuth({ getSession } as any); @@ -116,7 +116,10 @@ describe('OktaAuth', () => { ['profile email', ['profile', 'email']], [`${PREFIX}groups.manage`, [`${PREFIX}groups.manage`]], ['groups.read', [`${PREFIX}groups.read`]], - [`${PREFIX}groups.manage groups.read, openid`, [`${PREFIX}groups.manage`, `${PREFIX}groups.read`, 'openid']], + [ + `${PREFIX}groups.manage groups.read, openid`, + [`${PREFIX}groups.manage`, `${PREFIX}groups.read`, 'openid'], + ], [`email\t ${PREFIX}groups.read`, ['email', `${PREFIX}groups.read`]], // Some incorrect scopes that we don't try to fix @@ -126,4 +129,4 @@ describe('OktaAuth', () => { ])(`should normalize scopes correctly - %p`, (scope, scopes) => { expect(OktaAuth.normalizeScopes(scope)).toEqual(new Set(scopes)); }); -}); +}); diff --git a/packages/core-api/src/apis/implementations/auth/okta/index.ts b/packages/core-api/src/apis/implementations/auth/okta/index.ts index 2bef0ce0db..5d6d382c45 100644 --- a/packages/core-api/src/apis/implementations/auth/okta/index.ts +++ b/packages/core-api/src/apis/implementations/auth/okta/index.ts @@ -15,4 +15,4 @@ */ export * from './types'; -export { default as OktaAuth } from './OktaAuth'; +export { default as OktaAuth } from './OktaAuth'; diff --git a/packages/core/src/components/SimpleStepper/SimpleStepper.stories.tsx b/packages/core/src/components/SimpleStepper/SimpleStepper.stories.tsx index 81f558f49d..52710ffeaf 100644 --- a/packages/core/src/components/SimpleStepper/SimpleStepper.stories.tsx +++ b/packages/core/src/components/SimpleStepper/SimpleStepper.stories.tsx @@ -51,7 +51,7 @@ export const ConditionalButtons = () => { setRequired(!!e.target.value)} + onChange={e => setRequired(!!e.target.value)} /> diff --git a/packages/core/src/layout/Sidebar/Sidebar.stories.tsx b/packages/core/src/layout/Sidebar/Sidebar.stories.tsx index b286071426..d7451965fe 100644 --- a/packages/core/src/layout/Sidebar/Sidebar.stories.tsx +++ b/packages/core/src/layout/Sidebar/Sidebar.stories.tsx @@ -29,9 +29,7 @@ import HomeOutlinedIcon from '@material-ui/icons/HomeOutlined'; import AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline'; import Star from '@material-ui/icons/Star'; import { MemoryRouter } from 'react-router-dom'; -import { - githubAuthApiRef, -} from '@backstage/core-api'; +import { githubAuthApiRef } from '@backstage/core-api'; export default { title: 'Sidebar', @@ -60,12 +58,14 @@ export const SampleSidebar = () => ( - - } /> + + } + /> ); diff --git a/packages/techdocs-container/mock-docs/mkdocs.yml b/packages/techdocs-container/mock-docs/mkdocs.yml index 8639c6abef..d769fddfcf 100644 --- a/packages/techdocs-container/mock-docs/mkdocs.yml +++ b/packages/techdocs-container/mock-docs/mkdocs.yml @@ -1,7 +1,7 @@ site_name: 'mock-docs' site_description: 'mock-docs site description' -nav: +nav: - Home: index.md - SubDocs: '!include ./sub-docs/mkdocs.yml' diff --git a/packages/techdocs-container/mock-docs/sub-docs/mkdocs.yml b/packages/techdocs-container/mock-docs/sub-docs/mkdocs.yml index 09504c1b31..4490ddbefa 100644 --- a/packages/techdocs-container/mock-docs/sub-docs/mkdocs.yml +++ b/packages/techdocs-container/mock-docs/sub-docs/mkdocs.yml @@ -1,4 +1,4 @@ site_name: subdocs nav: - - Home 2: "index.md" + - Home 2: 'index.md' diff --git a/plugins/auth-backend/README.md b/plugins/auth-backend/README.md index e1d144c1e0..9af90df3f2 100644 --- a/plugins/auth-backend/README.md +++ b/plugins/auth-backend/README.md @@ -85,8 +85,8 @@ Click [here](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMe - Give the app a name. e.g. `backstage-dev` - Select `Accounts in this organizational directory only` under supported account types. - Enter the callback URL for your backstage backend instance: - - For local development, this is likely `http://localhost:7000/auth/microsoft/handler/frame` - - For non-local deployments, this will be `https://{APP_FQDN}:{APP_BACKEND_PORT}/auth/microsoft/handler/frame` + - For local development, this is likely `http://localhost:7000/auth/microsoft/handler/frame` + - For non-local deployments, this will be `https://{APP_FQDN}:{APP_BACKEND_PORT}/auth/microsoft/handler/frame` - Click `Register`. We also need to generate a client secret so Backstage can authenticate as this app. diff --git a/plugins/auth-backend/src/providers/okta/index.ts b/plugins/auth-backend/src/providers/okta/index.ts index bc32601ac2..05cc398f43 100644 --- a/plugins/auth-backend/src/providers/okta/index.ts +++ b/plugins/auth-backend/src/providers/okta/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { createOktaProvider } from './provider'; +export { createOktaProvider } from './provider'; diff --git a/plugins/auth-backend/src/providers/okta/types.d.ts b/plugins/auth-backend/src/providers/okta/types.d.ts index bed6d24043..6b49d99817 100644 --- a/plugins/auth-backend/src/providers/okta/types.d.ts +++ b/plugins/auth-backend/src/providers/okta/types.d.ts @@ -14,9 +14,7 @@ * limitations under the License. */ declare module 'passport-okta-oauth' { - export class Strategy { - constructor(options: any, verify: any) + constructor(options: any, verify: any); } } - \ No newline at end of file diff --git a/plugins/explore/README.md b/plugins/explore/README.md index 12a4e58380..d5453e594c 100644 --- a/plugins/explore/README.md +++ b/plugins/explore/README.md @@ -1,4 +1,5 @@ # Title + Welcome to the explore plugin! ## Sub-section 1 diff --git a/plugins/explore/src/components/ExploreCard.tsx b/plugins/explore/src/components/ExploreCard.tsx index af6eca61b7..9c61e9bea8 100644 --- a/plugins/explore/src/components/ExploreCard.tsx +++ b/plugins/explore/src/components/ExploreCard.tsx @@ -28,7 +28,7 @@ import { } from '@material-ui/core'; import { BackstageTheme } from '@backstage/theme'; -const useStyles = makeStyles((theme) => ({ +const useStyles = makeStyles(theme => ({ card: { display: 'flex', flexDirection: 'column', diff --git a/plugins/gcp-projects/dev/index.tsx b/plugins/gcp-projects/dev/index.tsx index d97643057b..812a5585d4 100644 --- a/plugins/gcp-projects/dev/index.tsx +++ b/plugins/gcp-projects/dev/index.tsx @@ -17,6 +17,4 @@ import { createDevApp } from '@backstage/dev-utils'; import { plugin } from '../src/plugin'; -createDevApp() - .registerPlugin(plugin) - .render(); +createDevApp().registerPlugin(plugin).render(); diff --git a/plugins/graphiql/src/components/GraphiQLBrowser/GraphiQLBrowser.tsx b/plugins/graphiql/src/components/GraphiQLBrowser/GraphiQLBrowser.tsx index b41fc04b9e..ce56017984 100644 --- a/plugins/graphiql/src/components/GraphiQLBrowser/GraphiQLBrowser.tsx +++ b/plugins/graphiql/src/components/GraphiQLBrowser/GraphiQLBrowser.tsx @@ -24,7 +24,7 @@ import { BackstageTheme } from '@backstage/theme'; const GraphiQL = React.lazy(() => import('graphiql')); -const useStyles = makeStyles((theme) => ({ +const useStyles = makeStyles(theme => ({ root: { height: '100%', display: 'flex', diff --git a/plugins/lighthouse/src/components/AuditList/AuditListTable.tsx b/plugins/lighthouse/src/components/AuditList/AuditListTable.tsx index 20dd1f39f8..e52805000a 100644 --- a/plugins/lighthouse/src/components/AuditList/AuditListTable.tsx +++ b/plugins/lighthouse/src/components/AuditList/AuditListTable.tsx @@ -31,7 +31,7 @@ const columns: TableColumn[] = [ title: 'Website URL', field: 'websiteUrl', }, - ...CATEGORIES.map((category) => ({ + ...CATEGORIES.map(category => ({ title: CATEGORY_LABELS[category], field: category, })), @@ -56,7 +56,7 @@ export const AuditListTable: FC<{ items: Website[] }> = ({ items }) => { const lighthouseApi = useApi(lighthouseApiRef); const runRefresh = (websites: Website[]) => { - websites.forEach(async (website) => { + websites.forEach(async website => { const response = await lighthouseApi.getWebsiteForAuditId( website.lastAudit.id, ); @@ -64,7 +64,7 @@ export const AuditListTable: FC<{ items: Website[] }> = ({ items }) => { if (auditStatus === 'COMPLETED' || auditStatus === 'FAILED') { const newWebsiteData = websiteState.slice(0); newWebsiteData[ - newWebsiteData.findIndex((w) => w.url === response.url) + newWebsiteData.findIndex(w => w.url === response.url) ] = response; setWebsiteState(newWebsiteData); } @@ -72,7 +72,7 @@ export const AuditListTable: FC<{ items: Website[] }> = ({ items }) => { }; const runningWebsiteAudits = websiteState - ? websiteState.filter((website) => website.lastAudit.status === 'RUNNING') + ? websiteState.filter(website => website.lastAudit.status === 'RUNNING') : []; useInterval( @@ -80,10 +80,10 @@ export const AuditListTable: FC<{ items: Website[] }> = ({ items }) => { runningWebsiteAudits.length > 0 ? 5000 : null, ); - const data = websiteState.map((website) => { + const data = websiteState.map(website => { const trendlineData = buildSparklinesDataForItem(website); const trendlines: any = {}; - CATEGORIES.forEach((category) => { + CATEGORIES.forEach(category => { trendlines[category] = ( ({ +const useStyles = makeStyles(theme => ({ tabs: { marginBottom: -18 }, tab: { minWidth: 72, paddingLeft: 1, paddingRight: 1 }, content: { marginBottom: theme.spacing(2) }, diff --git a/plugins/scaffolder-backend/README.md b/plugins/scaffolder-backend/README.md index 7ffbeae1d1..185938b006 100644 --- a/plugins/scaffolder-backend/README.md +++ b/plugins/scaffolder-backend/README.md @@ -1,4 +1,5 @@ # Title + Welcome to the scaffolder plugin! ## Sub-section 1 diff --git a/plugins/scaffolder-backend/src/index.ts b/plugins/scaffolder-backend/src/index.ts index 0a0a4cb95f..c461bfede6 100644 --- a/plugins/scaffolder-backend/src/index.ts +++ b/plugins/scaffolder-backend/src/index.ts @@ -16,4 +16,3 @@ export * from './scaffolder'; export * from './service/router'; - diff --git a/plugins/techdocs/src/api.ts b/plugins/techdocs/src/api.ts index 951ad5e16c..6fc913e5df 100644 --- a/plugins/techdocs/src/api.ts +++ b/plugins/techdocs/src/api.ts @@ -42,7 +42,9 @@ export class TechDocsStorageApi implements TechDocsStorage { async getEntityDocs(entityId: ParsedEntityId, path: string) { const { kind, namespace, name } = entityId; - const url = `${this.apiOrigin}/${kind}/${namespace ? namespace : 'default'}/${name}/${path}`; + const url = `${this.apiOrigin}/${kind}/${ + namespace ? namespace : 'default' + }/${name}/${path}`; const request = await fetch( `${url.endsWith('/') ? url : `${url}/`}index.html`, @@ -64,7 +66,9 @@ export class TechDocsStorageApi implements TechDocsStorage { return new URL( oldBaseUrl, - `${this.apiOrigin}/${kind}/${namespace ? namespace : 'default'}/${name}/${path}`, + `${this.apiOrigin}/${kind}/${ + namespace ? namespace : 'default' + }/${name}/${path}`, ).toString(); } } diff --git a/plugins/welcome/README.md b/plugins/welcome/README.md index 95d8947824..f0211c248a 100644 --- a/plugins/welcome/README.md +++ b/plugins/welcome/README.md @@ -1,4 +1,5 @@ # Title + Welcome to the welcome plugin! ## Sub-section 1 From d1fc52d740bc7d8b6be8f9e853e2aba62fd93dd6 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Sat, 5 Sep 2020 20:10:23 +0200 Subject: [PATCH 413/656] TechDocs: add docs by default to springboot grpc template (#2288) * add docs by default to springboot grpc template * delete line from rebase --- .../component-info.yaml | 1 + .../docs/index.md | 28 +++++++++++++++++++ .../{{cookiecutter.component_id}}/mkdocs.yml | 8 ++++++ 3 files changed, 37 insertions(+) create mode 100644 plugins/scaffolder-backend/sample-templates/springboot-grpc-template/{{cookiecutter.component_id}}/docs/index.md create mode 100644 plugins/scaffolder-backend/sample-templates/springboot-grpc-template/{{cookiecutter.component_id}}/mkdocs.yml diff --git a/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/{{cookiecutter.component_id}}/component-info.yaml b/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/{{cookiecutter.component_id}}/component-info.yaml index 618209f44c..05b87c9c0c 100644 --- a/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/{{cookiecutter.component_id}}/component-info.yaml +++ b/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/{{cookiecutter.component_id}}/component-info.yaml @@ -5,6 +5,7 @@ metadata: description: {{cookiecutter.description}} annotations: github.com/project-slug: {{cookiecutter.storePath}} + backstage.io/techdocs-ref: github:https://github.com/{{cookiecutter.storePath}} spec: type: service lifecycle: experimental diff --git a/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/{{cookiecutter.component_id}}/docs/index.md b/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/{{cookiecutter.component_id}}/docs/index.md new file mode 100644 index 0000000000..5352ef7801 --- /dev/null +++ b/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/{{cookiecutter.component_id}}/docs/index.md @@ -0,0 +1,28 @@ +## {{ cookiecutter.component_id }} + +{{ cookiecutter.description }} + +## Getting started + +Start write your documentation by adding more markdown (.md) files to this folder (/docs) or replace the content in this file. + +## Table of Contents + +The Table of Contents on the right is generated automatically based on the hierarchy +of headings. Only use one H1 (`#` in Markdown) per file. + +## Site navigation + +For new pages to appear in the left hand navigation you need edit the `mkdocs.yml` +file in root of your repo. The navigation can also link out to other sites. + +Alternatively, if there is no `nav` section in `mkdocs.yml`, a navigation section +will be created for you. However, you will not be able to use alternate titles for +pages, or include links to other sites. + +Note that MkDocs uses `mkdocs.yml`, not `mkdocs.yaml`, although both appear to work. +See also . + +## Support + +That's it. If you need support, reach out in [#docs-like-code](https://discord.com/channels/687207715902193673/714754240933003266) on Discord. diff --git a/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/{{cookiecutter.component_id}}/mkdocs.yml b/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/{{cookiecutter.component_id}}/mkdocs.yml new file mode 100644 index 0000000000..0d10d11063 --- /dev/null +++ b/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/{{cookiecutter.component_id}}/mkdocs.yml @@ -0,0 +1,8 @@ +site_name: {{cookiecutter.component_id}} +site_description: {{cookiecutter.description}} + +nav: + - Introduction: index.md + +plugins: + - techdocs-core From cff489d03dc49ff5489136d4c8f610daba120d52 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Sat, 5 Sep 2020 20:10:44 +0200 Subject: [PATCH 414/656] link on entity page to link to correct docs (#2289) --- plugins/catalog/src/components/AboutCard/AboutCard.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/catalog/src/components/AboutCard/AboutCard.tsx b/plugins/catalog/src/components/AboutCard/AboutCard.tsx index d83beaedb5..0ab918dd6f 100644 --- a/plugins/catalog/src/components/AboutCard/AboutCard.tsx +++ b/plugins/catalog/src/components/AboutCard/AboutCard.tsx @@ -104,7 +104,9 @@ export function AboutCard({ entity }: AboutCardProps) { } - href={`/docs/${''}`} + href={`/docs/${entity.kind}:${entity.metadata.namespace ?? ''}:${ + entity.metadata.name + }`} /> } From 76269629d0ac51207cf86d228f5a4d90b11f59d6 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 6 Sep 2020 10:15:48 +0200 Subject: [PATCH 415/656] cli: simplify command loading --- packages/cli/src/index.ts | 62 ++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 33 deletions(-) diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 9fb909592b..1d78771006 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -26,18 +26,18 @@ const main = (argv: string[]) => { .command('app:build') .description('Build an app for a production release') .option('--stats', 'Write bundle stats to output directory') - .action(lazyAction(() => import('./commands/app/build'), 'default')); + .action(run(() => import('./commands/app/build').then(m => m.default))); program .command('app:serve') .description('Serve an app for local development') .option('--check', 'Enable type checking and linting') - .action(lazyAction(() => import('./commands/app/serve'), 'default')); + .action(run(() => import('./commands/app/serve').then(m => m.default))); program .command('backend:build') .description('Build a backend plugin') - .action(lazyAction(() => import('./commands/backend/build'), 'default')); + .action(run(() => import('./commands/backend/build').then(m => m.default))); program .command('backend:build-image ') @@ -45,7 +45,7 @@ const main = (argv: string[]) => { 'Builds a docker image from the package, with all local deps included', ) .action( - lazyAction(() => import('./commands/backend/buildImage'), 'default'), + run(() => import('./commands/backend/buildImage').then(m => m.default)), ); program @@ -53,22 +53,21 @@ const main = (argv: string[]) => { .description('Start local development server with HMR for the backend') .option('--check', 'Enable type checking and linting') .option('--inspect', 'Enable debugger') - .action(lazyAction(() => import('./commands/backend/dev'), 'default')); + .action(run(() => import('./commands/backend/dev').then(m => m.default))); program .command('app:diff') .option('--check', 'Fail if changes are required') .option('--yes', 'Apply all changes') .description('Diff an existing app with the creation template') - .action(lazyAction(() => import('./commands/app/diff'), 'default')); + .action(run(() => import('./commands/app/diff').then(m => m.default))); program .command('create-plugin') .description('Creates a new plugin in the current repository') .action( - lazyAction( - () => import('./commands/create-plugin/createPlugin'), - 'default', + run(() => + import('./commands/create-plugin/createPlugin').then(m => m.default), ), ); @@ -76,41 +75,40 @@ const main = (argv: string[]) => { .command('remove-plugin') .description('Removes plugin in the current repository') .action( - lazyAction( - () => import('./commands/remove-plugin/removePlugin'), - 'default', + run(() => + import('./commands/remove-plugin/removePlugin').then(m => m.default), ), ); program .command('plugin:build') .description('Build a plugin') - .action(lazyAction(() => import('./commands/plugin/build'), 'default')); + .action(run(() => import('./commands/plugin/build').then(m => m.default))); program .command('plugin:serve') .description('Serves the dev/ folder of a plugin') .option('--check', 'Enable type checking and linting') - .action(lazyAction(() => import('./commands/plugin/serve'), 'default')); + .action(run(() => import('./commands/plugin/serve').then(m => m.default))); program .command('plugin:export') .description('Exports the dev/ folder of a plugin') .option('--stats', 'Write bundle stats to output directory') - .action(lazyAction(() => import('./commands/plugin/export'), 'default')); + .action(run(() => import('./commands/plugin/export').then(m => m.default))); program .command('plugin:diff') .option('--check', 'Fail if changes are required') .option('--yes', 'Apply all changes') .description('Diff an existing plugin with the creation template') - .action(lazyAction(() => import('./commands/plugin/diff'), 'default')); + .action(run(() => import('./commands/plugin/diff').then(m => m.default))); program .command('build') .description('Build a package for publishing') .option('--outputs ', 'List of formats to output [types,cjs,esm]') - .action(lazyAction(() => import('./commands/build'), 'default')); + .action(run(() => import('./commands/build').then(m => m.default))); program .command('lint') @@ -121,14 +119,14 @@ const main = (argv: string[]) => { ) .option('--fix', 'Attempt to automatically fix violations') .description('Lint a package') - .action(lazyAction(() => import('./commands/lint'), 'default')); + .action(run(() => import('./commands/lint').then(m => m.default))); program .command('test') .allowUnknownOption(true) // Allows the command to run, but we still need to parse raw args .helpOption(', --backstage-cli-help') // Let Jest handle help .description('Run tests, forwarding args to Jest, defaulting to watch mode') - .action(lazyAction(() => import('./commands/testCommand'), 'default')); + .action(run(() => import('./commands/testCommand').then(m => m.default))); program .command('config:print') @@ -142,27 +140,29 @@ const main = (argv: string[]) => { 'Format to print the configuration in, either json or yaml [yaml]', ) .description('Print the app configuration for the current package') - .action(lazyAction(() => import('./commands/config/print'), 'default')); + .action(run(() => import('./commands/config/print').then(m => m.default))); program .command('prepack') .description('Prepares a package for packaging before publishing') - .action(lazyAction(() => import('./commands/pack'), 'pre')); + .action(run(() => import('./commands/pack').then(m => m.pre))); program .command('postpack') .description('Restores the changes made by the prepack command') - .action(lazyAction(() => import('./commands/pack'), 'post')); + .action(run(() => import('./commands/pack').then(m => m.post))); program .command('clean') .description('Delete cache directories') - .action(lazyAction(() => import('./commands/clean/clean'), 'default')); + .action(run(() => import('./commands/clean/clean').then(m => m.default))); program .command('build-workspace ...') .description('Builds a temporary dist workspace from the provided packages') - .action(lazyAction(() => import('./commands/buildWorkspace'), 'default')); + .action( + run(() => import('./commands/buildWorkspace').then(m => m.default)), + ); program.on('command:*', () => { console.log(); @@ -182,16 +182,12 @@ const main = (argv: string[]) => { }; // Wraps an action function so that it always exits and handles errors -function lazyAction( - actionRequireFunc: () => Promise< - { [name in Export]: (...args: T) => Promise } - >, - exportName: Export, -): (...args: T) => Promise { - return async (...args: T) => { +function run( + getActionFunc: () => Promise<(...args: any[]) => Promise>, +): (...args: any[]) => Promise { + return async (...args: any[]) => { try { - const module = await actionRequireFunc(); - const actionFunc = module[exportName]; + const actionFunc = await getActionFunc(); await actionFunc(...args); process.exit(0); } catch (error) { From ab66dd5ea25d3a02d80972ea2018f1f69d553b8f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 6 Sep 2020 10:26:32 +0200 Subject: [PATCH 416/656] cli: moved command index to index in commands --- packages/cli/src/commands/index.ts | 169 +++++++++++++++++++++++++++++ packages/cli/src/index.ts | 158 +-------------------------- 2 files changed, 171 insertions(+), 156 deletions(-) create mode 100644 packages/cli/src/commands/index.ts diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts new file mode 100644 index 0000000000..e8406231a5 --- /dev/null +++ b/packages/cli/src/commands/index.ts @@ -0,0 +1,169 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { CommanderStatic } from 'commander'; +import { exitWithError } from '../lib/errors'; + +export function registerCommands(program: CommanderStatic) { + program + .command('app:build') + .description('Build an app for a production release') + .option('--stats', 'Write bundle stats to output directory') + .action(lazy(() => import('./app/build').then(m => m.default))); + + program + .command('app:serve') + .description('Serve an app for local development') + .option('--check', 'Enable type checking and linting') + .action(lazy(() => import('./app/serve').then(m => m.default))); + + program + .command('backend:build') + .description('Build a backend plugin') + .action(lazy(() => import('./backend/build').then(m => m.default))); + + program + .command('backend:build-image ') + .description( + 'Builds a docker image from the package, with all local deps included', + ) + .action(lazy(() => import('./backend/buildImage').then(m => m.default))); + + program + .command('backend:dev') + .description('Start local development server with HMR for the backend') + .option('--check', 'Enable type checking and linting') + .option('--inspect', 'Enable debugger') + .action(lazy(() => import('./backend/dev').then(m => m.default))); + + program + .command('app:diff') + .option('--check', 'Fail if changes are required') + .option('--yes', 'Apply all changes') + .description('Diff an existing app with the creation template') + .action(lazy(() => import('./app/diff').then(m => m.default))); + + program + .command('create-plugin') + .description('Creates a new plugin in the current repository') + .action( + lazy(() => import('./create-plugin/createPlugin').then(m => m.default)), + ); + + program + .command('remove-plugin') + .description('Removes plugin in the current repository') + .action( + lazy(() => import('./remove-plugin/removePlugin').then(m => m.default)), + ); + + program + .command('plugin:build') + .description('Build a plugin') + .action(lazy(() => import('./plugin/build').then(m => m.default))); + + program + .command('plugin:serve') + .description('Serves the dev/ folder of a plugin') + .option('--check', 'Enable type checking and linting') + .action(lazy(() => import('./plugin/serve').then(m => m.default))); + + program + .command('plugin:export') + .description('Exports the dev/ folder of a plugin') + .option('--stats', 'Write bundle stats to output directory') + .action(lazy(() => import('./plugin/export').then(m => m.default))); + + program + .command('plugin:diff') + .option('--check', 'Fail if changes are required') + .option('--yes', 'Apply all changes') + .description('Diff an existing plugin with the creation template') + .action(lazy(() => import('./plugin/diff').then(m => m.default))); + + program + .command('build') + .description('Build a package for publishing') + .option('--outputs ', 'List of formats to output [types,cjs,esm]') + .action(lazy(() => import('./build').then(m => m.default))); + + program + .command('lint') + .option( + '--format ', + 'Lint report output format', + 'eslint-formatter-friendly', + ) + .option('--fix', 'Attempt to automatically fix violations') + .description('Lint a package') + .action(lazy(() => import('./lint').then(m => m.default))); + + program + .command('test') + .allowUnknownOption(true) // Allows the command to run, but we still need to parse raw args + .helpOption(', --backstage-cli-help') // Let Jest handle help + .description('Run tests, forwarding args to Jest, defaulting to watch mode') + .action(lazy(() => import('./testCommand').then(m => m.default))); + + program + .command('config:print') + .option('--with-secrets', 'Include secrets in the printed configuration') + .option( + '--env ', + 'The environment to print configuration for [NODE_ENV or development]', + ) + .option( + '--format ', + 'Format to print the configuration in, either json or yaml [yaml]', + ) + .description('Print the app configuration for the current package') + .action(lazy(() => import('./config/print').then(m => m.default))); + + program + .command('prepack') + .description('Prepares a package for packaging before publishing') + .action(lazy(() => import('./pack').then(m => m.pre))); + + program + .command('postpack') + .description('Restores the changes made by the prepack command') + .action(lazy(() => import('./pack').then(m => m.post))); + + program + .command('clean') + .description('Delete cache directories') + .action(lazy(() => import('./clean/clean').then(m => m.default))); + + program + .command('build-workspace ...') + .description('Builds a temporary dist workspace from the provided packages') + .action(lazy(() => import('./buildWorkspace').then(m => m.default))); +} + +// Wraps an action function so that it always exits and handles errors +function lazy( + getActionFunc: () => Promise<(...args: any[]) => Promise>, +): (...args: any[]) => Promise { + return async (...args: any[]) => { + try { + const actionFunc = await getActionFunc(); + await actionFunc(...args); + process.exit(0); + } catch (error) { + exitWithError(error); + } + }; +} diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 1d78771006..e278164f4c 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -18,151 +18,12 @@ import program from 'commander'; import chalk from 'chalk'; import { exitWithError } from './lib/errors'; import { version } from './lib/version'; +import { registerCommands } from './commands'; const main = (argv: string[]) => { program.name('backstage-cli').version(version); - program - .command('app:build') - .description('Build an app for a production release') - .option('--stats', 'Write bundle stats to output directory') - .action(run(() => import('./commands/app/build').then(m => m.default))); - - program - .command('app:serve') - .description('Serve an app for local development') - .option('--check', 'Enable type checking and linting') - .action(run(() => import('./commands/app/serve').then(m => m.default))); - - program - .command('backend:build') - .description('Build a backend plugin') - .action(run(() => import('./commands/backend/build').then(m => m.default))); - - program - .command('backend:build-image ') - .description( - 'Builds a docker image from the package, with all local deps included', - ) - .action( - run(() => import('./commands/backend/buildImage').then(m => m.default)), - ); - - program - .command('backend:dev') - .description('Start local development server with HMR for the backend') - .option('--check', 'Enable type checking and linting') - .option('--inspect', 'Enable debugger') - .action(run(() => import('./commands/backend/dev').then(m => m.default))); - - program - .command('app:diff') - .option('--check', 'Fail if changes are required') - .option('--yes', 'Apply all changes') - .description('Diff an existing app with the creation template') - .action(run(() => import('./commands/app/diff').then(m => m.default))); - - program - .command('create-plugin') - .description('Creates a new plugin in the current repository') - .action( - run(() => - import('./commands/create-plugin/createPlugin').then(m => m.default), - ), - ); - - program - .command('remove-plugin') - .description('Removes plugin in the current repository') - .action( - run(() => - import('./commands/remove-plugin/removePlugin').then(m => m.default), - ), - ); - - program - .command('plugin:build') - .description('Build a plugin') - .action(run(() => import('./commands/plugin/build').then(m => m.default))); - - program - .command('plugin:serve') - .description('Serves the dev/ folder of a plugin') - .option('--check', 'Enable type checking and linting') - .action(run(() => import('./commands/plugin/serve').then(m => m.default))); - - program - .command('plugin:export') - .description('Exports the dev/ folder of a plugin') - .option('--stats', 'Write bundle stats to output directory') - .action(run(() => import('./commands/plugin/export').then(m => m.default))); - - program - .command('plugin:diff') - .option('--check', 'Fail if changes are required') - .option('--yes', 'Apply all changes') - .description('Diff an existing plugin with the creation template') - .action(run(() => import('./commands/plugin/diff').then(m => m.default))); - - program - .command('build') - .description('Build a package for publishing') - .option('--outputs ', 'List of formats to output [types,cjs,esm]') - .action(run(() => import('./commands/build').then(m => m.default))); - - program - .command('lint') - .option( - '--format ', - 'Lint report output format', - 'eslint-formatter-friendly', - ) - .option('--fix', 'Attempt to automatically fix violations') - .description('Lint a package') - .action(run(() => import('./commands/lint').then(m => m.default))); - - program - .command('test') - .allowUnknownOption(true) // Allows the command to run, but we still need to parse raw args - .helpOption(', --backstage-cli-help') // Let Jest handle help - .description('Run tests, forwarding args to Jest, defaulting to watch mode') - .action(run(() => import('./commands/testCommand').then(m => m.default))); - - program - .command('config:print') - .option('--with-secrets', 'Include secrets in the printed configuration') - .option( - '--env ', - 'The environment to print configuration for [NODE_ENV or development]', - ) - .option( - '--format ', - 'Format to print the configuration in, either json or yaml [yaml]', - ) - .description('Print the app configuration for the current package') - .action(run(() => import('./commands/config/print').then(m => m.default))); - - program - .command('prepack') - .description('Prepares a package for packaging before publishing') - .action(run(() => import('./commands/pack').then(m => m.pre))); - - program - .command('postpack') - .description('Restores the changes made by the prepack command') - .action(run(() => import('./commands/pack').then(m => m.post))); - - program - .command('clean') - .description('Delete cache directories') - .action(run(() => import('./commands/clean/clean').then(m => m.default))); - - program - .command('build-workspace ...') - .description('Builds a temporary dist workspace from the provided packages') - .action( - run(() => import('./commands/buildWorkspace').then(m => m.default)), - ); + registerCommands(program); program.on('command:*', () => { console.log(); @@ -181,21 +42,6 @@ const main = (argv: string[]) => { program.parse(argv); }; -// Wraps an action function so that it always exits and handles errors -function run( - getActionFunc: () => Promise<(...args: any[]) => Promise>, -): (...args: any[]) => Promise { - return async (...args: any[]) => { - try { - const actionFunc = await getActionFunc(); - await actionFunc(...args); - process.exit(0); - } catch (error) { - exitWithError(error); - } - }; -} - process.on('unhandledRejection', rejection => { if (rejection instanceof Error) { exitWithError(rejection); From a18c054e9badc045f26b94ad4747b3359a609816 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 6 Sep 2020 10:49:20 +0200 Subject: [PATCH 417/656] workflows: ensure that working directory is clean at the end of build --- .github/workflows/ci.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9ea1308336..2246a1dc09 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -99,3 +99,16 @@ jobs: - name: verify plugin template run: yarn lerna -- run diff -- --check + + - name: ensure clean working directory + run: | + if files=$(git ls-files --exclude-standard --others --modified) && [[ -z "$files" ]]; then + exit 0 + else + echo "" + echo "Working directory has been modified:" + echo "" + git status --short + echo "" + exit 1 + fi From 8da37131dacac4a8d2455c4f7087bb8f26dc89ca Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 1 Sep 2020 00:56:34 +0200 Subject: [PATCH 418/656] cli-common: fix drive letter for target dir being lowercased on Windows --- packages/cli-common/src/paths.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/cli-common/src/paths.ts b/packages/cli-common/src/paths.ts index 70761ad2d7..0db712e6cb 100644 --- a/packages/cli-common/src/paths.ts +++ b/packages/cli-common/src/paths.ts @@ -106,7 +106,10 @@ export function findOwnRootDir(ownDir: string) { */ export function findPaths(searchDir: string): Paths { const ownDir = findOwnDir(searchDir); - const targetDir = fs.realpathSync(process.cwd()); + // Drive letter can end up being lowercased here on Windows, bring back to uppercase for consistency + const targetDir = fs + .realpathSync(process.cwd()) + .replace(/^[a-z]:/, str => str.toUpperCase()); // Lazy load this as it will throw an error if we're not inside the Backstage repo. let ownRoot = ''; From 20158f0c3649cc1445d3d271e1e3f79b59de8571 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 6 Sep 2020 11:49:57 +0200 Subject: [PATCH 419/656] cli: forward all extra backend:build-image args to docker build --- packages/backend/package.json | 2 +- packages/cli/src/commands/backend/buildImage.ts | 12 ++++++++++-- packages/cli/src/commands/index.ts | 7 +++++-- .../default-app/packages/backend/package.json.hbs | 2 +- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/packages/backend/package.json b/packages/backend/package.json index 03d768ca0b..f9bf855371 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -10,7 +10,7 @@ }, "scripts": { "build": "backstage-cli backend:build", - "build-image": "backstage-cli backend:build-image example-backend", + "build-image": "backstage-cli backend:build-image --tag example-backend", "start": "backstage-cli backend:dev", "lint": "backstage-cli lint", "test": "backstage-cli test", diff --git a/packages/cli/src/commands/backend/buildImage.ts b/packages/cli/src/commands/backend/buildImage.ts index 258ef102d7..14b62d2894 100644 --- a/packages/cli/src/commands/backend/buildImage.ts +++ b/packages/cli/src/commands/backend/buildImage.ts @@ -18,10 +18,17 @@ import fs from 'fs-extra'; import { createDistWorkspace } from '../../lib/packager'; import { paths } from '../../lib/paths'; import { run } from '../../lib/run'; +import { Command } from 'commander'; const PKG_PATH = 'package.json'; -export default async (imageTag: string) => { +export default async (cmd: Command) => { + // Skip the preparation steps if we're being asked for help + if (cmd.args.includes('--help')) { + await run('docker', ['image', 'build', '--help']); + return; + } + const pkgPath = paths.resolveTarget(PKG_PATH); const pkg = await fs.readJson(pkgPath); const tempDistWorkspace = await createDistWorkspace([pkg.name], { @@ -34,7 +41,8 @@ export default async (imageTag: string) => { }); console.log(`Dist workspace ready at ${tempDistWorkspace}`); - await run('docker', ['build', '.', '-t', imageTag], { + // all args are forwarded to docker build + await run('docker', ['image', 'build', '.', ...cmd.args], { cwd: tempDistWorkspace, }); diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index e8406231a5..e8b7fccfee 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -36,9 +36,12 @@ export function registerCommands(program: CommanderStatic) { .action(lazy(() => import('./backend/build').then(m => m.default))); program - .command('backend:build-image ') + .command('backend:build-image') + .allowUnknownOption(true) + .helpOption(', --backstage-cli-help') // Let docker handle --help + .option('--build', 'Build packages before packing them into the image') .description( - 'Builds a docker image from the package, with all local deps included', + 'Build a docker , all extra options are forwarded to docker build', ) .action(lazy(() => import('./backend/buildImage').then(m => m.default))); diff --git a/packages/create-app/templates/default-app/packages/backend/package.json.hbs b/packages/create-app/templates/default-app/packages/backend/package.json.hbs index 53bfd6d990..8fc1e3bbe1 100644 --- a/packages/create-app/templates/default-app/packages/backend/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/backend/package.json.hbs @@ -9,7 +9,7 @@ }, "scripts": { "build": "backstage-cli backend:build", - "build-image": "backstage-cli backend:build-image example-backend", + "build-image": "backstage-cli backend:build-image --tag example-backend", "start": "backstage-cli backend:dev", "lint": "backstage-cli lint", "test": "backstage-cli test", From 905a924c18c8eb5e4ba59443cfd6b573f205d1d9 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 1 Sep 2020 23:04:02 +0200 Subject: [PATCH 420/656] cli-loader: use mock-fs for tests --- packages/config-loader/package.json | 4 +- .../config-loader/src/lib/resolver.test.ts | 73 ++++++++++--------- packages/config-loader/src/loader.test.ts | 59 ++++++--------- yarn.lock | 12 +++ 4 files changed, 75 insertions(+), 73 deletions(-) diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json index 92d20ef1e7..592b8eefb3 100644 --- a/packages/config-loader/package.json +++ b/packages/config-loader/package.json @@ -37,8 +37,10 @@ }, "devDependencies": { "@types/jest": "^26.0.7", + "@types/mock-fs": "^4.10.0", "@types/node": "^12.0.0", - "@types/yup": "^0.28.2" + "@types/yup": "^0.28.2", + "mock-fs": "^4.13.0" }, "files": [ "dist" diff --git a/packages/config-loader/src/lib/resolver.test.ts b/packages/config-loader/src/lib/resolver.test.ts index c804a6cef3..9fd71f2486 100644 --- a/packages/config-loader/src/lib/resolver.test.ts +++ b/packages/config-loader/src/lib/resolver.test.ts @@ -14,46 +14,48 @@ * limitations under the License. */ -const pathExists = jest.fn(); - -jest.mock('fs-extra', () => ({ pathExists })); - +import mockFs from 'mock-fs'; import { resolveStaticConfig } from './resolver'; +function normalizePaths(paths: string[]) { + return paths.map(p => + p + .replace(/^[a-z]:/i, '') + .split('\\') + .join('/'), + ); +} + describe('resolveStaticConfig', () => { afterEach(() => { - jest.resetAllMocks(); + mockFs.restore(); }); it('should resolve no files for empty roots', async () => { + mockFs({}); const resolved = await resolveStaticConfig({ env: 'development', rootPaths: [], }); - expect(resolved).toEqual([]); - expect(pathExists).not.toHaveBeenCalled(); + expect(normalizePaths(resolved)).toEqual([]); }); it('should resolve a single app-config', async () => { - pathExists.mockImplementation(async (path: string) => - ['/repo/app-config.yaml'].includes(path), - ); + mockFs({ '/repo/app-config.yaml': '' }); const resolved = await resolveStaticConfig({ env: 'development', rootPaths: ['/repo'], }); - expect(resolved).toEqual(['/repo/app-config.yaml']); - expect(pathExists).toHaveBeenCalledTimes(4); + expect(normalizePaths(resolved)).toEqual(['/repo/app-config.yaml']); }); it('should resolve a app-configs in different directories', async () => { - pathExists.mockImplementation(async (path: string) => - ['/repo/app-config.yaml', '/repo/packages/a/app-config.yaml'].includes( - path, - ), - ); + mockFs({ + '/repo/app-config.yaml': '', + '/repo/packages/a/app-config.yaml': '', + }); const resolved = await resolveStaticConfig({ env: 'development', rootPaths: [ @@ -64,53 +66,54 @@ describe('resolveStaticConfig', () => { ], }); - expect(resolved).toEqual([ + expect(normalizePaths(resolved)).toEqual([ '/repo/app-config.yaml', '/repo/packages/a/app-config.yaml', ]); - expect(pathExists).toHaveBeenCalledTimes(16); }); it('should resolve env and local configs', async () => { - pathExists.mockImplementation(async (path: string) => - [ - '/repo/app-config.yaml', - '/repo/app-config.local.yaml', - '/repo/app-config.production.yaml', - '/repo/app-config.production.local.yaml', - '/repo/app-config.development.local.yaml', - '/repo/packages/a/app-config.development.yaml', - '/repo/packages/a/app-config.local.yaml', - ].includes(path), - ); + mockFs({ + '/repo/app-config.yaml': '', + '/repo/app-config.local.yaml': '', + '/repo/app-config.production.yaml': '', + '/repo/app-config.production.local.yaml': '', + '/repo/app-config.development.local.yaml': '', + '/repo/packages/a/app-config.development.yaml': '', + '/repo/packages/a/app-config.local.yaml': '', + }); const resolved = await resolveStaticConfig({ env: 'development', rootPaths: ['/repo', '/repo/packages/a'], }); - expect(resolved).toEqual([ + expect(normalizePaths(resolved)).toEqual([ '/repo/app-config.yaml', '/repo/app-config.local.yaml', '/repo/app-config.development.local.yaml', '/repo/packages/a/app-config.local.yaml', '/repo/packages/a/app-config.development.yaml', ]); - expect(pathExists).toHaveBeenCalledTimes(8); }); it('resolves suffixed configs in the correct order', async () => { - pathExists.mockImplementation(async () => true); + mockFs({ + '/repo/app-config.yaml': '', + '/repo/app-config.local.yaml': '', + '/repo/app-config.production.yaml': '', + '/repo/app-config.production.local.yaml': '', + }); + const resolved = await resolveStaticConfig({ env: 'production', rootPaths: ['/repo'], }); - expect(resolved).toEqual([ + expect(normalizePaths(resolved)).toEqual([ '/repo/app-config.yaml', '/repo/app-config.local.yaml', '/repo/app-config.production.yaml', '/repo/app-config.production.local.yaml', ]); - expect(pathExists).toHaveBeenCalledTimes(4); }); }); diff --git a/packages/config-loader/src/loader.test.ts b/packages/config-loader/src/loader.test.ts index 4a7c9f238c..a7547ee8fb 100644 --- a/packages/config-loader/src/loader.test.ts +++ b/packages/config-loader/src/loader.test.ts @@ -15,45 +15,30 @@ */ import { loadConfig } from './loader'; - -jest.mock('fs-extra', () => { - const mockFiles: { [path in string]: string } = { - '/root/app-config.yaml': ` - app: - title: Example App - sessionKey: - $secret: - file: secrets/session-key.txt - `, - '/root/app-config.development.yaml': ` - app: - sessionKey: development-key - `, - '/root/secrets/session-key.txt': 'abc123', - '/secret-port/app-config.yaml': ` - backend: - listen: - port: - $secret: - file: secrets/port.txt - `, - '/secret-port/secrets/port.txt': '12345', - }; - - return { - async readFile(path: string) { - if (path in mockFiles) { - return mockFiles[path]; - } - throw new Error(`File not found, ${path}`); - }, - async pathExists(path: string) { - return path in mockFiles; - }, - }; -}); +import mockFs from 'mock-fs'; describe('loadConfig', () => { + beforeAll(() => { + mockFs({ + '/root/app-config.yaml': ` + app: + title: Example App + sessionKey: + $secret: + file: secrets/session-key.txt + `, + '/root/app-config.development.yaml': ` + app: + sessionKey: development-key + `, + '/root/secrets/session-key.txt': 'abc123', + }); + }); + + afterAll(() => { + mockFs.restore(); + }); + it('loads config without secrets', async () => { await expect( loadConfig({ diff --git a/yarn.lock b/yarn.lock index 1853f23f7f..d241aff898 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4460,6 +4460,13 @@ dependencies: "@types/node" "*" +"@types/mock-fs@^4.10.0": + version "4.10.0" + resolved "https://registry.npmjs.org/@types/mock-fs/-/mock-fs-4.10.0.tgz#460061b186993d76856f669d5317cda8a007c24b" + integrity sha512-FQ5alSzmHMmliqcL36JqIA4Yyn9jyJKvRSGV3mvPh108VFatX7naJDzSG4fnFQNZFq9dIx0Dzoe6ddflMB2Xkg== + dependencies: + "@types/node" "*" + "@types/morgan@^1.9.0": version "1.9.1" resolved "https://registry.npmjs.org/@types/morgan/-/morgan-1.9.1.tgz#6457872df95647c1dbc6b3741e8146b71ece74bf" @@ -14682,6 +14689,11 @@ mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdir dependencies: minimist "^1.2.5" +mock-fs@^4.13.0: + version "4.13.0" + resolved "https://registry.npmjs.org/mock-fs/-/mock-fs-4.13.0.tgz#31c02263673ec3789f90eb7b6963676aa407a598" + integrity sha512-DD0vOdofJdoaRNtnWcrXe6RQbpHkPPmtqGq14uRX0F8ZKJ5nv89CVTYl/BZdppDxBDaV0hl75htg3abpEWlPZA== + modify-values@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" From ae10876e0efeda0fae80edd0a63316ff7aae5eb8 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 1 Sep 2020 23:15:40 +0200 Subject: [PATCH 421/656] cli: make tests work on windows --- .../cli/src/commands/create-plugin/createPlugin.test.ts | 2 +- .../cli/src/commands/remove-plugin/removePlugin.test.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/commands/create-plugin/createPlugin.test.ts b/packages/cli/src/commands/create-plugin/createPlugin.test.ts index 57fa33d173..72b95b072c 100644 --- a/packages/cli/src/commands/create-plugin/createPlugin.test.ts +++ b/packages/cli/src/commands/create-plugin/createPlugin.test.ts @@ -59,7 +59,7 @@ describe('createPlugin', () => { await createTemporaryPluginFolder(tempDir); await movePlugin(tempDir, pluginDir, id); await expect(fs.pathExists(pluginDir)).resolves.toBe(true); - expect(pluginDir).toMatch(`/plugins\/${id}`); + expect(pluginDir).toMatch(path.join('', 'plugins', id)); } finally { await del(tempDir, { force: true }); await del(rootDir, { force: true }); diff --git a/packages/cli/src/commands/remove-plugin/removePlugin.test.ts b/packages/cli/src/commands/remove-plugin/removePlugin.test.ts index 72fbc6f084..3ffa8d63cf 100644 --- a/packages/cli/src/commands/remove-plugin/removePlugin.test.ts +++ b/packages/cli/src/commands/remove-plugin/removePlugin.test.ts @@ -39,7 +39,7 @@ const testPluginPackage = `${BACKSTAGE}/plugin-${testPluginName}`; const tempDir = path.join(os.tmpdir(), 'remove-plugin-test'); const removeEmptyLines = (file: string): string => - file.split('\n').filter(Boolean).join('\n'); + file.split(/\r?\n/).filter(Boolean).join('\n'); const createTestPackageFile = async ( testFilePath: string, @@ -100,7 +100,7 @@ describe('removePlugin', () => { const packageFileContent = removeEmptyLines( fse.readFileSync(packageFilePath, 'utf8'), ); - expect(testFileContent === packageFileContent).toBe(true); + expect(testFileContent).toBe(packageFileContent); } finally { fse.removeSync(testFilePath); } @@ -117,7 +117,7 @@ describe('removePlugin', () => { const pluginsFileContent = removeEmptyLines( fse.readFileSync(pluginsFilePaths, 'utf8'), ); - expect(testFileContent === pluginsFileContent).toBe(true); + expect(testFileContent).toBe(pluginsFileContent); } finally { fse.removeSync(testFilePath); } @@ -138,7 +138,7 @@ describe('removePlugin', () => { 'test@gmail.com', ]); await removePluginFromCodeOwners(testFilePath, testPluginName); - expect(testFileContent === codeOwnersFileContent).toBeTruthy(); + expect(testFileContent).toBe(codeOwnersFileContent); } finally { if (fse.existsSync(testFilePath)) fse.removeSync(testFilePath); } From 30747fd72464e413c68152a512d64d8a963ce21a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 1 Sep 2020 23:23:01 +0200 Subject: [PATCH 422/656] app-backend: make tests work on windows --- plugins/app-backend/src/service/router.test.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/app-backend/src/service/router.test.ts b/plugins/app-backend/src/service/router.test.ts index 4e0c27c47a..417fdc43b6 100644 --- a/plugins/app-backend/src/service/router.test.ts +++ b/plugins/app-backend/src/service/router.test.ts @@ -47,21 +47,21 @@ describe('createRouter', () => { const response = await request(app).get('/index.html'); expect(response.status).toBe(200); - expect(response.text).toBe('this is index.html\n'); + expect(response.text.trim()).toBe('this is index.html'); }); it('returns other.html', async () => { const response = await request(app).get('/other.html'); expect(response.status).toBe(200); - expect(response.text).toBe('this is other.html\n'); + expect(response.text.trim()).toBe('this is other.html'); }); it('returns index.html if missing', async () => { const response = await request(app).get('/missing.html'); expect(response.status).toBe(200); - expect(response.text).toBe('this is index.html\n'); + expect(response.text.trim()).toBe('this is index.html'); }); }); @@ -83,11 +83,11 @@ describe('createRouter with static fallback handler', () => { const response1 = await request(app).get('/static/main.txt'); expect(response1.status).toBe(200); - expect(response1.text).toBe('this is main.txt\n'); + expect(response1.text.trim()).toBe('this is main.txt'); const response2 = await request(app).get('/static/test.txt'); expect(response2.status).toBe(200); - expect(response2.text).toBe('this is test.txt'); + expect(response2.text.trim()).toBe('this is test.txt'); const response3 = await request(app).get('/static/missing.txt'); expect(response3.status).toBe(404); From 2723fb78d2be81be1c5196a2d0ff662f44643120 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 1 Sep 2020 23:39:22 +0200 Subject: [PATCH 423/656] scaffolder-backend: fix or skip tests on windows --- .../src/scaffolder/stages/prepare/github.test.ts | 4 +++- .../src/scaffolder/stages/templater/helpers.test.ts | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/prepare/github.test.ts b/plugins/scaffolder-backend/src/scaffolder/stages/prepare/github.test.ts index a61e5de867..4409d815b5 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/prepare/github.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/prepare/github.test.ts @@ -96,6 +96,8 @@ describe('GitHubPreparer', () => { mockEntity.spec.path = './template/test/1/2/3'; const response = await preparer.prepare(mockEntity); - expect(response).toMatch(new RegExp(/\/template\/test\/1\/2\/3$/)); + expect(response.split('\\').join('/')).toMatch( + /\/template\/test\/1\/2\/3$/, + ); }); }); diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/templater/helpers.test.ts b/plugins/scaffolder-backend/src/scaffolder/stages/templater/helpers.test.ts index b7e969cd47..a4441ca23f 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/templater/helpers.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/templater/helpers.test.ts @@ -20,6 +20,13 @@ import Docker from 'dockerode'; import { runDockerContainer } from './helpers'; describe('helpers', () => { + if (process.platform === 'win32') { + // eslint-disable-next-line jest/no-focused-tests + it.only('should skip tests on windows', () => { + expect('test').not.toBe('run'); + }); + } + const mockDocker = new Docker() as jest.Mocked; beforeEach(() => { From 566f1f890e230da8473ed1a624eaf29fb9f774fd Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 2 Sep 2020 00:02:47 +0200 Subject: [PATCH 424/656] techdocs-backend: make tests work on windows --- .../src/techdocs/stages/prepare/dir.test.ts | 13 ++++++++++--- .../src/techdocs/stages/prepare/github.test.ts | 9 ++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.test.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.test.ts index 1635995b9e..a77c7978da 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.test.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/dir.test.ts @@ -17,6 +17,13 @@ import { DirectoryPreparer } from './dir'; import { getVoidLogger } from '@backstage/backend-common'; import { checkoutGitRepository } from './helpers'; +function normalizePath(path: string) { + return path + .replace(/^[a-z]:/i, '') + .split('\\') + .join('/'); +} + jest.mock('./helpers', () => ({ ...jest.requireActual<{}>('./helpers'), checkoutGitRepository: jest.fn(() => '/tmp/backstage-repo/org/name/branch/'), @@ -47,7 +54,7 @@ describe('directory preparer', () => { 'backstage.io/techdocs-ref': 'dir:./our-documentation', }); - expect(await directoryPreparer.prepare(mockEntity)).toEqual( + expect(normalizePath(await directoryPreparer.prepare(mockEntity))).toEqual( '/directory/our-documentation', ); }); @@ -61,7 +68,7 @@ describe('directory preparer', () => { 'backstage.io/techdocs-ref': 'dir:/our-documentation/techdocs', }); - expect(await directoryPreparer.prepare(mockEntity)).toEqual( + expect(normalizePath(await directoryPreparer.prepare(mockEntity))).toEqual( '/our-documentation/techdocs', ); }); @@ -75,7 +82,7 @@ describe('directory preparer', () => { 'backstage.io/techdocs-ref': 'dir:./docs', }); - expect(await directoryPreparer.prepare(mockEntity)).toEqual( + expect(normalizePath(await directoryPreparer.prepare(mockEntity))).toEqual( '/tmp/backstage-repo/org/name/branch/docs', ); expect(checkoutGitRepository).toHaveBeenCalledTimes(1); diff --git a/plugins/techdocs-backend/src/techdocs/stages/prepare/github.test.ts b/plugins/techdocs-backend/src/techdocs/stages/prepare/github.test.ts index 99a7d3bb5c..b78203d766 100644 --- a/plugins/techdocs-backend/src/techdocs/stages/prepare/github.test.ts +++ b/plugins/techdocs-backend/src/techdocs/stages/prepare/github.test.ts @@ -18,6 +18,13 @@ import { getVoidLogger } from '@backstage/backend-common'; import { GithubPreparer } from './github'; import { checkoutGithubRepository } from './helpers'; +function normalizePath(path: string) { + return path + .replace(/^[a-z]:/i, '') + .split('\\') + .join('/'); +} + jest.mock('./helpers', () => ({ ...jest.requireActual<{}>('./helpers'), checkoutGithubRepository: jest.fn( @@ -51,7 +58,7 @@ describe('github preparer', () => { const tempDocsPath = await preparer.prepare(mockEntity); expect(checkoutGithubRepository).toHaveBeenCalledTimes(1); - expect(tempDocsPath).toEqual( + expect(normalizePath(tempDocsPath)).toEqual( '/tmp/backstage-repo/org/name/branch/plugins/techdocs-backend/examples/documented-component', ); }); From 5957123277643870403b13b09f76c0e1bc6624b3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 2 Sep 2020 00:15:21 +0200 Subject: [PATCH 425/656] core: fix app config tests on windows --- .../core/src/api-wrappers/createApp.test.tsx | 40 ++++++++----------- 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/packages/core/src/api-wrappers/createApp.test.tsx b/packages/core/src/api-wrappers/createApp.test.tsx index 33623b4869..a1655b88dd 100644 --- a/packages/core/src/api-wrappers/createApp.test.tsx +++ b/packages/core/src/api-wrappers/createApp.test.tsx @@ -15,21 +15,21 @@ */ import { defaultConfigLoader } from './createApp'; -import { AppConfig } from '@backstage/config'; + +(process as any).env = { NODE_ENV: 'test' }; +const anyEnv = process.env as any; describe('defaultConfigLoader', () => { afterEach(() => { - delete process.env.APP_CONFIG; + delete anyEnv.APP_CONFIG; }); it('loads static config', async () => { - Object.defineProperty(process.env, 'APP_CONFIG', { - configurable: true, - value: [ - { data: { my: 'config' }, context: 'a' }, - { data: { my: 'override-config' }, context: 'b' }, - ] as AppConfig[], - }); + anyEnv.APP_CONFIG = [ + { data: { my: 'config' }, context: 'a' }, + { data: { my: 'override-config' }, context: 'b' }, + ]; + const configs = await defaultConfigLoader(); expect(configs).toEqual([ { data: { my: 'config' }, context: 'a' }, @@ -38,13 +38,11 @@ describe('defaultConfigLoader', () => { }); it('loads runtime config', async () => { - Object.defineProperty(process.env, 'APP_CONFIG', { - configurable: true, - value: [ - { data: { my: 'override-config' }, context: 'a' }, - { data: { my: 'config' }, context: 'b' }, - ] as AppConfig[], - }); + anyEnv.APP_CONFIG = [ + { data: { my: 'override-config' }, context: 'a' }, + { data: { my: 'config' }, context: 'b' }, + ]; + const configs = await (defaultConfigLoader as any)( '{"my":"runtime-config"}', ); @@ -62,20 +60,14 @@ describe('defaultConfigLoader', () => { }); it('fails to load invalid static config', async () => { - Object.defineProperty(process.env, 'APP_CONFIG', { - configurable: true, - value: { my: 'invalid-config' } as any, - }); + anyEnv.APP_CONFIG = { my: 'invalid-config' }; await expect(defaultConfigLoader()).rejects.toThrow( 'Static configuration has invalid format', ); }); it('fails to load bad runtime config', async () => { - Object.defineProperty(process.env, 'APP_CONFIG', { - configurable: true, - value: [{ data: { my: 'config' }, context: 'a' }] as AppConfig[], - }); + anyEnv.APP_CONFIG = [{ data: { my: 'config' }, context: 'a' }]; await expect((defaultConfigLoader as any)('}')).rejects.toThrow( 'Failed to load runtime configuration, SyntaxError: Unexpected token } in JSON at position 0', From 4ddc1e6f774fa300fe6d8aba1f4ae774411c23ec Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 2 Sep 2020 00:22:54 +0200 Subject: [PATCH 426/656] workflows: lint and test in windows master build --- .github/workflows/master-win.yml | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/.github/workflows/master-win.yml b/.github/workflows/master-win.yml index 9fdff4af32..5951721f68 100644 --- a/.github/workflows/master-win.yml +++ b/.github/workflows/master-win.yml @@ -38,6 +38,23 @@ jobs: - name: yarn install run: yarn install --frozen-lockfile # End of yarn setup -# Tests are broken on Windows, disabled for now -# - name: test -# run: yarn lerna -- run test + + - name: lint + run: yarn lerna -- run lint + + - name: type checking and declarations + run: yarn tsc --incremental false + + - name: verify type dependencies + run: yarn lint:type-deps + + - name: test + run: yarn lerna -- run test + + - name: Discord notification + if: ${{ failure() }} + uses: Ilshidur/action-discord@0.2.0 + env: + DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} + with: + args: 'Windows master build failed https://github.com/{{GITHUB_REPOSITORY}}/actions/runs/{{GITHUB_RUN_ID}}' From 83ade4252c497bff798e5cdcc7577c24711f7bbf Mon Sep 17 00:00:00 2001 From: o-farooq Date: Mon, 7 Sep 2020 06:00:47 +1200 Subject: [PATCH 427/656] storybook: Upgrade Storybook to version 6 (#2296) * upgrade Storybook to version 6 * update storybook renderer layout Co-authored-by: Omer Farooq <17722640+o-farooq@users.noreply.github.com> --- .../.storybook/{config.js => preview.js} | 1 + packages/storybook/package.json | 12 +- yarn.lock | 1794 +++++++++-------- 3 files changed, 983 insertions(+), 824 deletions(-) rename packages/storybook/.storybook/{config.js => preview.js} (96%) diff --git a/packages/storybook/.storybook/config.js b/packages/storybook/.storybook/preview.js similarity index 96% rename from packages/storybook/.storybook/config.js rename to packages/storybook/.storybook/preview.js index 69145ea057..bb8e040c7b 100644 --- a/packages/storybook/.storybook/config.js +++ b/packages/storybook/.storybook/preview.js @@ -22,4 +22,5 @@ addParameters({ // Set the initial theme current: 'light', }, + layout: 'fullscreen', }); diff --git a/packages/storybook/package.json b/packages/storybook/package.json index 35b609eebf..8f12a2891c 100644 --- a/packages/storybook/package.json +++ b/packages/storybook/package.json @@ -17,11 +17,11 @@ "@backstage/theme": "^0.1.1-alpha.21" }, "devDependencies": { - "@storybook/addon-actions": "^5.3.17", - "@storybook/addon-links": "^5.3.17", - "@storybook/addon-storysource": "^5.3.18", - "@storybook/addons": "^6.0.4", - "@storybook/react": "^5.3.17", - "storybook-dark-mode": "^0.6.1" + "@storybook/addon-actions": "^6.0.21", + "@storybook/addon-links": "^6.0.21", + "@storybook/addon-storysource": "^6.0.21", + "@storybook/addons": "^6.0.21", + "@storybook/react": "^6.0.21", + "storybook-dark-mode": "^1.0.2" } } diff --git a/yarn.lock b/yarn.lock index 1853f23f7f..83ecfc14af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -95,13 +95,6 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/code-frame@7.5.5": - version "7.5.5" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== - dependencies: - "@babel/highlight" "^7.0.0" - "@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" @@ -125,7 +118,7 @@ invariant "^2.2.4" semver "^5.5.0" -"@babel/core@^7.1.0", "@babel/core@^7.4.4", "@babel/core@^7.4.5", "@babel/core@^7.7.5", "@babel/core@^7.9.0": +"@babel/core@^7.1.0", "@babel/core@^7.4.4", "@babel/core@^7.7.5", "@babel/core@^7.9.0": version "7.11.1" resolved "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz#2c55b604e73a40dc21b0e52650b11c65cf276643" integrity sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ== @@ -199,7 +192,7 @@ levenary "^1.1.1" semver "^5.5.0" -"@babel/helper-create-class-features-plugin@^7.10.4": +"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.10.5": version "7.10.5" resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== @@ -396,7 +389,7 @@ "@babel/helper-remap-async-to-generator" "^7.10.4" "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.7.0": +"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.8.3": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg== @@ -404,6 +397,15 @@ "@babel/helper-create-class-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-proposal-decorators@^7.8.3": + version "7.10.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.10.5.tgz#42898bba478bc4b1ae242a703a953a7ad350ffb4" + integrity sha512-Sc5TAQSZuLzgY0664mMDn24Vw2P8g/VhyLyGPaWiHahhgLqeZvcGeyBZOrJW0oSKIK2mvQ22a1ENXBIQLhrEiQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-decorators" "^7.10.4" + "@babel/plugin-proposal-dynamic-import@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" @@ -412,6 +414,14 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-dynamic-import" "^7.8.0" +"@babel/plugin-proposal-export-default-from@^7.8.3": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.10.4.tgz#08f66eef0067cbf6a7bc036977dcdccecaf0c6c5" + integrity sha512-G1l00VvDZ7Yk2yRlC5D8Ybvu3gmeHS3rCHoUYdjrqGYUtdeOBoRypnvDZ5KQqxyaiiGHWnVDeSEzA5F9ozItig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-export-default-from" "^7.10.4" + "@babel/plugin-proposal-export-namespace-from@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54" @@ -436,7 +446,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw== @@ -452,7 +462,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.11.0", "@babel/plugin-proposal-object-rest-spread@^7.6.2": +"@babel/plugin-proposal-object-rest-spread@^7.11.0", "@babel/plugin-proposal-object-rest-spread@^7.9.6": version "7.11.0" resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== @@ -469,7 +479,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.11.0": +"@babel/plugin-proposal-optional-chaining@^7.10.1", "@babel/plugin-proposal-optional-chaining@^7.11.0": version "7.11.0" resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== @@ -478,7 +488,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/plugin-proposal-private-methods@^7.10.4": +"@babel/plugin-proposal-private-methods@^7.10.4", "@babel/plugin-proposal-private-methods@^7.8.3": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" integrity sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw== @@ -515,13 +525,27 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.0": +"@babel/plugin-syntax-decorators@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz#6853085b2c429f9d322d02f5a635018cdeb2360c" + integrity sha512-2NaoC6fAk2VMdhY1eerkfHV+lVYC1u8b+jmRJISqANCJlTxYy19HGdIkkQtix2UtkcPuPu+IlDgrVseZnU03bw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-export-default-from@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.10.4.tgz#e5494f95006355c10292a0ff1ce42a5746002ec8" + integrity sha512-79V6r6Pgudz0RnuMGp5xidu6Z+bPFugh8/Q9eDHonmLp4wKFAZDwygJwYgCzuDu8lFA/sYyT+mc5y2wkd7bTXA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-export-namespace-from@^7.8.3": version "7.8.3" resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" @@ -606,7 +630,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-arrow-functions@^7.10.4": +"@babel/plugin-syntax-typescript@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz#2f55e770d3501e83af217d782cb7517d7bb34d25" + integrity sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-arrow-functions@^7.10.4", "@babel/plugin-transform-arrow-functions@^7.8.3": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA== @@ -636,7 +667,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-classes@^7.10.4": +"@babel/plugin-transform-block-scoping@^7.8.3": + version "7.11.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" + integrity sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-classes@^7.10.4", "@babel/plugin-transform-classes@^7.9.5": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA== @@ -657,7 +695,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-destructuring@^7.10.4": +"@babel/plugin-transform-destructuring@^7.10.4", "@babel/plugin-transform-destructuring@^7.9.5": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== @@ -695,7 +733,7 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-flow" "^7.8.3" -"@babel/plugin-transform-for-of@^7.10.4": +"@babel/plugin-transform-for-of@^7.10.4", "@babel/plugin-transform-for-of@^7.9.0": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ== @@ -783,7 +821,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-replace-supers" "^7.10.4" -"@babel/plugin-transform-parameters@^7.10.4": +"@babel/plugin-transform-parameters@^7.10.4", "@babel/plugin-transform-parameters@^7.9.5": version "7.10.5" resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw== @@ -798,7 +836,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-react-constant-elements@^7.0.0", "@babel/plugin-transform-react-constant-elements@^7.2.0", "@babel/plugin-transform-react-constant-elements@^7.6.3", "@babel/plugin-transform-react-constant-elements@^7.7.4", "@babel/plugin-transform-react-constant-elements@^7.9.0": +"@babel/plugin-transform-react-constant-elements@^7.7.4", "@babel/plugin-transform-react-constant-elements@^7.9.0": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz#0f485260bf1c29012bb973e7e404749eaac12c9e" integrity sha512-cYmQBW1pXrqBte1raMkAulXmi7rjg3VI6ZLg9QIic8Hq7BtYXaWuZSxsr2siOMI6SWwpxjWfnwhTUrd7JlAV7g== @@ -869,14 +907,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-shorthand-properties@^7.10.4": +"@babel/plugin-transform-shorthand-properties@^7.10.4", "@babel/plugin-transform-shorthand-properties@^7.8.3": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-spread@^7.11.0": +"@babel/plugin-transform-spread@^7.11.0", "@babel/plugin-transform-spread@^7.8.3": version "7.11.0" resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== @@ -892,7 +930,7 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-regex" "^7.10.4" -"@babel/plugin-transform-template-literals@^7.10.4": +"@babel/plugin-transform-template-literals@^7.10.4", "@babel/plugin-transform-template-literals@^7.8.3": version "7.10.5" resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== @@ -907,6 +945,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-transform-typescript@^7.10.4": + version "7.11.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz#2b4879676af37342ebb278216dd090ac67f13abb" + integrity sha512-edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-typescript" "^7.10.4" + "@babel/plugin-transform-unicode-escapes@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" @@ -922,7 +969,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/preset-env@^7.4.5", "@babel/preset-env@^7.9.5": +"@babel/preset-env@^7.9.5": version "7.11.0" resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796" integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg== @@ -996,6 +1043,80 @@ levenary "^1.1.1" semver "^5.5.0" +"@babel/preset-env@^7.9.6": + version "7.11.5" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.5.tgz#18cb4b9379e3e92ffea92c07471a99a2914e4272" + integrity sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA== + dependencies: + "@babel/compat-data" "^7.11.0" + "@babel/helper-compilation-targets" "^7.10.4" + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-proposal-async-generator-functions" "^7.10.4" + "@babel/plugin-proposal-class-properties" "^7.10.4" + "@babel/plugin-proposal-dynamic-import" "^7.10.4" + "@babel/plugin-proposal-export-namespace-from" "^7.10.4" + "@babel/plugin-proposal-json-strings" "^7.10.4" + "@babel/plugin-proposal-logical-assignment-operators" "^7.11.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" + "@babel/plugin-proposal-numeric-separator" "^7.10.4" + "@babel/plugin-proposal-object-rest-spread" "^7.11.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" + "@babel/plugin-proposal-optional-chaining" "^7.11.0" + "@babel/plugin-proposal-private-methods" "^7.10.4" + "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-class-properties" "^7.10.4" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.10.4" + "@babel/plugin-transform-arrow-functions" "^7.10.4" + "@babel/plugin-transform-async-to-generator" "^7.10.4" + "@babel/plugin-transform-block-scoped-functions" "^7.10.4" + "@babel/plugin-transform-block-scoping" "^7.10.4" + "@babel/plugin-transform-classes" "^7.10.4" + "@babel/plugin-transform-computed-properties" "^7.10.4" + "@babel/plugin-transform-destructuring" "^7.10.4" + "@babel/plugin-transform-dotall-regex" "^7.10.4" + "@babel/plugin-transform-duplicate-keys" "^7.10.4" + "@babel/plugin-transform-exponentiation-operator" "^7.10.4" + "@babel/plugin-transform-for-of" "^7.10.4" + "@babel/plugin-transform-function-name" "^7.10.4" + "@babel/plugin-transform-literals" "^7.10.4" + "@babel/plugin-transform-member-expression-literals" "^7.10.4" + "@babel/plugin-transform-modules-amd" "^7.10.4" + "@babel/plugin-transform-modules-commonjs" "^7.10.4" + "@babel/plugin-transform-modules-systemjs" "^7.10.4" + "@babel/plugin-transform-modules-umd" "^7.10.4" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" + "@babel/plugin-transform-new-target" "^7.10.4" + "@babel/plugin-transform-object-super" "^7.10.4" + "@babel/plugin-transform-parameters" "^7.10.4" + "@babel/plugin-transform-property-literals" "^7.10.4" + "@babel/plugin-transform-regenerator" "^7.10.4" + "@babel/plugin-transform-reserved-words" "^7.10.4" + "@babel/plugin-transform-shorthand-properties" "^7.10.4" + "@babel/plugin-transform-spread" "^7.11.0" + "@babel/plugin-transform-sticky-regex" "^7.10.4" + "@babel/plugin-transform-template-literals" "^7.10.4" + "@babel/plugin-transform-typeof-symbol" "^7.10.4" + "@babel/plugin-transform-unicode-escapes" "^7.10.4" + "@babel/plugin-transform-unicode-regex" "^7.10.4" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.11.5" + browserslist "^4.12.0" + core-js-compat "^3.6.2" + invariant "^2.2.2" + levenary "^1.1.1" + semver "^5.5.0" + "@babel/preset-flow@^7.0.0": version "7.9.0" resolved "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.9.0.tgz#fee847c3e090b0b2d9227c1949e4da1d1379280d" @@ -1015,7 +1136,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.0.0", "@babel/preset-react@^7.9.4": +"@babel/preset-react@^7.0.0", "@babel/preset-react@^7.8.3", "@babel/preset-react@^7.9.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz#92e8a66d816f9911d11d4cc935be67adfc82dbcf" integrity sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw== @@ -1028,6 +1149,25 @@ "@babel/plugin-transform-react-jsx-source" "^7.10.4" "@babel/plugin-transform-react-pure-annotations" "^7.10.4" +"@babel/preset-typescript@^7.9.0": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.10.4.tgz#7d5d052e52a682480d6e2cc5aa31be61c8c25e36" + integrity sha512-SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-typescript" "^7.10.4" + +"@babel/register@^7.10.5": + version "7.11.5" + resolved "https://registry.npmjs.org/@babel/register/-/register-7.11.5.tgz#79becf89e0ddd0fba8b92bc279bc0f5d2d7ce2ea" + integrity sha512-CAml0ioKX+kOAvBQDHa/+t1fgOt3qkTIz0TrRtRAT6XY0m5qYZXR85k6/sLCNPMGhYDlCFHCYuU0ybTJbvlC6w== + dependencies: + find-cache-dir "^2.0.0" + lodash "^4.17.19" + make-dir "^2.1.0" + pirates "^4.0.0" + source-map-support "^0.5.16" + "@babel/runtime-corejs2@^7.10.4", "@babel/runtime-corejs2@^7.8.7": version "7.11.2" resolved "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.11.2.tgz#700a03945ebad0d31ba6690fc8a6bcc9040faa47" @@ -1044,7 +1184,7 @@ 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.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.4", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.11.2" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== @@ -1084,6 +1224,15 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@babel/types@^7.11.5": + version "7.11.5" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" + integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -1494,6 +1643,11 @@ prop-types "^15.6.2" scheduler "^0.19.0" +"@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" @@ -2553,6 +2707,13 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" +"@npmcli/move-file@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" + integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== + dependencies: + mkdirp "^1.0.4" + "@octokit/auth-token@^2.4.0": version "2.4.0" resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.0.tgz#b64178975218b99e4dfe948253f0673cbbb59d9f" @@ -2779,7 +2940,7 @@ resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= -"@reach/router@^1.2.1", "@reach/router@^1.3.3": +"@reach/router@^1.3.3": version "1.3.4" resolved "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz#d2574b19370a70c80480ed91f3da840136d10f8c" integrity sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA== @@ -2998,128 +3159,97 @@ glob "^7.1.4" read-pkg-up "^7.0.1" -"@storybook/addon-actions@^5.3.17": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-5.3.19.tgz#50548fa6e84bc79ad95233ce23ade4878fc7cfac" - integrity sha512-gXF29FFUgYlUoFf1DcVCmH1chg2ElaHWMmCi5h7aZe+g6fXBQw0UtEdJnYLMOqZCIiWoZyuf1ETD0RbNHPhRIw== +"@storybook/addon-actions@^6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.0.21.tgz#0de1d109d4b1eb99f644bbe84e74c25cfd2b1b6b" + integrity sha512-9y3ve+3GK1TsxQ5pxDjhB7E/XJXY+WqcSNlOX8Mb+XbS6AAgpFbkZCw1q8CGzyEUclHsQ6UK2+lo+IRGs4TLpA== dependencies: - "@storybook/addons" "5.3.19" - "@storybook/api" "5.3.19" - "@storybook/client-api" "5.3.19" - "@storybook/components" "5.3.19" - "@storybook/core-events" "5.3.19" - "@storybook/theming" "5.3.19" + "@storybook/addons" "6.0.21" + "@storybook/api" "6.0.21" + "@storybook/client-api" "6.0.21" + "@storybook/components" "6.0.21" + "@storybook/core-events" "6.0.21" + "@storybook/theming" "6.0.21" core-js "^3.0.1" - fast-deep-equal "^2.0.1" + fast-deep-equal "^3.1.1" global "^4.3.2" - polished "^3.3.1" + lodash "^4.17.15" + polished "^3.4.4" prop-types "^15.7.2" react "^16.8.3" - react-inspector "^4.0.0" - uuid "^3.3.2" + react-inspector "^5.0.1" + regenerator-runtime "^0.13.3" + ts-dedent "^1.1.1" + util-deprecate "^1.0.2" + uuid "^8.0.0" -"@storybook/addon-links@^5.3.17": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-5.3.19.tgz#3c23e886d44b56978ae254fed3bf8be54c877178" - integrity sha512-gn9u8lebREfRsyzxoDPG0O+kOf5aJ0BhzcCJGZZdqha0F6OWHhh8vJYZZvjJ/Qwze+Qt2zjrgWm+Q6+JLD8ugQ== +"@storybook/addon-links@^6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.0.21.tgz#6d4497933d560615617eaffeacec00ad8a788b01" + integrity sha512-5cRFxXS9BviDbS+DCKElr1vSafDcRhX74iIAWl/yOBUldUZvR+gX3WOZ7bO+OBSlQ1NJkt1NUAMag3aiJa4UUw== dependencies: - "@storybook/addons" "5.3.19" - "@storybook/client-logger" "5.3.19" - "@storybook/core-events" "5.3.19" + "@storybook/addons" "6.0.21" + "@storybook/client-logger" "6.0.21" + "@storybook/core-events" "6.0.21" "@storybook/csf" "0.0.1" - "@storybook/router" "5.3.19" + "@storybook/router" "6.0.21" + "@types/qs" "^6.9.0" core-js "^3.0.1" global "^4.3.2" prop-types "^15.7.2" qs "^6.6.0" - ts-dedent "^1.1.0" + regenerator-runtime "^0.13.3" + ts-dedent "^1.1.1" -"@storybook/addon-storysource@^5.3.18": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-5.3.19.tgz#ae693e88db5d220cb256a9ef4a2366c300e8d88c" - integrity sha512-W7mIAHuxYT+b1huaHCHLkBAh2MbeWmF8CxeBCFiOgZaYYQUTDEh018HJF8u2AqiWSouRhcfzhTnGxOo0hNRBgw== +"@storybook/addon-storysource@^6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.0.21.tgz#fce9a6de8b276239dbb49b809f3b5efd9fbcecb4" + integrity sha512-h8bu2twPfBRbWlxg8LRtCM5/r2FxWahJa0RC70qDX6eNdzDw6Xv0B8bZsVxKPWqBNQbwYPz5ui44ym53dFDM/Q== dependencies: - "@storybook/addons" "5.3.19" - "@storybook/components" "5.3.19" - "@storybook/router" "5.3.19" - "@storybook/source-loader" "5.3.19" - "@storybook/theming" "5.3.19" + "@storybook/addons" "6.0.21" + "@storybook/api" "6.0.21" + "@storybook/client-logger" "6.0.21" + "@storybook/components" "6.0.21" + "@storybook/router" "6.0.21" + "@storybook/source-loader" "6.0.21" + "@storybook/theming" "6.0.21" core-js "^3.0.1" estraverse "^4.2.0" - loader-utils "^1.2.3" - prettier "^1.16.4" + loader-utils "^2.0.0" + prettier "~2.0.5" prop-types "^15.7.2" - react-syntax-highlighter "^11.0.2" + react "^16.9.17" + react-syntax-highlighter "^12.2.1" regenerator-runtime "^0.13.3" - util-deprecate "^1.0.2" -"@storybook/addons@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/addons/-/addons-5.3.19.tgz#3a7010697afd6df9a41b8c8a7351d9a06ff490a4" - integrity sha512-Ky/k22p6i6FVNvs1VhuFyGvYJdcp+FgXqFgnPyY/OXJW/vPDapdElpTpHJZLFI9I2FQBDcygBPU5RXkumQ+KUQ== +"@storybook/addons@6.0.21", "@storybook/addons@^6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.21.tgz#bd5229652102c3aed59b78ef6920ff6b482b4d78" + integrity sha512-yDttNLc3vXqBxwK795ykgzTC6MpvuXDQuF4LHSlHZQe6wsMu1m3fljnbYdafJWdx6cNZwUblU3KYcR11PqhkPg== dependencies: - "@storybook/api" "5.3.19" - "@storybook/channels" "5.3.19" - "@storybook/client-logger" "5.3.19" - "@storybook/core-events" "5.3.19" - core-js "^3.0.1" - global "^4.3.2" - util-deprecate "^1.0.2" - -"@storybook/addons@^6.0.4": - version "6.0.12" - resolved "https://registry.npmjs.org/@storybook/addons/-/addons-6.0.12.tgz#f57f89e0aa55febfb5437ddc2628a0ccc9f44f44" - integrity sha512-gVCyWK4jys5cUY0d3/Bxi02oeCsgdi6xVvA+T4v+SgeduAfm/k01tdO2qDXL37Sl+2TT9HBQGazDrsIUW4d7Ug== - dependencies: - "@storybook/api" "6.0.12" - "@storybook/channels" "6.0.12" - "@storybook/client-logger" "6.0.12" - "@storybook/core-events" "6.0.12" - "@storybook/router" "6.0.12" - "@storybook/theming" "6.0.12" + "@storybook/api" "6.0.21" + "@storybook/channels" "6.0.21" + "@storybook/client-logger" "6.0.21" + "@storybook/core-events" "6.0.21" + "@storybook/router" "6.0.21" + "@storybook/theming" "6.0.21" core-js "^3.0.1" global "^4.3.2" regenerator-runtime "^0.13.3" -"@storybook/api@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/api/-/api-5.3.19.tgz#77f15e9e2eee59fe1ddeaba1ef39bc34713a6297" - integrity sha512-U/VzDvhNCPmw2igvJYNNM+uwJCL+3teiL6JmuoL4/cmcqhI6IqqG9dZmMP1egoCd19wXEP7rnAfB/VcYVg41dQ== - dependencies: - "@reach/router" "^1.2.1" - "@storybook/channels" "5.3.19" - "@storybook/client-logger" "5.3.19" - "@storybook/core-events" "5.3.19" - "@storybook/csf" "0.0.1" - "@storybook/router" "5.3.19" - "@storybook/theming" "5.3.19" - "@types/reach__router" "^1.2.3" - core-js "^3.0.1" - fast-deep-equal "^2.0.1" - global "^4.3.2" - lodash "^4.17.15" - memoizerific "^1.11.3" - prop-types "^15.6.2" - react "^16.8.3" - semver "^6.0.0" - shallow-equal "^1.1.0" - store2 "^2.7.1" - telejson "^3.2.0" - util-deprecate "^1.0.2" - -"@storybook/api@6.0.12": - version "6.0.12" - resolved "https://registry.npmjs.org/@storybook/api/-/api-6.0.12.tgz#d6ded5c9ac8f989c4915e11a80a4db69341fc95f" - integrity sha512-8+jPtfhUVM1hT22OT4rjHRxkW924gbWrAxCFYUXOw80a0x7BcT4sL2ah1D4FWf0IpCT/onLf9jLvSVXr8V0xOw== +"@storybook/api@6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/api/-/api-6.0.21.tgz#a25a1eb4d07dc43500e03c856db43baba46726f1" + integrity sha512-cRRGf/KGFwYiDouTouEcDdp45N1AbYnAfvLqYZ3KuUTGZ+CiU/PN/vavkp07DQeM4FIQO8TLhzHdsLFpLT7Lkw== dependencies: "@reach/router" "^1.3.3" - "@storybook/channels" "6.0.12" - "@storybook/client-logger" "6.0.12" - "@storybook/core-events" "6.0.12" + "@storybook/channels" "6.0.21" + "@storybook/client-logger" "6.0.21" + "@storybook/core-events" "6.0.21" "@storybook/csf" "0.0.1" - "@storybook/router" "6.0.12" + "@storybook/router" "6.0.21" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.0.12" + "@storybook/theming" "6.0.21" "@types/reach__router" "^1.3.5" core-js "^3.0.1" fast-deep-equal "^3.1.1" @@ -3133,159 +3263,166 @@ ts-dedent "^1.1.1" util-deprecate "^1.0.2" -"@storybook/channel-postmessage@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-5.3.19.tgz#ef9fe974c2a529d89ce342ff7acf5cc22805bae9" - integrity sha512-Iq0f4NPHR0UVVFCWt0cI7Myadk4/SATXYJPT6sv95KhnLjKEeYw571WBlThfp8a9FM80887xG+eIRe93c8dleA== +"@storybook/channel-postmessage@6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.0.21.tgz#97e8f43c1b66f84c7b8271e447d45d4f66d355d1" + integrity sha512-ArRnoaS+b7qpAku/SO27z/yjRDCXb37mCPYGX0ntPbiQajootUbGO7otfnjFkaP44hCEC9uDYlOfMU1hYU1N6A== dependencies: - "@storybook/channels" "5.3.19" - "@storybook/client-logger" "5.3.19" + "@storybook/channels" "6.0.21" + "@storybook/client-logger" "6.0.21" + "@storybook/core-events" "6.0.21" core-js "^3.0.1" global "^4.3.2" - telejson "^3.2.0" + qs "^6.6.0" + telejson "^5.0.2" -"@storybook/channels@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/channels/-/channels-5.3.19.tgz#65ad7cd19d70aa5eabbb2e5e39ceef5e510bcb7f" - integrity sha512-38seaeyshRGotTEZJppyYMg/Vx2zRKgFv1L6uGqkJT0LYoNSYtJhsiNFCJ2/KUJu2chAJ/j8h80bpVBVLQ/+WA== - dependencies: - core-js "^3.0.1" - -"@storybook/channels@6.0.12": - version "6.0.12" - resolved "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.12.tgz#377f8049272f1862f9235a5051d95124d53fa08e" - integrity sha512-0EMtjde4tRrBnJj5jOXSgtMYfMxGZgoe/0hvVSJuOABf0FY5x6xrqNNDfory7+TtgieuoQE4idl2/tdHE6QJJA== +"@storybook/channels@6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/channels/-/channels-6.0.21.tgz#bc0951efacbaa5f8827693fba4fe7c2290b5772c" + integrity sha512-G6gjcEotSwDmOlxSmOMgsO3VhQ42RLJK7kFp6D5eg0Q6S8vsypltdT8orxdu+6+AbcBrL+5Sla8lThzaCvXsVQ== dependencies: core-js "^3.0.1" ts-dedent "^1.1.1" util-deprecate "^1.0.2" -"@storybook/client-api@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/client-api/-/client-api-5.3.19.tgz#7a5630bb8fffb92742b1773881e9004ee7fdf8e0" - integrity sha512-Dh8ZLrLH91j9Fa28Gmp0KFUvvgK348aNMrDNAUdj4m4witz/BWQ2pxz6qq9/xFVErk/GanVC05kazGElqgYCRQ== +"@storybook/client-api@6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.0.21.tgz#6a652dea67d219a31d18af0e05b9f17ba6c7c316" + integrity sha512-emBXd/ml6pc3G8gP3MsR9zQsAq1zZbqof9MxB51tG/jpTXdqWQ8ce1pt1tJS8Xj0QDM072jR6wsY+mmro0GZnA== dependencies: - "@storybook/addons" "5.3.19" - "@storybook/channel-postmessage" "5.3.19" - "@storybook/channels" "5.3.19" - "@storybook/client-logger" "5.3.19" - "@storybook/core-events" "5.3.19" + "@storybook/addons" "6.0.21" + "@storybook/channel-postmessage" "6.0.21" + "@storybook/channels" "6.0.21" + "@storybook/client-logger" "6.0.21" + "@storybook/core-events" "6.0.21" "@storybook/csf" "0.0.1" - "@types/webpack-env" "^1.15.0" + "@types/qs" "^6.9.0" + "@types/webpack-env" "^1.15.2" core-js "^3.0.1" - eventemitter3 "^4.0.0" global "^4.3.2" - is-plain-object "^3.0.0" lodash "^4.17.15" memoizerific "^1.11.3" qs "^6.6.0" stable "^0.1.8" - ts-dedent "^1.1.0" + store2 "^2.7.1" + ts-dedent "^1.1.1" util-deprecate "^1.0.2" -"@storybook/client-logger@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-5.3.19.tgz#fbbd186e82102eaca1d6a5cca640271cae862921" - integrity sha512-nHftT9Ow71YgAd2/tsu79kwKk30mPuE0sGRRUHZVyCRciGFQweKNOS/6xi2Aq+WwBNNjPKNlbgxwRt1yKe1Vkg== - dependencies: - core-js "^3.0.1" - -"@storybook/client-logger@6.0.12": - version "6.0.12" - resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.12.tgz#33b4c3cd1f1d98dab32d8c8c906301f1ab18f969" - integrity sha512-MEFDlBbbqcivF/Xmxitx/ky8kxN7TVBZ7K754/pPEI5q6UW32DecJIRg79UWp/1nBPMX/A0U3ORwv+0MjgDZBQ== +"@storybook/client-logger@6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.0.21.tgz#20369addf9eb79fc0c85a2e0dcb48f5a1a544532" + integrity sha512-8aUEbhjXV+UMYQWukVYnp+kZafF+LD4Dm7eMo37IUZvt3VIjV1VvhxIDVJtqjk2vv0KZTepESFBkZQLmBzI9Zg== dependencies: core-js "^3.0.1" global "^4.3.2" -"@storybook/components@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/components/-/components-5.3.19.tgz#aac1f9eea1247cc85bd93b10fca803876fb84a6b" - integrity sha512-3g23/+ktlocaHLJKISu9Neu3XKa6aYP2ctDYkRtGchSB0Q55hQsUVGO+BEVuT7Pk2D59mVCxboBjxcRoPUY4pw== +"@storybook/components@6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/components/-/components-6.0.21.tgz#2f355370f993e0b7b9062094a03dffc2cdda91db" + integrity sha512-r6btqFW/rcXIU5v231EifZfdh9O0fy7bJDXwwDf8zVUgLx8JRc0VnSs3nvK3Is9HF1wZ9vjx/7Lh4rTIDZAjgg== dependencies: - "@storybook/client-logger" "5.3.19" - "@storybook/theming" "5.3.19" + "@storybook/client-logger" "6.0.21" + "@storybook/csf" "0.0.1" + "@storybook/theming" "6.0.21" + "@types/overlayscrollbars" "^1.9.0" + "@types/react-color" "^3.0.1" "@types/react-syntax-highlighter" "11.0.4" - "@types/react-textarea-autosize" "^4.3.3" 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" - polished "^3.3.1" + overlayscrollbars "^1.10.2" + polished "^3.4.4" popper.js "^1.14.7" - prop-types "^15.7.2" react "^16.8.3" + react-color "^2.17.0" react-dom "^16.8.3" - react-focus-lock "^2.1.0" - react-helmet-async "^1.0.2" - react-popper-tooltip "^2.8.3" - react-syntax-highlighter "^11.0.2" - react-textarea-autosize "^7.1.0" - simplebar-react "^1.0.0-alpha.6" - ts-dedent "^1.1.0" + react-popper-tooltip "^2.11.0" + react-syntax-highlighter "^12.2.1" + react-textarea-autosize "^8.1.1" + ts-dedent "^1.1.1" -"@storybook/core-events@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-5.3.19.tgz#18020cd52e0d8ef0973a8e9622a10d5f99796f79" - integrity sha512-lh78ySqMS7pDdMJAQAe35d1I/I4yPTqp09Cq0YIYOxx9BQZhah4DZTV1QIZt22H5p2lPb5MWLkWSxBaexZnz8A== +"@storybook/core-events@6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.21.tgz#2ce51e6d7524e7543dbb29571beac1dbeb4e5f40" + integrity sha512-p84fbPcsAhnqDhp+HJ4P8+vI2BqJus4IRoVAemLAwuPjyPElrV9UvOa/RHy1BN8Z6jXwFA+FFzfGl2kPJ3WYcA== dependencies: core-js "^3.0.1" -"@storybook/core-events@6.0.12": - version "6.0.12" - resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.0.12.tgz#499ae06092103b149fcd9417d8e0baa356adc2c0" - integrity sha512-52yNnp+dBkHiG9S+rQO7Nv3PdSDi0XnBt7FoQ+v8H31vGpgdBLEhy8w5ZA4eTrL951VaU/4/XoOaG2+yPALaoA== +"@storybook/core@6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/core/-/core-6.0.21.tgz#105c2b90ab27e7b478cb1b7d10e9fe5aba5e0708" + integrity sha512-/Et5NLabB12dnuPdhHDA/Q1pj0Mm2DGdL3KiLO4IC2VZeICCLGmU3/EGJBgjLK+anQ59pkclOiQ8i9eMXFiJ6A== dependencies: - core-js "^3.0.1" - -"@storybook/core@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/core/-/core-5.3.19.tgz#1e61f35c5148343a0c580f5d5efb77f3b4243a30" - integrity sha512-4EYzglqb1iD6x9gxtAYpRGwGP6qJGiU2UW4GiYrErEmeu6y6tkyaqW5AwGlIo9+6jAfwD0HjaK8afvjKTtmmMQ== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.7.0" - "@babel/plugin-proposal-object-rest-spread" "^7.6.2" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - "@babel/plugin-transform-react-constant-elements" "^7.2.0" - "@babel/preset-env" "^7.4.5" - "@storybook/addons" "5.3.19" - "@storybook/channel-postmessage" "5.3.19" - "@storybook/client-api" "5.3.19" - "@storybook/client-logger" "5.3.19" - "@storybook/core-events" "5.3.19" + "@babel/plugin-proposal-class-properties" "^7.8.3" + "@babel/plugin-proposal-decorators" "^7.8.3" + "@babel/plugin-proposal-export-default-from" "^7.8.3" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.1" + "@babel/plugin-proposal-object-rest-spread" "^7.9.6" + "@babel/plugin-proposal-optional-chaining" "^7.10.1" + "@babel/plugin-proposal-private-methods" "^7.8.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-arrow-functions" "^7.8.3" + "@babel/plugin-transform-block-scoping" "^7.8.3" + "@babel/plugin-transform-classes" "^7.9.5" + "@babel/plugin-transform-destructuring" "^7.9.5" + "@babel/plugin-transform-for-of" "^7.9.0" + "@babel/plugin-transform-parameters" "^7.9.5" + "@babel/plugin-transform-shorthand-properties" "^7.8.3" + "@babel/plugin-transform-spread" "^7.8.3" + "@babel/plugin-transform-template-literals" "^7.8.3" + "@babel/preset-env" "^7.9.6" + "@babel/preset-react" "^7.8.3" + "@babel/preset-typescript" "^7.9.0" + "@babel/register" "^7.10.5" + "@storybook/addons" "6.0.21" + "@storybook/api" "6.0.21" + "@storybook/channel-postmessage" "6.0.21" + "@storybook/channels" "6.0.21" + "@storybook/client-api" "6.0.21" + "@storybook/client-logger" "6.0.21" + "@storybook/components" "6.0.21" + "@storybook/core-events" "6.0.21" "@storybook/csf" "0.0.1" - "@storybook/node-logger" "5.3.19" - "@storybook/router" "5.3.19" - "@storybook/theming" "5.3.19" - "@storybook/ui" "5.3.19" + "@storybook/node-logger" "6.0.21" + "@storybook/router" "6.0.21" + "@storybook/semver" "^7.3.2" + "@storybook/theming" "6.0.21" + "@storybook/ui" "6.0.21" + "@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-plugin-add-react-displayname "^0.0.5" + babel-loader "^8.0.6" babel-plugin-emotion "^10.0.20" - babel-plugin-macros "^2.7.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 "^3.0.0" - cli-table3 "0.5.1" - commander "^4.0.1" + chalk "^4.0.0" + cli-table3 "0.6.0" + commander "^5.0.0" core-js "^3.0.1" - corejs-upgrade-webpack-plugin "^2.2.0" - css-loader "^3.0.0" + css-loader "^3.5.3" detect-port "^1.3.0" dotenv-webpack "^1.7.0" - ejs "^2.7.4" + ejs "^3.1.2" express "^4.17.0" - file-loader "^4.2.0" + file-loader "^6.0.0" file-system-cache "^1.0.5" - find-cache-dir "^3.0.0" find-up "^4.1.0" - fs-extra "^8.0.1" + fork-ts-checker-webpack-plugin "^4.1.4" + fs-extra "^9.0.0" + glob "^7.1.6" glob-base "^0.3.0" + glob-promise "^3.4.0" global "^4.3.2" - html-webpack-plugin "^4.0.0-beta.2" + html-webpack-plugin "^4.2.1" inquirer "^7.0.0" interpret "^2.0.0" ip "^1.1.5" @@ -3293,30 +3430,29 @@ lazy-universal-dotenv "^3.0.1" micromatch "^4.0.2" node-fetch "^2.6.0" - open "^7.0.0" - pnp-webpack-plugin "1.5.0" + pkg-dir "^4.2.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 "^3.1.0" - react-dev-utils "^9.0.0" + raw-loader "^4.0.1" + react-dev-utils "^10.0.0" regenerator-runtime "^0.13.3" - resolve "^1.11.0" resolve-from "^5.0.0" - semver "^6.0.0" serve-favicon "^2.5.0" shelljs "^0.8.3" - style-loader "^1.0.0" - terser-webpack-plugin "^2.1.2" - ts-dedent "^1.1.0" + stable "^0.1.8" + style-loader "^1.2.1" + terser-webpack-plugin "^3.0.0" + ts-dedent "^1.1.1" unfetch "^4.1.0" - url-loader "^2.0.1" + url-loader "^4.0.0" util-deprecate "^1.0.2" - webpack "^4.33.0" + webpack "^4.43.0" webpack-dev-middleware "^3.7.0" webpack-hot-middleware "^2.25.0" - webpack-virtual-modules "^0.2.0" + webpack-virtual-modules "^0.2.2" "@storybook/csf@0.0.1": version "0.0.1" @@ -3325,64 +3461,47 @@ dependencies: lodash "^4.17.15" -"@storybook/node-logger@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-5.3.19.tgz#c414e4d3781aeb06298715220012f552a36dff29" - integrity sha512-hKshig/u5Nj9fWy0OsyU04yqCxr0A9pydOHIassr4fpLAaePIN2YvqCqE2V+TxQHjZUnowSSIhbXrGt0DI5q2A== +"@storybook/node-logger@6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.0.21.tgz#5b8ba589d5cca6a67c69ee8f5258755b7e1dbc08" + integrity sha512-KRBf+Fz7fgtwHdnYt70JTZbcYMZ1pQPtDyqbrFYCjwkbx5GPX5vMOozlxCIj9elseqPIsF8CKgHOW7cFHVyWYw== dependencies: "@types/npmlog" "^4.1.2" - chalk "^3.0.0" + chalk "^4.0.0" core-js "^3.0.1" npmlog "^4.1.2" pretty-hrtime "^1.0.3" - regenerator-runtime "^0.13.3" -"@storybook/react@^5.3.17": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/react/-/react-5.3.19.tgz#ad7e7a5538399e2794cdb5a1b844a2b77c10bd09" - integrity sha512-OBRUqol3YLQi/qE55x2pWkv4YpaAmmfj6/Km+7agx+og+oNQl0nnlXy7r27X/4j3ERczzURa5pJHtSjwiNaJNw== +"@storybook/react@^6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/react/-/react-6.0.21.tgz#68f8a318e9940305b06eb894896624a35a9868b0" + integrity sha512-L3PcoBJq5aK1aTaJNfwsSJ8Kxgcyk0WknN4TDqhP7a+oXmuMY1YEi96hEvQVIm0TBCkQxs61K70/T7vlilEtHg== dependencies: - "@babel/plugin-transform-react-constant-elements" "^7.6.3" "@babel/preset-flow" "^7.0.0" "@babel/preset-react" "^7.0.0" - "@storybook/addons" "5.3.19" - "@storybook/core" "5.3.19" - "@storybook/node-logger" "5.3.19" - "@svgr/webpack" "^4.0.3" - "@types/webpack-env" "^1.15.0" + "@storybook/addons" "6.0.21" + "@storybook/core" "6.0.21" + "@storybook/node-logger" "6.0.21" + "@storybook/semver" "^7.3.2" + "@svgr/webpack" "^5.4.0" + "@types/webpack-env" "^1.15.2" babel-plugin-add-react-displayname "^0.0.5" babel-plugin-named-asset-import "^0.3.1" - babel-plugin-react-docgen "^4.0.0" + babel-plugin-react-docgen "^4.1.0" core-js "^3.0.1" global "^4.3.2" lodash "^4.17.15" - mini-css-extract-plugin "^0.7.0" prop-types "^15.7.2" - react-dev-utils "^9.0.0" + react-dev-utils "^10.0.0" + react-docgen-typescript-plugin "^0.5.2" regenerator-runtime "^0.13.3" - semver "^6.0.0" - ts-dedent "^1.1.0" - webpack "^4.33.0" + ts-dedent "^1.1.1" + webpack "^4.43.0" -"@storybook/router@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/router/-/router-5.3.19.tgz#0f783b85658f99e4007f74347ad7ef17dbf7fc3a" - integrity sha512-yNClpuP7BXQlBTRf6Ggle3/R349/k6kvI5Aim4jf6X/2cFVg2pzBXDAF41imNm9PcvdxwabQLm6I48p7OvKr/w== - dependencies: - "@reach/router" "^1.2.1" - "@storybook/csf" "0.0.1" - "@types/reach__router" "^1.2.3" - core-js "^3.0.1" - global "^4.3.2" - lodash "^4.17.15" - memoizerific "^1.11.3" - qs "^6.6.0" - util-deprecate "^1.0.2" - -"@storybook/router@6.0.12": - version "6.0.12" - resolved "https://registry.npmjs.org/@storybook/router/-/router-6.0.12.tgz#f66d979ec01e15c11a378eb5dde3e696747ac184" - integrity sha512-vv1jHOOGelSzmDJnp9SdC/KR5RpE2am568ImOAQ9/XCmXNDhVshVlIS7ajy6yCKN/mS/63zKflbRNef+3SLU9Q== +"@storybook/router@6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/router/-/router-6.0.21.tgz#0f22261d4782c72a5a13e80cfcd8d50aed1f98c6" + integrity sha512-46SsKJfcd12lRrISnfrWhicJx8EylkgGDGohfH0n5p7inkkGOkKV8QFZoYPRKZueMXmUKpzJ0Z3HmVsLTCrCDw== dependencies: "@reach/router" "^1.3.3" "@types/reach__router" "^1.3.5" @@ -3399,49 +3518,31 @@ core-js "^3.6.5" find-up "^4.1.0" -"@storybook/source-loader@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-5.3.19.tgz#ff0a00731c24c61721d8b9d84152f8542913a3b7" - integrity sha512-srSZRPgEOUse8nRVnlazweB2QGp63mPqM0uofg8zYARyaYSOzkC155ymdeiHsmiBTS3X3I0FQE4+KnwiH7iLtw== +"@storybook/source-loader@6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.0.21.tgz#f4ae0fa3f3d119f9ace1d3364df21f8f7cf65bd7" + integrity sha512-Duzpz8udadR7wzH8/4F3GnMRe23oBOxTm4jBZw/T8NA+HqBtd9Y16swWw4BfwsRwfdZS4EVw3PtWgsAfoqF7ow== dependencies: - "@storybook/addons" "5.3.19" - "@storybook/client-logger" "5.3.19" + "@storybook/addons" "6.0.21" + "@storybook/client-logger" "6.0.21" "@storybook/csf" "0.0.1" core-js "^3.0.1" estraverse "^4.2.0" global "^4.3.2" - loader-utils "^1.2.3" - prettier "^1.16.4" - prop-types "^15.7.2" + loader-utils "^2.0.0" + lodash "^4.17.15" + prettier "~2.0.5" regenerator-runtime "^0.13.3" -"@storybook/theming@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/theming/-/theming-5.3.19.tgz#177d9819bd64f7a1a6ea2f1920ffa5baf9a5f467" - integrity sha512-ecG+Rq3hc1GOzKHamYnD4wZ0PEP9nNg0mXbC3RhbxfHj+pMMCWWmx9B2Uu75SL1PTT8WcfkFO0hU/0IO84Pzlg== - dependencies: - "@emotion/core" "^10.0.20" - "@emotion/styled" "^10.0.17" - "@storybook/client-logger" "5.3.19" - 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.3.1" - prop-types "^15.7.2" - resolve-from "^5.0.0" - ts-dedent "^1.1.0" - -"@storybook/theming@6.0.12": - version "6.0.12" - resolved "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.12.tgz#83b2099e7a7a5bd3acadb8e4106234ede62197c7" - integrity sha512-hmF6EIbm2A7G84+JR36UQWteElSwSNfGLzccAlUMiZIhdMG0SuCtyHe6FmckAWC226Mv+MW14fr+a4+OuRpM4g== +"@storybook/theming@6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/theming/-/theming-6.0.21.tgz#d56051c0b8679c2b701ce08385660ab4146cf15f" + integrity sha512-n97DfB9kG6WrV1xBGDyeQibTrh8pBBCp3dSL3UTGH+KX3C2+4sm6QHlTgyekbi5FrbFEbnuZOKAS3YbLVONsRQ== dependencies: "@emotion/core" "^10.0.20" "@emotion/is-prop-valid" "^0.8.6" "@emotion/styled" "^10.0.17" - "@storybook/client-logger" "6.0.12" + "@storybook/client-logger" "6.0.21" core-js "^3.0.1" deep-object-diff "^1.1.0" emotion-theming "^10.0.19" @@ -3451,32 +3552,32 @@ resolve-from "^5.0.0" ts-dedent "^1.1.1" -"@storybook/ui@5.3.19": - version "5.3.19" - resolved "https://registry.npmjs.org/@storybook/ui/-/ui-5.3.19.tgz#ac03b67320044a3892ee784111d4436b61874332" - integrity sha512-r0VxdWab49nm5tzwvveVDnsHIZHMR76veYOu/NHKDUZ5hnQl1LMG1YyMCFFa7KiwD/OrZxRWr6/Ma7ep9kR4Gw== +"@storybook/ui@6.0.21": + version "6.0.21" + resolved "https://registry.npmjs.org/@storybook/ui/-/ui-6.0.21.tgz#5dac2b68a30f5dba5457e0315f58977e07138968" + integrity sha512-50QYF8tHUgpVq7B7PWp7kmyf79NySWJO0piQFjHv027vV8GfbXMWVswAXwo3IfCihPlnLKe01WbsigM/9T1HCQ== dependencies: "@emotion/core" "^10.0.20" - "@storybook/addons" "5.3.19" - "@storybook/api" "5.3.19" - "@storybook/channels" "5.3.19" - "@storybook/client-logger" "5.3.19" - "@storybook/components" "5.3.19" - "@storybook/core-events" "5.3.19" - "@storybook/router" "5.3.19" - "@storybook/theming" "5.3.19" + "@storybook/addons" "6.0.21" + "@storybook/api" "6.0.21" + "@storybook/channels" "6.0.21" + "@storybook/client-logger" "6.0.21" + "@storybook/components" "6.0.21" + "@storybook/core-events" "6.0.21" + "@storybook/router" "6.0.21" + "@storybook/semver" "^7.3.2" + "@storybook/theming" "6.0.21" + "@types/markdown-to-jsx" "^6.11.0" copy-to-clipboard "^3.0.8" core-js "^3.0.1" core-js-pure "^3.0.1" emotion-theming "^10.0.19" - fast-deep-equal "^2.0.1" - fuse.js "^3.4.6" + fuse.js "^3.6.1" global "^4.3.2" lodash "^4.17.15" markdown-to-jsx "^6.11.4" memoizerific "^1.11.3" - polished "^3.3.1" - prop-types "^15.7.2" + polished "^3.4.4" qs "^6.6.0" react "^16.8.3" react-dom "^16.8.3" @@ -3484,12 +3585,9 @@ react-helmet-async "^1.0.2" react-hotkeys "2.0.0" react-sizeme "^2.6.7" - regenerator-runtime "^0.13.2" + regenerator-runtime "^0.13.3" resolve-from "^5.0.0" - semver "^6.0.0" store2 "^2.7.1" - telejson "^3.2.0" - util-deprecate "^1.0.2" "@styled-system/background@^5.1.2": version "5.1.2" @@ -3597,100 +3695,46 @@ dependencies: loader-utils "^1.1.0" -"@svgr/babel-plugin-add-jsx-attribute@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz#dadcb6218503532d6884b210e7f3c502caaa44b1" - integrity sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig== - "@svgr/babel-plugin-add-jsx-attribute@^5.4.0": version "5.4.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== -"@svgr/babel-plugin-remove-jsx-attribute@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz#297550b9a8c0c7337bea12bdfc8a80bb66f85abc" - integrity sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ== - "@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": version "5.4.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== -"@svgr/babel-plugin-remove-jsx-empty-expression@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz#c196302f3e68eab6a05e98af9ca8570bc13131c7" - integrity sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w== - "@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": version "5.0.1" resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== -"@svgr/babel-plugin-replace-jsx-attribute-value@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz#310ec0775de808a6a2e4fd4268c245fd734c1165" - integrity sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w== - "@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": version "5.0.1" resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== -"@svgr/babel-plugin-svg-dynamic-title@^4.3.3": - version "4.3.3" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.3.3.tgz#2cdedd747e5b1b29ed4c241e46256aac8110dd93" - integrity sha512-w3Be6xUNdwgParsvxkkeZb545VhXEwjGMwExMVBIdPQJeyMQHqm9Msnb2a1teHBqUYL66qtwfhNkbj1iarCG7w== - "@svgr/babel-plugin-svg-dynamic-title@^5.4.0": version "5.4.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== -"@svgr/babel-plugin-svg-em-dimensions@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz#9a94791c9a288108d20a9d2cc64cac820f141391" - integrity sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w== - "@svgr/babel-plugin-svg-em-dimensions@^5.4.0": version "5.4.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== -"@svgr/babel-plugin-transform-react-native-svg@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz#151487322843359a1ca86b21a3815fd21a88b717" - integrity sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw== - "@svgr/babel-plugin-transform-react-native-svg@^5.4.0": version "5.4.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== -"@svgr/babel-plugin-transform-svg-component@^4.2.0": - version "4.2.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz#5f1e2f886b2c85c67e76da42f0f6be1b1767b697" - integrity sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw== - "@svgr/babel-plugin-transform-svg-component@^5.4.0": version "5.4.0" resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.4.0.tgz#a2212b4d018e6075a058bb7e220a66959ef7a03c" integrity sha512-zLl4Fl3NvKxxjWNkqEcpdSOpQ3LGVH2BNFQ6vjaK6sFo2IrSznrhURIPI0HAphKiiIwNYjAfE0TNoQDSZv0U9A== -"@svgr/babel-preset@^4.3.3": - version "4.3.3" - resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-4.3.3.tgz#a75d8c2f202ac0e5774e6bfc165d028b39a1316c" - integrity sha512-6PG80tdz4eAlYUN3g5GZiUjg2FMcp+Wn6rtnz5WJG9ITGEF1pmFdzq02597Hn0OmnQuCVaBYQE1OVFAnwOl+0A== - dependencies: - "@svgr/babel-plugin-add-jsx-attribute" "^4.2.0" - "@svgr/babel-plugin-remove-jsx-attribute" "^4.2.0" - "@svgr/babel-plugin-remove-jsx-empty-expression" "^4.2.0" - "@svgr/babel-plugin-replace-jsx-attribute-value" "^4.2.0" - "@svgr/babel-plugin-svg-dynamic-title" "^4.3.3" - "@svgr/babel-plugin-svg-em-dimensions" "^4.2.0" - "@svgr/babel-plugin-transform-react-native-svg" "^4.2.0" - "@svgr/babel-plugin-transform-svg-component" "^4.2.0" - "@svgr/babel-preset@^5.4.0": version "5.4.0" resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.4.0.tgz#da21854643e1c4ad2279239baa7d5a8b128c1f15" @@ -3705,15 +3749,6 @@ "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" "@svgr/babel-plugin-transform-svg-component" "^5.4.0" -"@svgr/core@^4.3.3": - version "4.3.3" - resolved "https://registry.npmjs.org/@svgr/core/-/core-4.3.3.tgz#b37b89d5b757dc66e8c74156d00c368338d24293" - integrity sha512-qNuGF1QON1626UCaZamWt5yedpgOytvLj5BQZe2j1k1B8DUG4OyugZyfEwBeXozCUwhLEpsrgPrE+eCu4fY17w== - dependencies: - "@svgr/plugin-jsx" "^4.3.3" - camelcase "^5.3.1" - cosmiconfig "^5.2.1" - "@svgr/core@^5.4.0": version "5.4.0" resolved "https://registry.npmjs.org/@svgr/core/-/core-5.4.0.tgz#655378ee43679eb94fee3d4e1976e38252dff8e7" @@ -3723,13 +3758,6 @@ camelcase "^6.0.0" cosmiconfig "^6.0.0" -"@svgr/hast-util-to-babel-ast@^4.3.2": - version "4.3.2" - resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.2.tgz#1d5a082f7b929ef8f1f578950238f630e14532b8" - integrity sha512-JioXclZGhFIDL3ddn4Kiq8qEqYM2PyDKV0aYno8+IXTLuYt6TOgHUbUAAFvqtb0Xn37NwP0BTHglejFoYr8RZg== - dependencies: - "@babel/types" "^7.4.4" - "@svgr/hast-util-to-babel-ast@^5.4.0": version "5.4.0" resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.4.0.tgz#bb5d002e428f510aa5b53ec0a02377a95b367715" @@ -3747,17 +3775,7 @@ "@svgr/hast-util-to-babel-ast" "^5.4.0" svg-parser "^2.0.2" -"@svgr/plugin-jsx@^4.3.3": - version "4.3.3" - resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz#e2ba913dbdfbe85252a34db101abc7ebd50992fa" - integrity sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w== - dependencies: - "@babel/core" "^7.4.5" - "@svgr/babel-preset" "^4.3.3" - "@svgr/hast-util-to-babel-ast" "^4.3.2" - svg-parser "^2.0.0" - -"@svgr/plugin-svgo@4.3.x", "@svgr/plugin-svgo@^4.3.1": +"@svgr/plugin-svgo@4.3.x": version "4.3.1" resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-4.3.1.tgz#daac0a3d872e3f55935c6588dd370336865e9e32" integrity sha512-PrMtEDUWjX3Ea65JsVCwTIXuSqa3CG9px+DluF1/eo9mlDrgrtFE7NE/DjdhjJgSM9wenlVBzkzneSIUgfUI/w== @@ -3789,7 +3807,7 @@ "@svgr/plugin-svgo" "^5.4.0" rollup-pluginutils "^2.8.2" -"@svgr/webpack@5.4.x": +"@svgr/webpack@5.4.x", "@svgr/webpack@^5.4.0": version "5.4.0" resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.4.0.tgz#b68bc86e29cf007292b96ced65f80971175632e0" integrity sha512-LjepnS/BSAvelnOnnzr6Gg0GcpLmnZ9ThGFK5WJtm1xOqdBE/1IACZU7MMdVzjyUkfFqGz87eRE4hFaSLiUwYg== @@ -3803,20 +3821,6 @@ "@svgr/plugin-svgo" "^5.4.0" loader-utils "^2.0.0" -"@svgr/webpack@^4.0.3": - version "4.3.3" - resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.3.3.tgz#13cc2423bf3dff2d494f16b17eb7eacb86895017" - integrity sha512-bjnWolZ6KVsHhgyCoYRFmbd26p8XVbulCzSG53BDQqAr+JOAderYK7CuYrB3bDjHJuF6LJ7Wrr42+goLRV9qIg== - dependencies: - "@babel/core" "^7.4.5" - "@babel/plugin-transform-react-constant-elements" "^7.0.0" - "@babel/preset-env" "^7.4.5" - "@babel/preset-react" "^7.0.0" - "@svgr/core" "^4.3.3" - "@svgr/plugin-jsx" "^4.3.3" - "@svgr/plugin-svgo" "^4.3.1" - loader-utils "^1.2.3" - "@szmarczak/http-timer@^1.1.2": version "1.1.2" resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" @@ -4013,6 +4017,11 @@ "@types/connect" "*" "@types/node" "*" +"@types/braces@*": + version "3.0.0" + resolved "https://registry.npmjs.org/@types/braces/-/braces-3.0.0.tgz#7da1c0d44ff1c7eb660a36ec078ea61ba7eb42cb" + integrity sha512-TbH79tcyi9FHwbyboOKeRachRq63mSuWYXOflsNO9ZyE5ClQ/JaozNKl+aWUq87qPNsXasXxi2AbgfwIJ+8GQw== + "@types/cacheable-request@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" @@ -4222,6 +4231,19 @@ 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@*": + version "7.1.3" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + "@types/glob@^7.1.1": version "7.1.1" resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" @@ -4436,6 +4458,20 @@ resolved "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== +"@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/micromatch@^4.0.1": + version "4.0.1" + resolved "https://registry.npmjs.org/@types/micromatch/-/micromatch-4.0.1.tgz#9381449dd659fc3823fd2a4190ceacc985083bc7" + integrity sha512-my6fLBvpY70KattTNzYOK6KU1oR1+UCz9ug/JbcF5UrEmeCt9P7DV2t7L8+t18mMPINqGQCE4O8PLOPbI84gxw== + dependencies: + "@types/braces" "*" + "@types/mime@*": version "2.0.1" resolved "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d" @@ -4467,7 +4503,7 @@ dependencies: "@types/node" "*" -"@types/node-fetch@2.5.7", "@types/node-fetch@^2.5.7": +"@types/node-fetch@2.5.7", "@types/node-fetch@^2.5.4", "@types/node-fetch@^2.5.7": version "2.5.7" resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz#20a2afffa882ab04d44ca786449a276f9f6bbf3c" integrity sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw== @@ -4526,6 +4562,11 @@ dependencies: ora "*" +"@types/overlayscrollbars@^1.9.0": + version "1.12.0" + resolved "https://registry.npmjs.org/@types/overlayscrollbars/-/overlayscrollbars-1.12.0.tgz#98456caceca8ad73bd5bb572632a585074e70764" + integrity sha512-h/pScHNKi4mb+TrJGDon8Yb06ujFG0mSg12wIO0sWMUF3dQIe2ExRRdNRviaNt9IjxIiOfnRr7FsQAdHwK4sMg== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -4595,7 +4636,7 @@ resolved "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== -"@types/qs@*": +"@types/qs@*", "@types/qs@^6.9.0": version "6.9.4" resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.4.tgz#a59e851c1ba16c0513ea123830dd639a0a15cb6a" integrity sha512-+wYo+L6ZF6BMoEjtf8zB2esQsqdV6WsjRK/GP9WOgLPrq87PbNWgIxS76dS5uvl/QXtHGakZmwTznIfcPXcKlQ== @@ -4605,7 +4646,7 @@ resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== -"@types/reach__router@^1.2.3", "@types/reach__router@^1.3.5": +"@types/reach__router@^1.3.5": version "1.3.5" resolved "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.5.tgz#14e1e981cccd3a5e50dc9e969a72de0b9d472f6d" integrity sha512-h0NbqXN/tJuBY/xggZSej1SKQEstbHO7J/omt1tYoFGmj3YXOodZKbbqD4mNDh7zvEGYd7YFrac1LTtAr3xsYQ== @@ -4613,6 +4654,14 @@ "@types/history" "*" "@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-dev-utils@^9.0.4": version "9.0.4" resolved "https://registry.npmjs.org/@types/react-dev-utils/-/react-dev-utils-9.0.4.tgz#3e4bee79b7536777cef219427ab1d38adc24f3f2" @@ -4667,13 +4716,6 @@ dependencies: "@types/react" "*" -"@types/react-textarea-autosize@^4.3.3": - version "4.3.5" - resolved "https://registry.npmjs.org/@types/react-textarea-autosize/-/react-textarea-autosize-4.3.5.tgz#6c4d2753fa1864c98c0b2b517f67bb1f6e4c46de" - integrity sha512-PiDL83kPMTolyZAWW3lyzO6ktooTb9tFTntVy7CA83/qFLWKLJ5bLeRboy6J6j3b1e8h2Eec6gBTEOOJRjV14A== - dependencies: - "@types/react" "*" - "@types/react-transition-group@^4.2.0": version "4.2.4" resolved "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.2.4.tgz#c7416225987ccdb719262766c1483da8f826838d" @@ -4703,6 +4745,13 @@ 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/recursive-readdir@^2.2.0": version "2.2.0" resolved "https://registry.npmjs.org/@types/recursive-readdir/-/recursive-readdir-2.2.0.tgz#b39cd5474fd58ea727fe434d5c68b7a20ba9121c" @@ -4896,7 +4945,7 @@ "@types/serve-static" "*" "@types/webpack" "*" -"@types/webpack-env@^1.15.0", "@types/webpack-env@^1.15.2": +"@types/webpack-env@^1.15.2": version "1.15.2" resolved "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.15.2.tgz#927997342bb9f4a5185a86e6579a0a18afc33b0a" integrity sha512-67ZgZpAlhIICIdfQrB5fnDvaKFcDxpKibxznfYRVAT4mQE41Dido/3Ty+E3xGBmTogc5+0Qb8tWhna+5B8z1iQ== @@ -5165,6 +5214,18 @@ "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" +"@webpack-contrib/schema-utils@^1.0.0-beta.0": + version "1.0.0-beta.0" + resolved "https://registry.npmjs.org/@webpack-contrib/schema-utils/-/schema-utils-1.0.0-beta.0.tgz#bf9638c9464d177b48209e84209e23bee2eb4f65" + integrity sha512-LonryJP+FxQQHsjGBi6W786TQB1Oym+agTpY0c+Kj8alnIw+DLUJb6SI8Y1GHGhLCH1yPRrucjObUmxNICQ1pg== + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + chalk "^2.3.2" + strip-ansi "^4.0.0" + text-table "^0.2.0" + webpack-log "^1.1.2" + "@wry/equality@^0.1.2": version "0.1.11" resolved "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" @@ -5352,6 +5413,11 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + ajv@6.5.2: version "6.5.2" resolved "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz#678495f9b82f7cca6be248dd92f59bff5e1f4360" @@ -5382,6 +5448,16 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.1, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5, ajv@ json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.12.4: + version "6.12.4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" + integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" @@ -5925,6 +6001,11 @@ async-retry@^1.2.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.6.1, async@^2.6.2: version "2.6.3" resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" @@ -6064,6 +6145,17 @@ babel-jest@^26.3.0: 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== + dependencies: + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" + pify "^4.0.1" + schema-utils "^2.6.5" + babel-plugin-add-react-displayname@^0.0.5: version "0.0.5" resolved "https://registry.npmjs.org/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz#339d4cddb7b65fd62d1df9db9fe04de134122bd5" @@ -6113,7 +6205,7 @@ babel-plugin-jest-hoist@^26.2.0: "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.7.0: +babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.8.0: version "2.8.0" resolved "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== @@ -6203,7 +6295,7 @@ babel-plugin-named-asset-import@^0.3.1: 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-react-docgen@^4.0.0: +babel-plugin-react-docgen@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.1.0.tgz#1dfa447dac9ca32d625a123df5733a9e47287c26" integrity sha512-vzpnBlfGv8XOhJM2zbPyyqw2OLEbelgZZsaaRRTpVwNKuYuc+pUg4+dy7i9gCRms0uOQn4osX571HRcCJMJCmA== @@ -6410,6 +6502,13 @@ before-after-hook@^2.0.0, 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== + dependencies: + open "^7.0.3" + bfj@^7.0.2: version "7.0.2" resolved "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz#1988ce76f3add9ac2913fd8ba47aad9e651bfbb2" @@ -6636,15 +6735,6 @@ browserslist@4.10.0: node-releases "^1.1.52" pkg-up "^3.1.0" -browserslist@4.7.0: - version "4.7.0" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" - integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== - dependencies: - caniuse-lite "^1.0.30000989" - electron-to-chromium "^1.3.247" - node-releases "^1.1.29" - browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.8.3: version "4.13.0" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz#42556cba011e1b0a2775b611cba6a8eca18e940d" @@ -6807,28 +6897,27 @@ cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: unique-filename "^1.1.1" y18n "^4.0.0" -cacache@^13.0.1: - version "13.0.1" - resolved "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" - integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== +cacache@^15.0.5: + version "15.0.5" + resolved "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" + integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== dependencies: - chownr "^1.1.2" - figgy-pudding "^3.5.1" + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" fs-minipass "^2.0.0" glob "^7.1.4" - graceful-fs "^4.2.2" infer-owner "^1.0.4" - lru-cache "^5.1.1" - minipass "^3.0.0" + lru-cache "^6.0.0" + minipass "^3.1.1" minipass-collect "^1.0.2" minipass-flush "^1.0.5" minipass-pipeline "^1.2.2" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - p-map "^3.0.0" + mkdirp "^1.0.3" + p-map "^4.0.0" promise-inflight "^1.0.1" - rimraf "^2.7.1" - ssri "^7.0.0" + rimraf "^3.0.2" + ssri "^8.0.0" + tar "^6.0.2" unique-filename "^1.1.1" cache-base@^1.0.1: @@ -6978,11 +7067,6 @@ camelcase@^6.0.0: resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e" integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== -can-use-dom@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz#22cc4a34a0abc43950f42c6411024a3f6366b45a" - integrity sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo= - caniuse-api@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" @@ -6993,7 +7077,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.30000989, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001109: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001109: version "1.0.30001113" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001113.tgz#22016ab55b5a8b04fa00ca342d9ee1b98df48065" integrity sha512-qMvjHiKH21zzM/VDZr6oosO6Ri3U0V2tC015jRXjOecwQCJtsU5zklTNTk31jQbIOP8gha0h1ccM/g0ECP+4BA== @@ -7034,7 +7118,7 @@ caseless@~0.12.0: resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@2.4.2, chalk@^2.0.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -7105,7 +7189,7 @@ check-types@^11.1.1: resolved "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f" integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== -chokidar@^2.0.4, chokidar@^2.1.8: +chokidar@^2.1.8: version "2.1.8" resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== @@ -7139,6 +7223,21 @@ chokidar@^3.2.2, chokidar@^3.3.0, chokidar@^3.3.1: optionalDependencies: fsevents "~2.1.2" +chokidar@^3.4.1: + version "3.4.2" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" + integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.4.0" + optionalDependencies: + fsevents "~2.1.2" + chownr@^1.0.1, chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -7234,7 +7333,17 @@ cli-spinners@^2.2.0: resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77" integrity sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ== -cli-table3@0.5.1, cli-table3@~0.5.1: +cli-table3@0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" + integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== + dependencies: + object-assign "^4.1.0" + string-width "^4.2.0" + optionalDependencies: + colors "^1.1.2" + +cli-table3@~0.5.1: version "0.5.1" resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== @@ -7499,7 +7608,7 @@ commander@^2.11.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3, comm resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^4.0.0, commander@^4.0.1, commander@^4.1.1: +commander@^4.0.0, commander@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== @@ -7865,14 +7974,6 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -corejs-upgrade-webpack-plugin@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/corejs-upgrade-webpack-plugin/-/corejs-upgrade-webpack-plugin-2.2.0.tgz#503293bf1fdcb104918eb40d0294e4776ad6923a" - integrity sha512-J0QMp9GNoiw91Kj/dkIQFZeiCXgXoja/Wlht1SPybxerBWh4NCmb0pOgCv61lrlQZETwvVVfAFAA3IqoEO9aqQ== - dependencies: - resolve-from "^5.0.0" - webpack "^4.38.0" - cors@^2.8.4, cors@^2.8.5: version "2.8.5" resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" @@ -7955,7 +8056,16 @@ cross-fetch@3.0.5, cross-fetch@^3.0.4, cross-fetch@^3.0.5: dependencies: node-fetch "2.6.0" -cross-spawn@6.0.5, cross-spawn@^6.0.0: +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@^6.0.0: version "6.0.5" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -7966,15 +8076,6 @@ cross-spawn@6.0.5, cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" -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.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -8041,7 +8142,7 @@ css-line-break@1.0.1: dependencies: base64-arraybuffer "^0.1.5" -css-loader@^3.0.0, css-loader@^3.5.3: +css-loader@^3.5.3: version "3.6.0" resolved "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== @@ -9053,12 +9154,14 @@ ee-first@1.1.1: resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -ejs@^2.7.4: - version "2.7.4" - resolved "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" - integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== +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" -electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.488: +electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.488: version "1.3.509" resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.509.tgz#830fcb89cd66dc2984d18d794973b99e3f00584c" integrity sha512-cN4lkjNRuTG8rtAqTOVgwpecEC2kbKA04PG6YijcKGHK/kD0xLjiqExcAOmLUwtXZRF8cBeam2I0VZcih919Ug== @@ -9158,6 +9261,15 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" +endent@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/endent/-/endent-2.0.1.tgz#fb18383a3f37ae3213a5d9f6c4a880d1061eb4c5" + integrity sha512-mADztvcC+vCk4XEZaCz6xIPO2NHQuprv5CAEjuVAu6aZwqAj7nVNlMyl1goPFYqCCpS2OJV9jwpumJLkotZrNw== + dependencies: + dedent "^0.7.0" + fast-json-parse "^1.0.3" + objectorarray "^1.0.4" + enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: version "4.1.1" resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" @@ -9167,6 +9279,15 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: memory-fs "^0.5.0" tapable "^1.0.0" +enhanced-resolve@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" + integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + enquirer@^2.3.5: version "2.3.5" resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.5.tgz#3ab2b838df0a9d8ab9e7dff235b0e8712ef92381" @@ -9347,16 +9468,16 @@ escape-html@^1.0.3, escape-html@~1.0.3: resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + escodegen@^1.14.1, escodegen@^1.6.1, escodegen@^1.9.1: version "1.14.3" resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" @@ -9962,6 +10083,11 @@ fast-glob@^3.0.3, fast-glob@^3.1.1: micromatch "^4.0.2" picomatch "^2.2.1" +fast-json-parse@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz#43e5c61ee4efa9265633046b770fb682a7577c4d" + integrity sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw== + fast-json-patch@^2.2.1: version "2.2.1" resolved "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-2.2.1.tgz#18150d36c9ab65c7209e7d4eb113f4f8eaabe6d9" @@ -10092,13 +10218,13 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" -file-loader@^4.2.0: - version "4.3.0" - resolved "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" - integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA== +file-loader@^6.0.0: + version "6.1.0" + resolved "https://registry.npmjs.org/file-loader/-/file-loader-6.1.0.tgz#65b9fcfb0ea7f65a234a1f10cdd7f1ab9a33f253" + integrity sha512-26qPdHyTsArQ6gU4P1HJbAbnFTyT2r0pG7czh1GFAd9TZbj0n94wWbupgixZH/ET/meqi2/5+F7DhW4OAXD+Lg== dependencies: - loader-utils "^1.2.3" - schema-utils "^2.5.0" + loader-utils "^2.0.0" + schema-utils "^2.7.1" file-saver@eligrey/FileSaver.js#1.3.8: version "1.3.8" @@ -10123,10 +10249,12 @@ filefy@0.1.10: resolved "https://registry.npmjs.org/filefy/-/filefy-0.1.10.tgz#174677c8e2fa5bc39a3af0ed6fb492f16b8fbf42" integrity sha512-VgoRVOOY1WkTpWH+KBy8zcU1G7uQTVsXqhWEgzryB9A5hg2aqCyZ6aQ/5PSzlqM5+6cnVrX6oYV0XqD3HZSnmQ== -filesize@3.6.1: - version "3.6.1" - resolved "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" - integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== +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" @@ -10163,7 +10291,7 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-cache-dir@^2.1.0: +find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== @@ -10172,7 +10300,7 @@ find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.0.0, find-cache-dir@^3.2.0: +find-cache-dir@^3.2.0, find-cache-dir@^3.3.1: version "3.3.1" resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== @@ -10186,13 +10314,6 @@ find-root@^1.1.0: resolved "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== -find-up@3.0.0, find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -10216,6 +10337,13 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + find-versions@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" @@ -10276,11 +10404,6 @@ fn-name@~3.0.0: resolved "https://registry.npmjs.org/fn-name/-/fn-name-3.0.0.tgz#0596707f635929634d791f452309ab41558e3c5c" integrity sha512-eNMNr5exLoavuAMhIUVsOKF79SWd/zG104ef6sxBTSw+cZc6BXdQXDvYcGvp0VbxVVSp1XDUNoz7mg1xMtSznA== -focus-lock@^0.6.6: - version "0.6.6" - resolved "https://registry.npmjs.org/focus-lock/-/focus-lock-0.6.6.tgz#98119a755a38cfdbeda0280eaa77e307eee850c7" - integrity sha512-Dx69IXGCq1qsUExWuG+5wkiMqVM/zGx/reXSJSLogECwp3x6KeNQZ+NAetgxEFpnC41rD8U3+jRCW68+LNzdtw== - follow-redirects@1.5.10: version "1.5.10" resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" @@ -10327,20 +10450,6 @@ 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@1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz#ce1d77190b44d81a761b10b6284a373795e41f0c" - integrity sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA== - dependencies: - babel-code-frame "^6.22.0" - chalk "^2.4.1" - chokidar "^2.0.4" - 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@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" @@ -10355,7 +10464,7 @@ fork-ts-checker-webpack-plugin@3.1.1: tapable "^1.0.0" worker-rpc "^0.1.0" -fork-ts-checker-webpack-plugin@^4.0.5: +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== @@ -10445,7 +10554,7 @@ fs-constants@^1.0.0: resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@8.1.0, fs-extra@^8.0.1, fs-extra@^8.1.0: +fs-extra@8.1.0, fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== @@ -10550,7 +10659,7 @@ functions-have-names@^1.2.0: resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91" integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA== -fuse.js@^3.4.6: +fuse.js@^3.6.1: version "3.6.1" resolved "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz#7de85fdd6e1b3377c23ce010892656385fd9b10c" integrity sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw== @@ -10769,6 +10878,13 @@ glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: dependencies: is-glob "^4.0.1" +glob-promise@^3.4.0: + version "3.4.0" + resolved "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz#b6b8f084504216f702dc2ce8c9bc9ac8866fdb20" + integrity sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw== + dependencies: + "@types/glob" "*" + glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" @@ -11309,11 +11425,6 @@ highlight.js@^10.1.1, highlight.js@~10.1.0: resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.1.2.tgz#c20db951ba1c22c055010648dfffd7b2a968e00c" integrity sha512-Q39v/Mn5mfBlMff9r+zzA+gWxRsCRKwEMvYTiisLr/XUiFI/4puWt0Ojdko3R3JCNWGdOWaA5g/Yxqa23kC5AA== -highlight.js@~9.13.0: - version "9.13.1" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz#054586d53a6863311168488a0f58d6c505ce641e" - integrity sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A== - highlight.js@~9.15.0, highlight.js@~9.15.1: version "9.15.10" resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz#7b18ed75c90348c045eef9ed08ca1319a2219ad2" @@ -11443,7 +11554,22 @@ html-to-react@^1.3.4: lodash.camelcase "^4.3.0" ramda "^0.26" -html-webpack-plugin@^4.0.0-beta.2, html-webpack-plugin@^4.3.0: +html-webpack-plugin@^4.2.1: + version "4.4.1" + resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.4.1.tgz#61ab85aa1a84ba181443345ebaead51abbb84149" + integrity sha512-nEtdEIsIGXdXGG7MjTTZlmhqhpHU9pJFc1OYxcP36c5/ZKP6b0BJMww2QTvJGQYA9aMxUnjDujpZdYcVOXiBCQ== + dependencies: + "@types/html-minifier-terser" "^5.0.0" + "@types/tapable" "^1.0.5" + "@types/webpack" "^4.41.8" + html-minifier-terser "^5.0.1" + loader-utils "^1.2.3" + lodash "^4.17.15" + pretty-error "^2.1.1" + tapable "^1.1.3" + util.promisify "1.0.0" + +html-webpack-plugin@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.3.0.tgz#53bf8f6d696c4637d5b656d3d9863d89ce8174fd" integrity sha512-C0fzKN8yQoVLTelcJxZfJCE+aAvQiY2VUf3UuKrR4a9k5UMWYOtpDLsaXwATbcVCnI05hUS7L9ULQHWLZhyi3w== @@ -11870,25 +11996,6 @@ inline-style-prefixer@^4.0.0: bowser "^1.7.3" css-in-js-utils "^2.0.0" -inquirer@6.5.0: - version "6.5.0" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42" - integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - inquirer@7.0.4: version "7.0.4" resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz#99af5bde47153abca23f5c7fc30db247f39da703" @@ -12155,7 +12262,7 @@ is-docker@^2.0.0: resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== -is-dom@^1.0.9: +is-dom@^1.0.9, is-dom@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/is-dom/-/is-dom-1.1.0.tgz#af1fced292742443bb59ca3f76ab5e80907b4e8a" integrity sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ== @@ -12207,7 +12314,7 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-function@^1.0.1, is-function@^1.0.2: +is-function@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== @@ -12627,6 +12734,16 @@ iterate-value@^1.0.0: es-get-iterator "^1.0.2" iterate-iterator "^1.0.1" +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.0: version "0.28.0" resolved "https://registry.npmjs.org/jenkins/-/jenkins-0.28.0.tgz#72d6fcc452145403b34f6d4ecbd877ee1ab77fca" @@ -13034,15 +13151,7 @@ jest-watcher@^26.3.0: jest-util "^26.3.0" string-length "^4.0.1" -jest-worker@^25.1.0: - version "25.1.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-25.1.0.tgz#75d038bad6fdf58eba0d2ec1835856c497e3907a" - integrity sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg== - dependencies: - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest-worker@^26.3.0: +jest-worker@^26.2.1, jest-worker@^26.3.0: version "26.3.0" resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz#7c8a97e4f4364b4f05ed8bca8ca0c24de091871f" integrity sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw== @@ -13801,7 +13910,7 @@ loader-utils@1.2.3: emojis-list "^2.0.0" json5 "^1.0.1" -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== @@ -13867,7 +13976,7 @@ lodash.clonedeep@^4.5.0: resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= -lodash.debounce@^4, lodash.debounce@^4.0.8: +lodash.debounce@^4: version "4.0.8" resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= @@ -13927,11 +14036,6 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" -lodash.throttle@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" - integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= - lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -13942,7 +14046,7 @@ lodash.without@^4.4.0: resolved "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.2.1: +lodash@^4.0.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.2.1: version "4.17.20" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== @@ -13954,6 +14058,13 @@ log-symbols@^1.0.2: dependencies: chalk "^1.0.0" +log-symbols@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + log-symbols@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" @@ -14003,6 +14114,14 @@ loglevel@^1.6.7, loglevel@^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== +loglevelnext@^1.0.1: + version "1.0.5" + resolved "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz#36fc4f5996d6640f539ff203ba819641680d75a2" + integrity sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A== + dependencies: + es6-symbol "^3.1.1" + object.assign "^4.1.0" + long@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" @@ -14056,14 +14175,6 @@ lowlight@^1.14.0: fault "^1.0.0" highlight.js "~10.1.0" -lowlight@~1.11.0: - version "1.11.0" - resolved "https://registry.npmjs.org/lowlight/-/lowlight-1.11.0.tgz#1304d83005126d4e8b1dc0f07981e9b689ec2efc" - integrity sha512-xrGGN6XLL7MbTMdPD6NfWPwY43SNkjf/d0mecSx/CW36fUZTjRHEq0/Cdug3TWKtRXLWi7iMl1eP0olYxj/a4A== - dependencies: - fault "^1.0.2" - highlight.js "~9.13.0" - lru-cache@^5.0.0, lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -14071,6 +14182,13 @@ lru-cache@^5.0.0, lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + lru-queue@0.1: version "0.1.0" resolved "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" @@ -14220,6 +14338,11 @@ markdown-to-jsx@^6.11.4: prop-types "^15.6.2" unquote "^1.1.0" +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.68.0: version "1.68.0" resolved "https://registry.npmjs.org/material-table/-/material-table-1.68.0.tgz#275c3d9a885c40ae4bc5a7461c00e877f92397b9" @@ -14520,16 +14643,6 @@ mini-create-react-context@^0.4.0: "@babel/runtime" "^7.5.5" tiny-warning "^1.0.3" -mini-css-extract-plugin@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.7.0.tgz#5ba8290fbb4179a43dd27cca444ba150bee743a0" - integrity sha512-RQIw6+7utTYn8DBGsf/LpRgZCJMpZt+kuawJ/fju0KiOL6nAaTBNmCJwS7HtwSCXfS47gCkmtBFS7HdsquhdxQ== - dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - 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" @@ -14621,6 +14734,14 @@ minizlib@^2.1.0: minipass "^3.0.0" yallist "^4.0.0" +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + mississippi@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -15060,7 +15181,7 @@ node-pre-gyp@^0.13.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.29, node-releases@^1.1.52, node-releases@^1.1.58: +node-releases@^1.1.52, node-releases@^1.1.58: version "1.1.60" resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== @@ -15439,6 +15560,11 @@ object.values@^1.1.0, object.values@^1.1.1: function-bind "^1.1.1" has "^1.0.3" +objectorarray@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.4.tgz#d69b2f0ff7dc2701903d308bb85882f4ddb49483" + integrity sha512-91k8bjcldstRz1bG6zJo8lWD7c6QXcB4nTDUqiEvIL1xAsLoZlOOZZG+nd6YPz+V7zY1580J4Xxh1vZtyv4i/w== + obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" @@ -15497,14 +15623,7 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -open@^6.3.0: - version "6.4.0" - resolved "https://registry.npmjs.org/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" - integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== - dependencies: - is-wsl "^1.1.0" - -open@^7.0.0, open@^7.0.2: +open@^7.0.2: version "7.0.3" resolved "https://registry.npmjs.org/open/-/open-7.0.3.tgz#db551a1af9c7ab4c7af664139930826138531c48" integrity sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA== @@ -15512,6 +15631,14 @@ open@^7.0.0, open@^7.0.2: is-docker "^2.0.0" is-wsl "^2.1.1" +open@^7.0.3: + version "7.2.1" + resolved "https://registry.npmjs.org/open/-/open-7.2.1.tgz#07b0ade11a43f2a8ce718480bdf3d7563a095195" + integrity sha512-xbYCJib4spUdmcs0g/2mK1nKo/jO2T7INClWd/beL7PFkXRWgr8B23ssDHX/USPn2M2IjDR5UdpYs6I67SnTSA== + 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" @@ -15619,6 +15746,11 @@ ospath@^1.2.2: resolved "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= +overlayscrollbars@^1.10.2: + version "1.13.0" + resolved "https://registry.npmjs.org/overlayscrollbars/-/overlayscrollbars-1.13.0.tgz#1edb436328133b94877b558f77966d5497ca36a7" + integrity sha512-p8oHrMeRAKxXDMPI/EBNITj/zTVHKNnAnM59Im+xnoZUlV07FyTg46wom2286jJlXGGfcPFG/ba5NUiCwWNd4w== + p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" @@ -15651,7 +15783,7 @@ p-finally@^2.0.0: resolved "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== -p-limit@3.0.2: +p-limit@3.0.2, p-limit@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== @@ -15665,7 +15797,7 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.2: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.2.2" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== @@ -16351,7 +16483,7 @@ pinkie@^2.0.0: resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -pirates@^4.0.1: +pirates@^4.0.0, pirates@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== @@ -16379,13 +16511,6 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -pkg-up@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" - pkg-up@3.1.0, pkg-up@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" @@ -16410,14 +16535,14 @@ pn@^1.1.0: resolved "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== -pnp-webpack-plugin@1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.5.0.tgz#62a1cd3068f46d564bb33c56eb250e4d586676eb" - integrity sha512-jd9olUr9D7do+RN8Wspzhpxhgp1n6Vd0NtQ4SFkmIACZoEL1nkyAdW9Ygrinjec0vgDcWjscFQQ1gDW8rsfKTg== +pnp-webpack-plugin@1.6.4: + version "1.6.4" + resolved "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== dependencies: - ts-pnp "^1.1.2" + ts-pnp "^1.1.6" -polished@^3.3.1, polished@^3.4.4: +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== @@ -16892,12 +17017,7 @@ prepend-http@^2.0.0: resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= -prettier@^1.16.4: - version "1.19.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== - -prettier@^2.0.5: +prettier@^2.0.5, prettier@~2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg== @@ -17328,14 +17448,6 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -raw-loader@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz#5e9d399a5a222cc0de18f42c3bc5e49677532b3f" - integrity sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA== - dependencies: - loader-utils "^1.1.0" - schema-utils "^2.0.1" - raw-loader@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.1.tgz#14e1f726a359b68437e183d5a5b7d33a3eba6933" @@ -17386,12 +17498,17 @@ react-beautiful-dnd@^13.0.0: redux "^4.0.4" use-memo-one "^1.1.1" -react-clientside-effect@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.2.tgz#6212fb0e07b204e714581dd51992603d1accc837" - integrity sha512-nRmoyxeok5PBO6ytPvSjKp9xwXg9xagoTK1mMjwnQxqM9Hd7MNPl+LS1bOSOe+CV2+4fnEquc7H/S8QD3q697A== +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: - "@babel/runtime" "^7.0.0" + "@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-copy-to-clipboard@5.0.1: version "5.0.1" @@ -17409,7 +17526,7 @@ react-debounce-input@^3.2.0: lodash.debounce "^4" prop-types "^15.7.2" -react-dev-utils@^10.2.1: +react-dev-utils@^10.0.0, react-dev-utils@^10.2.1: 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== @@ -17439,36 +17556,31 @@ react-dev-utils@^10.2.1: strip-ansi "6.0.0" text-table "0.2.0" -react-dev-utils@^9.0.0: - version "9.1.0" - resolved "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.1.0.tgz#3ad2bb8848a32319d760d0a84c56c14bdaae5e81" - integrity sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg== +react-docgen-typescript-loader@^3.7.2: + version "3.7.2" + resolved "https://registry.npmjs.org/react-docgen-typescript-loader/-/react-docgen-typescript-loader-3.7.2.tgz#45cb2305652c0602767242a8700ad1ebd66bbbbd" + integrity sha512-fNzUayyUGzSyoOl7E89VaPKJk9dpvdSgyXg81cUkwy0u+NBvkzQG3FC5WBIlXda0k/iaxS+PWi+OC+tUiGxzPA== dependencies: - "@babel/code-frame" "7.5.5" - address "1.1.2" - browserslist "4.7.0" - chalk "2.4.2" - cross-spawn "6.0.5" - detect-port-alt "1.1.6" - escape-string-regexp "1.0.5" - filesize "3.6.1" - find-up "3.0.0" - fork-ts-checker-webpack-plugin "1.5.0" - global-modules "2.0.0" - globby "8.0.2" - gzip-size "5.1.1" - immer "1.10.0" - inquirer "6.5.0" - is-root "2.1.0" - loader-utils "1.2.3" - open "^6.3.0" - pkg-up "2.0.0" - react-error-overlay "^6.0.3" - recursive-readdir "2.2.2" - shell-quote "1.7.2" - sockjs-client "1.4.0" - strip-ansi "5.2.0" - text-table "0.2.0" + "@webpack-contrib/schema-utils" "^1.0.0-beta.0" + loader-utils "^1.2.3" + react-docgen-typescript "^1.15.0" + +react-docgen-typescript-plugin@^0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-0.5.2.tgz#2b294d75ef3145c36303da82be5d447cb67dc0dc" + integrity sha512-NQfWyWLmzUnedkiN2nPDb6Nkm68ik6fqbC3UvgjqYSeZsbKijXUA4bmV6aU7qICOXdop9PevPdjEgJuAN0nNVQ== + dependencies: + debug "^4.1.1" + endent "^2.0.1" + micromatch "^4.0.2" + react-docgen-typescript "^1.20.1" + react-docgen-typescript-loader "^3.7.2" + tslib "^2.0.0" + +react-docgen-typescript@^1.15.0, react-docgen-typescript@^1.20.1: + version "1.20.4" + resolved "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-1.20.4.tgz#9a5655986077ccfc58c1a447f92c3d19f7a875bf" + integrity sha512-gE2SeseJd6+o981qr9VQJRbvFJ5LjLSKQiwhHsuLN4flt+lheKtG1jp2BPzrv2MKR5gmbLwpmNtK4wbLCPSZAw== react-docgen@^5.0.0: version "5.3.0" @@ -17507,7 +17619,7 @@ react-draggable@^4.0.3: classnames "^2.2.5" prop-types "^15.6.0" -react-error-overlay@^6.0.3, react-error-overlay@^6.0.7: +react-error-overlay@^6.0.7: version "6.0.7" resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz#1dcfb459ab671d53f660a991513cb2f0a0553108" integrity sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA== @@ -17522,18 +17634,6 @@ react-fast-compare@^3.1.1: resolved "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== -react-focus-lock@^2.1.0: - version "2.2.1" - resolved "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.2.1.tgz#1d12887416925dc53481914b7cedd39494a3b24a" - integrity sha512-47g0xYcCTZccdzKRGufepY8oZ3W1Qg+2hn6u9SHZ0zUB6uz/4K4xJe7yYFNZ1qT6m+2JDm82F6QgKeBTbjW4PQ== - dependencies: - "@babel/runtime" "^7.0.0" - focus-lock "^0.6.6" - prop-types "^15.6.2" - react-clientside-effect "^1.2.2" - use-callback-ref "^1.2.1" - use-sidecar "^1.0.1" - 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" @@ -17602,13 +17702,13 @@ react-inspector@^2.3.0: is-dom "^1.0.9" prop-types "^15.6.1" -react-inspector@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/react-inspector/-/react-inspector-4.0.1.tgz#0f888f78ff7daccbc7be5d452b20c96dc6d5fbb8" - integrity sha512-xSiM6CE79JBqSj8Fzd9dWBHv57tLTH7OM57GP3VrE5crzVF3D5Khce9w1Xcw75OAbvrA0Mi2vBneR1OajKmXFg== +react-inspector@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/react-inspector/-/react-inspector-5.0.1.tgz#8a30f3d488c4f40203624bbe24800f508ae05d3a" + integrity sha512-qRIENuAIcRaytrmg/TL5nN5igYZMzyQqIKlWA8zoYRDltULsZC1bWy2Ua5wYJuwEYnC3gK4FCjcIQnb+5OyLsQ== dependencies: - "@babel/runtime" "^7.6.3" - is-dom "^1.0.9" + "@babel/runtime" "^7.8.7" + is-dom "^1.1.0" prop-types "^15.6.1" react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1, react-is@^16.8.6, react-is@^16.9.0: @@ -17659,15 +17759,15 @@ react-motion@^0.5.2: prop-types "^15.5.8" raf "^3.1.0" -react-popper-tooltip@^2.8.3: - version "2.10.1" - resolved "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-2.10.1.tgz#e10875f31916297c694d64a677d6f8fa0a48b4d1" - integrity sha512-cib8bKiyYcrIlHo9zXx81G0XvARfL8Jt+xum709MFCgQa3HTqTi4au3iJ9tm7vi7WU7ngnqbpWkMinBOtwo+IQ== +react-popper-tooltip@^2.11.0: + version "2.11.1" + resolved "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-2.11.1.tgz#3c4bdfd8bc10d1c2b9a162e859bab8958f5b2644" + integrity sha512-04A2f24GhyyMicKvg/koIOQ5BzlrRbKiAgP6L+Pdj1MVX3yJ1NeZ8+EidndQsbejFT55oW1b++wg2Z8KlAyhfQ== dependencies: - "@babel/runtime" "^7.7.4" - react-popper "^1.3.6" + "@babel/runtime" "^7.9.2" + react-popper "^1.3.7" -react-popper@^1.3.6: +react-popper@^1.3.7: version "1.3.7" resolved "https://registry.npmjs.org/react-popper/-/react-popper-1.3.7.tgz#f6a3471362ef1f0d10a4963673789de1baca2324" integrity sha512-nmqYTx7QVjCm3WUZLeuOomna138R1luC4EqkW3hxJUrAe+3eNz3oFCLYdnPwILfn0mX1Ew2c3wctrjlUMYYUww== @@ -17777,7 +17877,7 @@ react-string-replace@^0.4.1: dependencies: lodash "^4.17.4" -react-syntax-highlighter@=12.2.1: +react-syntax-highlighter@=12.2.1, react-syntax-highlighter@^12.2.1: version "12.2.1" resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-12.2.1.tgz#14d78352da1c1c3f93c6698b70ec7c706b83493e" integrity sha512-CTsp0ZWijwKRYFg9xhkWD4DSpQqE4vb2NKVMdPAkomnILSmsNBHE0n5GuI5zB+PU3ySVvXvdt9jo+ViD9XibCA== @@ -17788,17 +17888,6 @@ react-syntax-highlighter@=12.2.1: prismjs "^1.8.4" refractor "^2.4.1" -react-syntax-highlighter@^11.0.2: - version "11.0.2" - resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-11.0.2.tgz#4e3f376e752b20d2f54e4c55652fd663149e4029" - integrity sha512-kqmpM2OH5OodInbEADKARwccwSQWBfZi0970l5Jhp4h39q9Q65C4frNcnd6uHE5pR00W8pOWj9HDRntj2G4Rww== - dependencies: - "@babel/runtime" "^7.3.1" - highlight.js "~9.13.0" - lowlight "~1.11.0" - prismjs "^1.8.4" - refractor "^2.4.1" - react-syntax-highlighter@^13.5.1: version "13.5.1" resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.1.tgz#f21737cf6d582474a0f18b06b52613f4349c0e64" @@ -17820,13 +17909,14 @@ react-test-renderer@^16.13.1: react-is "^16.8.6" scheduler "^0.19.1" -react-textarea-autosize@^7.1.0: - version "7.1.2" - resolved "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-7.1.2.tgz#70fdb333ef86bcca72717e25e623e90c336e2cda" - integrity sha512-uH3ORCsCa3C6LHxExExhF4jHoXYCQwE5oECmrRsunlspaDAbS4mGKNlWZqjLfInWtFQcf0o1n1jC/NGXFdUBCg== +react-textarea-autosize@^8.1.1: + version "8.2.0" + resolved "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.2.0.tgz#fae38653f5ec172a855fd5fffb39e466d56aebdb" + integrity sha512-grajUlVbkx6VdtSxCgzloUIphIZF5bKr21OYMceWPKkniy7H0mRAT/AXPrRtObAe+zUePnNlBwUc4ivVjUGIjw== dependencies: - "@babel/runtime" "^7.1.2" - prop-types "^15.6.0" + "@babel/runtime" "^7.10.2" + use-composed-ref "^1.0.0" + use-latest "^1.0.0" react-transition-group@^4.0.0, react-transition-group@^4.3.0: version "4.3.0" @@ -17897,7 +17987,7 @@ react-wait@^0.3.0: resolved "https://registry.npmjs.org/react-wait/-/react-wait-0.3.0.tgz#0cdd4d919012451a5bc3ab0a16d00c6fd9a8c10b" integrity sha512-kB5x/kMKWcn0uVr9gBdNz21/oGbQwEQnF3P9p6E9yLfJ9DRcKS0fagbgYMFI0YFOoyKDj+2q6Rwax0kTYJF37g== -react@^16.0.0, react@^16.12.0, react@^16.13.1, react@^16.8.3: +react@^16.0.0, react@^16.12.0, react@^16.13.1, react@^16.8.3, react@^16.9.17: version "16.13.1" resolved "https://registry.npmjs.org/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== @@ -17906,6 +17996,13 @@ react@^16.0.0, react@^16.12.0, react@^16.13.1, react@^16.8.3: 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@^1.0.1: version "1.0.5" resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz#87e43eba50098ba5a32d0ceb583ab8e43b961c16" @@ -18166,7 +18263,7 @@ regenerator-runtime@^0.11.0: resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.5: +regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.5: version "0.13.5" resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== @@ -18544,7 +18641,7 @@ rifm@^0.7.0: dependencies: "@babel/runtime" "^7.3.1" -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -18558,7 +18655,7 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@^3.0.0: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -18795,7 +18892,7 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.0.1, schema-utils@^2.5.0, schema-utils@^2.6.4, schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0: +schema-utils@^2.6.5, schema-utils@^2.6.6, 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== @@ -18804,6 +18901,15 @@ schema-utils@^2.0.1, schema-utils@^2.5.0, schema-utils@^2.6.4, schema-utils@^2.6 ajv "^6.12.2" ajv-keywords "^3.4.1" +schema-utils@^2.7.1: + version "2.7.1" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + screenfull@^5.0.0: version "5.0.2" resolved "https://registry.npmjs.org/screenfull/-/screenfull-5.0.2.tgz#b9acdcf1ec676a948674df5cd0ff66b902b0bed7" @@ -18902,6 +19008,13 @@ 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== + 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" @@ -19015,11 +19128,6 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" -shallow-equal@^1.1.0: - version "1.2.1" - resolved "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" - integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== - shallowequal@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" @@ -19109,26 +19217,6 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" -simplebar-react@^1.0.0-alpha.6: - version "1.2.3" - resolved "https://registry.npmjs.org/simplebar-react/-/simplebar-react-1.2.3.tgz#bd81fa9827628470e9470d06caef6ece15e1c882" - integrity sha512-1EOWJzFC7eqHUp1igD1/tb8GBv5aPQA5ZMvpeDnVkpNJ3jAuvmrL2kir3HuijlxhG7njvw9ssxjjBa89E5DrJg== - dependencies: - prop-types "^15.6.1" - simplebar "^4.2.3" - -simplebar@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/simplebar/-/simplebar-4.2.3.tgz#dac40aced299c17928329eab3d5e6e795fafc10c" - integrity sha512-9no0pK7/1y+8/oTF3sy/+kx0PjQ3uk4cYwld5F1CJGk2gx+prRyUq8GRfvcVLq5niYWSozZdX73a2wIr1o9l/g== - dependencies: - can-use-dom "^0.1.0" - core-js "^3.0.1" - lodash.debounce "^4.0.8" - lodash.memoize "^4.1.2" - lodash.throttle "^4.1.1" - resize-observer-polyfill "^1.5.1" - sisteransi@^1.0.4: version "1.0.5" resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -19288,7 +19376,7 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: source-map-url "^0.4.0" urix "^0.1.0" -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: 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== @@ -19474,12 +19562,11 @@ ssri@^6.0.0, ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -ssri@^7.0.0: - version "7.1.0" - resolved "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" - integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g== +ssri@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" + integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== dependencies: - figgy-pudding "^3.5.1" minipass "^3.1.1" stable@^0.1.8: @@ -19594,10 +19681,10 @@ store2@^2.7.1: resolved "https://registry.npmjs.org/store2/-/store2-2.10.0.tgz#46b82bb91878daf1b0d56dec2f1d41e54d5103cf" integrity sha512-tWEpK0snS2RPUq1i3R6OahfJNjWCQYNxq0+by1amCSuw0mXtymJpzmZIeYpA1UAa+7B0grCpNYIbDcd7AgTbFg== -storybook-dark-mode@^0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/storybook-dark-mode/-/storybook-dark-mode-0.6.1.tgz#0527567ac5853c49f6f7a6f68f792fe9322c5a5a" - integrity sha512-E8LIHnVfFhOsPqBc2fLshVBnspziYMXHdwQc/qAjpf4h5ewzrDzeqy4QfJioE+jDoyyZXEtIMugzb0wIaK10Uw== +storybook-dark-mode@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/storybook-dark-mode/-/storybook-dark-mode-1.0.2.tgz#963007e72b628e0efe29bdc5ee8449513bc056b8" + integrity sha512-HBeXTUzYaRgdGJ6YbmcJ3RXw47xp2b5kegZwtcqnSvRblNUZlAKSKsD6UQTWA30hPJ+u3O/5OE5bXk8+H4Zdqg== dependencies: fast-deep-equal "^3.0.0" memoizerific "^1.11.3" @@ -19881,7 +19968,7 @@ style-inject@^0.3.0: resolved "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" integrity sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw== -style-loader@^1.0.0, style-loader@^1.2.1: +style-loader@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz#c5cbbfbf1170d076cfdd86e0109c5bba114baa1a" integrity sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg== @@ -20010,7 +20097,7 @@ supports-hyperlinks@^2.0.0: has-flag "^4.0.0" supports-color "^7.0.0" -svg-parser@^2.0.0, svg-parser@^2.0.2: +svg-parser@^2.0.2: version "2.0.4" resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== @@ -20210,6 +20297,18 @@ tar@^6.0.1: mkdirp "^1.0.3" yallist "^4.0.0" +tar@^6.0.2: + version "6.0.5" + resolved "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" + integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + tarn@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/tarn/-/tarn-3.0.0.tgz#a4082405216c0cce182b8b4cb2639c52c1e870d4" @@ -20222,20 +20321,6 @@ tdigest@^0.1.1: dependencies: bintrees "1.0.1" -telejson@^3.2.0: - version "3.3.0" - resolved "https://registry.npmjs.org/telejson/-/telejson-3.3.0.tgz#6d814f3c0d254d5c4770085aad063e266b56ad03" - integrity sha512-er08AylQ+LEbDLp1GRezORZu5wKOHaBczF6oYJtgC3Idv10qZ8A3p6ffT+J5BzDKkV9MqBvu8HAKiIIOp6KJ2w== - dependencies: - "@types/is-function" "^1.0.0" - global "^4.4.0" - is-function "^1.0.1" - is-regex "^1.0.4" - is-symbol "^1.0.3" - isobject "^4.0.0" - lodash "^4.17.15" - memoizerific "^1.11.3" - telejson@^5.0.2: version "5.0.2" resolved "https://registry.npmjs.org/telejson/-/telejson-5.0.2.tgz#ed1e64be250cc1c757a53c19e1740b49832b3d51" @@ -20295,22 +20380,22 @@ terser-webpack-plugin@^1.4.3: webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser-webpack-plugin@^2.1.2: - version "2.3.5" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz#5ad971acce5c517440ba873ea4f09687de2f4a81" - integrity sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w== +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== dependencies: - cacache "^13.0.1" - find-cache-dir "^3.2.0" - jest-worker "^25.1.0" - p-limit "^2.2.2" - schema-utils "^2.6.4" - serialize-javascript "^2.1.2" + cacache "^15.0.5" + find-cache-dir "^3.3.1" + jest-worker "^26.2.1" + p-limit "^3.0.2" + schema-utils "^2.6.6" + serialize-javascript "^4.0.0" source-map "^0.6.1" - terser "^4.4.3" + terser "^4.8.0" webpack-sources "^1.4.3" -terser@^4.1.2, terser@^4.4.3, terser@^4.6.3: +terser@^4.1.2, terser@^4.6.3: version "4.6.7" resolved "https://registry.npmjs.org/terser/-/terser-4.6.7.tgz#478d7f9394ec1907f0e488c5f6a6a9a2bad55e72" integrity sha512-fmr7M1f7DBly5cX2+rFDvmGBAaaZyPrHYK4mMdHEDAdNTqXSZgSOfqsfGq2HqPGT/1V0foZZuCZFx8CHKgAk3g== @@ -20319,6 +20404,15 @@ terser@^4.1.2, terser@^4.4.3, terser@^4.6.3: source-map "~0.6.1" source-map-support "~0.5.12" +terser@^4.8.0: + version "4.8.0" + resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -20464,6 +20558,11 @@ tiny-warning@^1.0.0, tiny-warning@^1.0.2, tiny-warning@^1.0.3: 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= + tmp@^0.0.33: version "0.0.33" resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -20653,7 +20752,7 @@ tryer@^1.0.1: resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== -ts-dedent@^1.1.0, ts-dedent@^1.1.1: +ts-dedent@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/ts-dedent/-/ts-dedent-1.1.1.tgz#68fad040d7dbd53a90f545b450702340e17d18f3" integrity sha512-UGTRZu1evMw4uTPyYF66/KFd22XiU+jMaIuHrkIHQ2GivAXVlLV0v/vHrpOuTRf9BmpNHi/SO7Vd0rLu0y57jg== @@ -20663,6 +20762,11 @@ ts-easing@^0.2.0: resolved "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz#c8a8a35025105566588d87dbda05dd7fbfa5a4ec" integrity sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ== +ts-essentials@^2.0.3: + version "2.0.12" + resolved "https://registry.npmjs.org/ts-essentials/-/ts-essentials-2.0.12.tgz#c9303f3d74f75fa7528c3d49b80e089ab09d8745" + integrity sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w== + ts-interface-checker@^0.1.9: version "0.1.10" resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.10.tgz#b68a49e37e90a05797e590f08494dd528bf383cf" @@ -20713,10 +20817,10 @@ ts-node@^8.6.2: source-map-support "^0.5.17" yn "3.1.1" -ts-pnp@^1.1.2: - version "1.1.6" - resolved "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.6.tgz#389a24396d425a0d3162e96d2b4638900fdc289a" - integrity sha512-CrG5GqAAzMT7144Cl+UIFP7mz/iIhiy+xQ6GGcnjTezhALT02uPMRw7tgDSESgB5MsfKt55+GPWw4ir1kVtMIQ== +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== tsconfig-paths@^3.9.0: version "3.9.0" @@ -21106,16 +21210,7 @@ urix@^0.1.0: resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-loader@^2.0.1: - version "2.3.0" - resolved "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b" - integrity sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog== - dependencies: - loader-utils "^1.2.3" - mime "^2.4.4" - schema-utils "^2.5.0" - -url-loader@^4.1.0: +url-loader@^4.0.0, url-loader@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/url-loader/-/url-loader-4.1.0.tgz#c7d6b0d6b0fccd51ab3ffc58a78d32b8d89a7be2" integrity sha512-IzgAAIC8wRrg6NYkFIJY09vtktQcsvU8V6HhtQj9PTefbYImzLB1hufqo4m+RyM5N3mLx5BqJKccgxJS+W3kqw== @@ -21152,24 +21247,30 @@ url@^0.11.0, url@~0.11.0: punycode "1.3.2" querystring "0.2.0" -use-callback-ref@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.2.1.tgz#898759ccb9e14be6c7a860abafa3ffbd826c89bb" - integrity sha512-C3nvxh0ZpaOxs9RCnWwAJ+7bJPwQI8LHF71LzbQ3BvzH5XkdtlkMadqElGevg5bYBDFip4sAnD4m06zAKebg1w== +use-composed-ref@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.0.0.tgz#bb13e8f4a0b873632cde4940abeb88b92d03023a" + integrity sha512-RVqY3NFNjZa0xrmK3bIMWNmQ01QjKPDc7DeWR3xa/N8aliVppuutOE5bZzPkQfvL+5NRWMMp0DJ99Trd974FIw== + dependencies: + ts-essentials "^2.0.3" + +use-isomorphic-layout-effect@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.0.0.tgz#f56b4ed633e1c21cd9fc76fe249002a1c28989fb" + integrity sha512-JMwJ7Vd86NwAt1jH7q+OIozZSIxA4ND0fx6AsOe2q1H8ooBUp5aN6DvVCqZiIaYU6JaMRJGyR0FO7EBCIsb/Rg== + +use-latest@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/use-latest/-/use-latest-1.1.0.tgz#7bf9684555869c3f5f37e10d0884c8accf4d3aa6" + integrity sha512-gF04d0ZMV3AMB8Q7HtfkAWe+oq1tFXP6dZKwBHQF5nVXtGsh2oAYeeqma5ZzxtlpOcW8Ro/tLcfmEodjDeqtuw== + dependencies: + use-isomorphic-layout-effect "^1.0.0" use-memo-one@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.1.tgz#39e6f08fe27e422a7d7b234b5f9056af313bd22c" integrity sha512-oFfsyun+bP7RX8X2AskHNTxu+R3QdE/RC5IefMbqptmACAA/gfol1KDD5KRzPsGMa62sWxGZw+Ui43u6x4ddoQ== -use-sidecar@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.0.2.tgz#e72f582a75842f7de4ef8becd6235a4720ad8af6" - integrity sha512-287RZny6m5KNMTb/Kq9gmjafi7lQL0YHO1lYolU6+tY1h9+Z3uCtkJJ3OSOq3INwYf2hBryCcDh4520AhJibMA== - dependencies: - detect-node "^2.0.4" - tslib "^1.9.3" - use@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" @@ -21410,6 +21511,13 @@ warning@^4.0.2, warning@^4.0.3: dependencies: loose-envify "^1.0.0" +watchpack-chokidar2@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" + integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== + dependencies: + chokidar "^2.1.8" + watchpack@^1.6.1: version "1.6.1" resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2" @@ -21419,6 +21527,17 @@ watchpack@^1.6.1: graceful-fs "^4.1.2" neo-async "^2.5.0" +watchpack@^1.7.4: + version "1.7.4" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" + integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.0" + wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" @@ -21520,6 +21639,16 @@ webpack-hot-middleware@^2.25.0: querystring "^0.2.0" strip-ansi "^3.0.0" +webpack-log@^1.1.2: + version "1.2.0" + resolved "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz#a4b34cda6b22b518dbb0ab32e567962d5c72a43d" + integrity sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA== + dependencies: + chalk "^2.1.0" + log-symbols "^2.1.0" + loglevelnext "^1.0.1" + uuid "^3.1.0" + webpack-log@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" @@ -21541,14 +21670,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-virtual-modules@^0.2.0: - version "0.2.1" - resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.2.1.tgz#8ab73d4df0fd37ed27bb8d823bc60ea7266c8bf7" - integrity sha512-0PWBlxyt4uGDofooIEanWhhyBOHdd+lr7QpYNDLC7/yc5lqJT8zlc04MTIBnKj+c2BlQNNuwE5er/Tg4wowHzA== +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" + integrity sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA== dependencies: debug "^3.0.0" -webpack@^4.33.0, webpack@^4.38.0, webpack@^4.41.6: +webpack@^4.41.6: version "4.43.0" resolved "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== @@ -21577,6 +21706,35 @@ webpack@^4.33.0, webpack@^4.38.0, webpack@^4.41.6: watchpack "^1.6.1" webpack-sources "^1.4.1" +webpack@^4.43.0: + version "4.44.1" + resolved "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz#17e69fff9f321b8f117d1fda714edfc0b939cc21" + integrity sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.3.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + 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" From 6fa721eb977fd4d15aff6d8729724266a40dd8dd Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 6 Sep 2020 12:06:50 +0200 Subject: [PATCH 428/656] cli: add --build option to backend:image-build --- packages/backend/package.json | 2 +- packages/cli/src/commands/backend/buildImage.ts | 1 + packages/cli/src/commands/index.ts | 2 +- packages/cli/src/lib/packager/index.ts | 12 ++++++++++++ .../default-app/packages/backend/package.json.hbs | 2 +- 5 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/backend/package.json b/packages/backend/package.json index f9bf855371..d944ac6535 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -10,7 +10,7 @@ }, "scripts": { "build": "backstage-cli backend:build", - "build-image": "backstage-cli backend:build-image --tag example-backend", + "build-image": "backstage-cli backend:build-image --build --tag example-backend", "start": "backstage-cli backend:dev", "lint": "backstage-cli lint", "test": "backstage-cli test", diff --git a/packages/cli/src/commands/backend/buildImage.ts b/packages/cli/src/commands/backend/buildImage.ts index 14b62d2894..2be04dfa76 100644 --- a/packages/cli/src/commands/backend/buildImage.ts +++ b/packages/cli/src/commands/backend/buildImage.ts @@ -32,6 +32,7 @@ export default async (cmd: Command) => { const pkgPath = paths.resolveTarget(PKG_PATH); const pkg = await fs.readJson(pkgPath); const tempDistWorkspace = await createDistWorkspace([pkg.name], { + buildDependencies: Boolean(cmd.build), files: [ 'package.json', 'yarn.lock', diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index e8b7fccfee..4e031cdbc1 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -41,7 +41,7 @@ export function registerCommands(program: CommanderStatic) { .helpOption(', --backstage-cli-help') // Let docker handle --help .option('--build', 'Build packages before packing them into the image') .description( - 'Build a docker , all extra options are forwarded to docker build', + 'Bundles the package into a docker image. All extra args are forwarded to docker image build', ) .action(lazy(() => import('./backend/buildImage').then(m => m.default))); diff --git a/packages/cli/src/lib/packager/index.ts b/packages/cli/src/lib/packager/index.ts index fda85dd68a..5584e1fc21 100644 --- a/packages/cli/src/lib/packager/index.ts +++ b/packages/cli/src/lib/packager/index.ts @@ -48,6 +48,11 @@ type Options = { * Defaults to ['yarn.lock', 'package.json']. */ files?: FileEntry[]; + + /** + * If set to true, the target packages are built before they are packaged into the workspace. + */ + buildDependencies?: boolean; }; /** @@ -68,6 +73,13 @@ export async function createDistWorkspace( const targets = await findTargetPackages(packageNames); + if (options.buildDependencies) { + const scopeArgs = targets.flatMap(target => ['--scope', target.name]); + await run('yarn', ['lerna', 'run', ...scopeArgs, 'build'], { + cwd: paths.targetRoot, + }); + } + await moveToDistWorkspace(targetDir, targets); const files: FileEntry[] = options.files ?? ['yarn.lock', 'package.json']; diff --git a/packages/create-app/templates/default-app/packages/backend/package.json.hbs b/packages/create-app/templates/default-app/packages/backend/package.json.hbs index 8fc1e3bbe1..044ee1560a 100644 --- a/packages/create-app/templates/default-app/packages/backend/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/backend/package.json.hbs @@ -9,7 +9,7 @@ }, "scripts": { "build": "backstage-cli backend:build", - "build-image": "backstage-cli backend:build-image --tag example-backend", + "build-image": "backstage-cli backend:build-image --build --tag example-backend", "start": "backstage-cli backend:dev", "lint": "backstage-cli lint", "test": "backstage-cli test", From f8a871979e367855f58246914b70d1778e85dc15 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 6 Sep 2020 12:32:44 +0200 Subject: [PATCH 429/656] cli: copy all app-config flavors into backend image --- .../cli/src/commands/backend/buildImage.ts | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/commands/backend/buildImage.ts b/packages/cli/src/commands/backend/buildImage.ts index 2be04dfa76..36d4ef7129 100644 --- a/packages/cli/src/commands/backend/buildImage.ts +++ b/packages/cli/src/commands/backend/buildImage.ts @@ -15,6 +15,7 @@ */ import fs from 'fs-extra'; +import { join as joinPath, relative as relativePath } from 'path'; import { createDistWorkspace } from '../../lib/packager'; import { paths } from '../../lib/paths'; import { run } from '../../lib/run'; @@ -31,12 +32,13 @@ export default async (cmd: Command) => { const pkgPath = paths.resolveTarget(PKG_PATH); const pkg = await fs.readJson(pkgPath); + const appConfigs = await findAppConfigs(); const tempDistWorkspace = await createDistWorkspace([pkg.name], { buildDependencies: Boolean(cmd.build), files: [ 'package.json', 'yarn.lock', - 'app-config.yaml', + ...appConfigs, { src: paths.resolveTarget('Dockerfile'), dest: 'Dockerfile' }, ], }); @@ -49,3 +51,28 @@ export default async (cmd: Command) => { await fs.remove(tempDistWorkspace); }; + +/** + * Find all config files to copy into the image + */ +async function findAppConfigs(): Promise { + const files = []; + + for (const name of await fs.readdir(paths.targetRoot)) { + if (name.startsWith('app-config.') && name.endsWith('.yaml')) { + files.push(name); + } + } + + if (paths.targetRoot !== paths.targetDir) { + const dirPath = relativePath(paths.targetRoot, paths.targetDir); + + for (const name of await fs.readdir(paths.targetDir)) { + if (name.startsWith('app-config.') && name.endsWith('.yaml')) { + files.push(joinPath(dirPath, name)); + } + } + } + + return files; +} From b104ebce53e63d08209d72e814d44289b9c1dedc Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 6 Sep 2020 12:39:09 +0200 Subject: [PATCH 430/656] app-config: split cors and urls out to separate development config --- app-config.development.yaml | 11 +++++++++++ app-config.yaml | 6 +----- .../templates/default-app/app-config.development.yaml | 11 +++++++++++ .../templates/default-app/app-config.yaml.hbs | 6 +----- 4 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 app-config.development.yaml create mode 100644 packages/create-app/templates/default-app/app-config.development.yaml diff --git a/app-config.development.yaml b/app-config.development.yaml new file mode 100644 index 0000000000..da274ba1a8 --- /dev/null +++ b/app-config.development.yaml @@ -0,0 +1,11 @@ +app: + baseUrl: http://localhost:3000 + +backend: + baseUrl: http://localhost:7000 + listen: + port: 7000 + cors: + origin: http://localhost:3000 + methods: [GET, POST, PUT, DELETE] + credentials: true diff --git a/app-config.yaml b/app-config.yaml index 2620f6b9b7..da2f5f2d11 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -1,15 +1,11 @@ app: title: Backstage Example App - baseUrl: http://localhost:3000 + baseUrl: http://localhost:7000 backend: baseUrl: http://localhost:7000 listen: port: 7000 - cors: - origin: http://localhost:3000 - methods: [GET, POST, PUT, DELETE] - credentials: true database: client: sqlite3 connection: ':memory:' diff --git a/packages/create-app/templates/default-app/app-config.development.yaml b/packages/create-app/templates/default-app/app-config.development.yaml new file mode 100644 index 0000000000..da274ba1a8 --- /dev/null +++ b/packages/create-app/templates/default-app/app-config.development.yaml @@ -0,0 +1,11 @@ +app: + baseUrl: http://localhost:3000 + +backend: + baseUrl: http://localhost:7000 + listen: + port: 7000 + cors: + origin: http://localhost:3000 + methods: [GET, POST, PUT, DELETE] + credentials: true diff --git a/packages/create-app/templates/default-app/app-config.yaml.hbs b/packages/create-app/templates/default-app/app-config.yaml.hbs index dea37814c1..f774ba8174 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -1,6 +1,6 @@ app: title: Scaffolded Backstage App - baseUrl: http://localhost:3000 + baseUrl: http://localhost:7000 organization: name: Acme Corporation @@ -9,10 +9,6 @@ backend: baseUrl: http://localhost:7000 listen: port: 7000 - cors: - origin: http://localhost:3000 - methods: [GET, POST, PUT, DELETE] - credentials: true {{#if dbTypeSqlite}} database: client: sqlite3 From 10216391ba5b96ddf4d5e5e669bdaff3b4006b6c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 6 Sep 2020 14:01:24 +0200 Subject: [PATCH 431/656] switch default docker-build command to build backend --- Dockerfile | 7 ++++++- docker-compose.yaml | 8 ++------ docs/getting-started/deployment-other.md | 13 ++++++------- docs/overview/architecture-overview.md | 12 +++++------- package.json | 4 ++-- 5 files changed, 21 insertions(+), 23 deletions(-) diff --git a/Dockerfile b/Dockerfile index fa89debcee..174548a90c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,14 @@ FROM nginx:mainline +# The purpose of this image is to serve the frontend app content separately. +# By default the Backstage backend uses the app-backend plugin to serve the +# app from the backend itself, but it may be desirable to move the frontend +# content serving to a separate deployment, in which case this image can be used. + # This dockerfile requires the app to be built on the host first, as it # simply copies in the build output into the image. -# The safest way to build this image is to use `yarn docker-build` +# The safest way to build this image is to use `yarn docker-build:app` RUN apt-get update && apt-get -y install jq && rm -rf /var/lib/apt/lists/* diff --git a/docker-compose.yaml b/docker-compose.yaml index d32928b4e3..a9922cfb6c 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,14 +1,10 @@ # Make sure that before you # run the docker-compose that you have run -# $ yarn docker-build:all +# $ yarn docker-build version: '3' services: - frontend: - image: 'spotify/backstage:latest' - ports: - - '3000:80' - backend: + backstage: image: 'example-backend:latest' ports: - '7000:7000' diff --git a/docs/getting-started/deployment-other.md b/docs/getting-started/deployment-other.md index 3b7796f8fe..d3fb9d932b 100644 --- a/docs/getting-started/deployment-other.md +++ b/docs/getting-started/deployment-other.md @@ -10,21 +10,20 @@ title: Other Run the following commands if you have Docker environment ```bash +$ yarn install $ yarn docker-build -$ docker run --rm -it -p 80:80 spotify/backstage +$ docker run --rm -it -p 7000:7000 -e NODE_ENV=development example-backend:latest ``` Then open http://localhost/ on your browser. ### Running with `docker-compose` -Run the following commands if you have docker and docker-compose for a full -example, with the example backend also deployed. +There is also a `docker-compose.yaml` that you can use to replace the previous +`docker run` command: ```bash -$ yarn docker-build:all +$ yarn install +$ yarn docker-build $ docker-compose up ``` - -Then open http://localhost:3000 on your browser to see the example app with an -example backend. diff --git a/docs/overview/architecture-overview.md b/docs/overview/architecture-overview.md index 9f1d6d3291..55a1aeec04 100644 --- a/docs/overview/architecture-overview.md +++ b/docs/overview/architecture-overview.md @@ -171,21 +171,19 @@ The frontend container can be built with a provided command. ```bash yarn install yarn tsc -yarn build -yarn run docker-build +yarn run docker-build:app ``` Running this will simply generate a Docker container containing the contents of -the UIs `dist` directory. The resulting container will be about 50MB in size. +the UIs `dist` directory. -The backend container can be built by running the following command in the -`packages/backend` directory. +The backend container can be built by running the following command: ```bash -yarn run build-image +yarn run docker-build ``` -This will create a ~500MB container called `example-backend`. +This will create a container called `example-backend`. The lighthouse-audit-service container is already publicly available in Docker Hub and can be downloaded and ran with diff --git a/package.json b/package.json index bf2dfc3246..93f8f694a6 100644 --- a/package.json +++ b/package.json @@ -18,8 +18,8 @@ "lint:all": "lerna run lint --", "lint:type-deps": "node scripts/check-type-dependencies.js", "docgen": "lerna run docgen", - "docker-build": "yarn workspace example-app build && docker build . -t spotify/backstage", - "docker-build:all": "yarn tsc && yarn build && yarn docker-build && yarn workspace example-backend build-image", + "docker-build:app": "yarn workspace example-app build && docker build . -t spotify/backstage", + "docker-build": "yarn tsc && yarn workspace example-backend build-image", "create-plugin": "backstage-cli create-plugin", "remove-plugin": "backstage-cli remove-plugin", "release": "if [ \"$(git symbolic-ref --short HEAD)\" = master ]; then echo \"don't try to release master\"; exit 1; else lerna version --no-push --force-publish; fi", From 1193a0f57b18075a8d0982463ffef4fe98974d6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Sun, 6 Sep 2020 23:11:40 +0200 Subject: [PATCH 432/656] Sort Storybook stories (#2300) --- packages/storybook/.storybook/preview.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/storybook/.storybook/preview.js b/packages/storybook/.storybook/preview.js index bb8e040c7b..f92e07b045 100644 --- a/packages/storybook/.storybook/preview.js +++ b/packages/storybook/.storybook/preview.js @@ -24,3 +24,22 @@ addParameters({ }, layout: 'fullscreen', }); + +export const parameters = { + options: { + storySort: { + order: [ + 'Example Plugin', + 'Header', + 'Sidebar', + 'Tabs', + 'Information Card', + 'Tabbed Card', + 'Table', + 'Status', + 'Trendline', + 'Progress Card', + ], + }, + }, +}; From 2f25f54a4e9e113aa8389a455436a23b4cd61009 Mon Sep 17 00:00:00 2001 From: Rajiv Ranjan Singh Date: Mon, 7 Sep 2020 12:08:31 +0530 Subject: [PATCH 433/656] renamed the components --- .../{CircleProgress.tsx => CircleGauge.tsx} | 2 +- .../ProgressBars/{ProgressCard.tsx => GaugeCard.tsx} | 4 ++-- .../ProgressBars/HorizontalProgress.stories.tsx | 12 ++++++------ .../{HorizontalProgress.tsx => LinearGauge.tsx} | 4 ++-- .../components/ProgressBars/ProgressCard.stories.tsx | 2 +- packages/core/src/components/ProgressBars/index.ts | 6 +++--- 6 files changed, 15 insertions(+), 15 deletions(-) rename packages/core/src/components/ProgressBars/{CircleProgress.tsx => CircleGauge.tsx} (98%) rename packages/core/src/components/ProgressBars/{ProgressCard.tsx => GaugeCard.tsx} (93%) rename packages/core/src/components/ProgressBars/{HorizontalProgress.tsx => LinearGauge.tsx} (92%) diff --git a/packages/core/src/components/ProgressBars/CircleProgress.tsx b/packages/core/src/components/ProgressBars/CircleGauge.tsx similarity index 98% rename from packages/core/src/components/ProgressBars/CircleProgress.tsx rename to packages/core/src/components/ProgressBars/CircleGauge.tsx index 79a451b14e..eae65bbf57 100644 --- a/packages/core/src/components/ProgressBars/CircleProgress.tsx +++ b/packages/core/src/components/ProgressBars/CircleGauge.tsx @@ -77,7 +77,7 @@ export function getProgressColor( return palette.status.ok; } -export const CircleProgress: FC = props => { +export const CircleGauge: FC = props => { const classes = useStyles(props); const theme = useTheme(); const { value, fractional, inverse, unit, max } = { diff --git a/packages/core/src/components/ProgressBars/ProgressCard.tsx b/packages/core/src/components/ProgressBars/GaugeCard.tsx similarity index 93% rename from packages/core/src/components/ProgressBars/ProgressCard.tsx rename to packages/core/src/components/ProgressBars/GaugeCard.tsx index eef6312600..c9c623be40 100644 --- a/packages/core/src/components/ProgressBars/ProgressCard.tsx +++ b/packages/core/src/components/ProgressBars/GaugeCard.tsx @@ -18,7 +18,7 @@ import React, { FC } from 'react'; import { makeStyles } from '@material-ui/core'; import { InfoCard } from '../../layout/InfoCard'; import { BottomLinkProps } from '../../layout/BottomLink'; -import { CircleProgress } from './CircleProgress'; +import { CircleProgress } from './CircleGauge'; type Props = { title: string; @@ -36,7 +36,7 @@ const useStyles = makeStyles({ }, }); -export const ProgressCard: FC = props => { +export const GaugeCard: FC = props => { const classes = useStyles(props); const { title, subheader, progress, deepLink, variant } = props; diff --git a/packages/core/src/components/ProgressBars/HorizontalProgress.stories.tsx b/packages/core/src/components/ProgressBars/HorizontalProgress.stories.tsx index 6e8f4ed7fd..c4492986b6 100644 --- a/packages/core/src/components/ProgressBars/HorizontalProgress.stories.tsx +++ b/packages/core/src/components/ProgressBars/HorizontalProgress.stories.tsx @@ -15,29 +15,29 @@ */ import React from 'react'; -import { HorizontalProgress } from './HorizontalProgress'; +import { LinearGauge } from './LinearGauge'; const containerStyle = { width: 300 }; export default { - title: 'HorizontalProgress', - component: HorizontalProgress, + title: 'LinearGauge', + component: LinearGauge, }; export const Default = () => (
- +
); export const MediumProgress = () => (
- +
); export const LowProgress = () => (
- +
); diff --git a/packages/core/src/components/ProgressBars/HorizontalProgress.tsx b/packages/core/src/components/ProgressBars/LinearGauge.tsx similarity index 92% rename from packages/core/src/components/ProgressBars/HorizontalProgress.tsx rename to packages/core/src/components/ProgressBars/LinearGauge.tsx index 72bf1f34c3..5ea15fcbe4 100644 --- a/packages/core/src/components/ProgressBars/HorizontalProgress.tsx +++ b/packages/core/src/components/ProgressBars/LinearGauge.tsx @@ -19,7 +19,7 @@ import { Tooltip, useTheme } from '@material-ui/core'; // @ts-ignore import { Line } from 'rc-progress'; import { BackstageTheme } from '@backstage/theme'; -import { getProgressColor } from './CircleProgress'; +import { getProgressColor } from './CircleGauge'; type Props = { /** @@ -28,7 +28,7 @@ type Props = { value: number; }; -export const HorizontalProgress: FC = ({ value }) => { +export const LinearGauge: FC = ({ value }) => { const theme = useTheme(); if (isNaN(value)) { return null; diff --git a/packages/core/src/components/ProgressBars/ProgressCard.stories.tsx b/packages/core/src/components/ProgressBars/ProgressCard.stories.tsx index 62c9f3be6e..d39f88ac10 100644 --- a/packages/core/src/components/ProgressBars/ProgressCard.stories.tsx +++ b/packages/core/src/components/ProgressBars/ProgressCard.stories.tsx @@ -15,7 +15,7 @@ */ import React from 'react'; -import { ProgressCard } from './ProgressCard'; +import { ProgressCard } from './GaugeCard'; import { Grid } from '@material-ui/core'; const linkInfo = { title: 'Go to XYZ Location', link: '#' }; diff --git a/packages/core/src/components/ProgressBars/index.ts b/packages/core/src/components/ProgressBars/index.ts index c74e283ae6..41583704f5 100644 --- a/packages/core/src/components/ProgressBars/index.ts +++ b/packages/core/src/components/ProgressBars/index.ts @@ -14,6 +14,6 @@ * limitations under the License. */ -export { ProgressCard } from './ProgressCard'; -export { CircleProgress } from './CircleProgress'; -export { HorizontalProgress } from './HorizontalProgress'; +export { GaugeCard } from './GaugeCard'; +export { CircleGauge } from './CircleGauge'; +export { LinearGauge } from './LinearGauge'; From 8b43c483b297c9bff4b9b1ff45100112bce79cf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Doreau?= <32459935+ayshiff@users.noreply.github.com> Date: Mon, 7 Sep 2020 09:45:47 +0200 Subject: [PATCH 434/656] feat(core): add chip component (#2225) --- .../src/components/stories/Chip.stories.tsx | 56 +++++++++++++++++++ packages/theme/src/baseTheme.ts | 21 +++++++ 2 files changed, 77 insertions(+) create mode 100644 packages/core/src/components/stories/Chip.stories.tsx diff --git a/packages/core/src/components/stories/Chip.stories.tsx b/packages/core/src/components/stories/Chip.stories.tsx new file mode 100644 index 0000000000..29170214a2 --- /dev/null +++ b/packages/core/src/components/stories/Chip.stories.tsx @@ -0,0 +1,56 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { Chip } from '@material-ui/core'; + +export default { + title: 'Chip', + component: Chip, +}; + +export const Default = () => ( + +); + +export const LargeDeletable = () => ( + ({})} + /> +); + +export const LargeNotDeletable = () => ( + +); + +export const SmallDeletable = () => ( + ({})} + /> +); + +export const SmallNotDeletable = () => ( + +); diff --git a/packages/theme/src/baseTheme.ts b/packages/theme/src/baseTheme.ts index dc68db11d6..00a485bb41 100644 --- a/packages/theme/src/baseTheme.ts +++ b/packages/theme/src/baseTheme.ts @@ -192,10 +192,31 @@ export function createThemeOverrides(theme: BackstageTheme): Overrides { }, MuiChip: { root: { + backgroundColor: '#D9D9D9', // By default there's no margin, but it's usually wanted, so we add some trailing margin marginRight: theme.spacing(1), marginBottom: theme.spacing(1), }, + label: { + color: theme.palette.grey[900], + lineHeight: `${theme.spacing(2.5)}px`, + fontWeight: theme.typography.fontWeightMedium, + fontSize: `${theme.spacing(1.75)}px`, + }, + labelSmall: { + fontSize: `${theme.spacing(1.5)}px`, + }, + deleteIcon: { + color: theme.palette.grey[500], + width: `${theme.spacing(3)}px`, + height: `${theme.spacing(3)}px`, + margin: `0 ${theme.spacing(0.75)}px 0 -${theme.spacing(0.75)}px`, + }, + deleteIconSmall: { + width: `${theme.spacing(2)}px`, + height: `${theme.spacing(2)}px`, + margin: `0 ${theme.spacing(0.5)}px 0 -${theme.spacing(0.5)}px`, + }, }, MuiCardHeader: { root: { From ea10e74557ca22dbbafe757d4e64ebac83b3c373 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2020 09:46:48 +0200 Subject: [PATCH 435/656] chore(deps): bump @rjsf/core from 2.2.2 to 2.3.0 (#2305) Bumps [@rjsf/core](https://github.com/rjsf-team/react-jsonschema-form) from 2.2.2 to 2.3.0. - [Release notes](https://github.com/rjsf-team/react-jsonschema-form/releases) - [Commits](https://github.com/rjsf-team/react-jsonschema-form/compare/v2.2.2...v2.3.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index 83ecfc14af..57eb20b22d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2951,9 +2951,9 @@ react-lifecycles-compat "^3.0.4" "@rjsf/core@^2.1.0": - version "2.2.2" - resolved "https://registry.npmjs.org/@rjsf/core/-/core-2.2.2.tgz#1ebb6fe47448998f3b54e2dea8d58de8a46014dc" - integrity sha512-4d6DHIiTJEkUq5vyl4LIxLGIYYKKnHcprf94oVchUtGQvRFjNUDFxeFQoyr90oaxcBMs2WDDcCgjcFaKVyfErg== + version "2.3.0" + resolved "https://registry.npmjs.org/@rjsf/core/-/core-2.3.0.tgz#334c73d2262ef1a8cda477e238067af7336c5599" + integrity sha512-OZKYHt9tjKhzOH4CvsPiCwepuIacqI++cNmnL2fsxh1IF+uEWGlo3NLDWhhSaBbOv9jps6a5YQcLbLtjNuSwug== dependencies: "@babel/runtime-corejs2" "^7.8.7" "@types/json-schema" "^7.0.4" @@ -5438,17 +5438,7 @@ ajv@^5.0.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.1, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5, ajv@^6.7.0: - version "6.12.3" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" - integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.12.4: +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.5.5, ajv@^6.7.0: version "6.12.4" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== From 7245158e71e2f6a520023febf2db1ed3af4c732b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 7 Sep 2020 11:14:56 +0200 Subject: [PATCH 436/656] chore: fix prettier errors --- .prettierignore | 1 + .../src/components/stories/Chip.stories.tsx | 27 +++++-------------- 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/.prettierignore b/.prettierignore index ef75947604..9e75b74eee 100644 --- a/.prettierignore +++ b/.prettierignore @@ -5,3 +5,4 @@ coverage *.hbs templates plugins/scaffolder-backend/sample-templates +.vscode diff --git a/packages/core/src/components/stories/Chip.stories.tsx b/packages/core/src/components/stories/Chip.stories.tsx index 29170214a2..c0e644fcc5 100644 --- a/packages/core/src/components/stories/Chip.stories.tsx +++ b/packages/core/src/components/stories/Chip.stories.tsx @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import React from 'react'; import { Chip } from '@material-ui/core'; @@ -21,36 +22,20 @@ export default { component: Chip, }; -export const Default = () => ( - -); +export const Default = () => ; export const LargeDeletable = () => ( - ({})} - /> + ({})} /> ); export const LargeNotDeletable = () => ( - + ); export const SmallDeletable = () => ( - ({})} - /> + ({})} /> ); export const SmallNotDeletable = () => ( - + ); From 215c87ec2bb366dde6783d4facaae604ee37eee5 Mon Sep 17 00:00:00 2001 From: Marcus Eide Date: Mon, 7 Sep 2020 09:16:45 +0200 Subject: [PATCH 437/656] Remove newlines added by morgan --- packages/backend-common/src/middleware/requestLoggingHandler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend-common/src/middleware/requestLoggingHandler.ts b/packages/backend-common/src/middleware/requestLoggingHandler.ts index 6604ec245c..6bb42a35b7 100644 --- a/packages/backend-common/src/middleware/requestLoggingHandler.ts +++ b/packages/backend-common/src/middleware/requestLoggingHandler.ts @@ -33,7 +33,7 @@ export function requestLoggingHandler(logger?: Logger): RequestHandler { return morgan('combined', { stream: { write(message: String) { - actualLogger.info(message); + actualLogger.info(message.trim()); }, }, }); From 0e0a0f4917411e7301dec57ffed063e843e3811b Mon Sep 17 00:00:00 2001 From: Marcus Eide Date: Mon, 7 Sep 2020 11:13:05 +0200 Subject: [PATCH 438/656] Use trimRight instead --- packages/backend-common/src/middleware/requestLoggingHandler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend-common/src/middleware/requestLoggingHandler.ts b/packages/backend-common/src/middleware/requestLoggingHandler.ts index 6bb42a35b7..061dfbbd25 100644 --- a/packages/backend-common/src/middleware/requestLoggingHandler.ts +++ b/packages/backend-common/src/middleware/requestLoggingHandler.ts @@ -33,7 +33,7 @@ export function requestLoggingHandler(logger?: Logger): RequestHandler { return morgan('combined', { stream: { write(message: String) { - actualLogger.info(message.trim()); + actualLogger.info(message.trimRight()); }, }, }); From a1b3ff5f6ee285011efae981cbb8d4b773e21782 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Mon, 7 Sep 2020 12:24:39 +0200 Subject: [PATCH 439/656] Minor cleanup of Stories (#2302) * Minor cleanup of Stories * Remove ugly styling * Update InfoCard.stories.tsx --- .../src/layout/InfoCard/InfoCard.stories.tsx | 28 ++++-- .../core/src/layout/Page/Page.stories.tsx | 94 ++++++++++--------- 2 files changed, 68 insertions(+), 54 deletions(-) diff --git a/packages/core/src/layout/InfoCard/InfoCard.stories.tsx b/packages/core/src/layout/InfoCard/InfoCard.stories.tsx index 7d888f5486..3e476c5480 100644 --- a/packages/core/src/layout/InfoCard/InfoCard.stories.tsx +++ b/packages/core/src/layout/InfoCard/InfoCard.stories.tsx @@ -15,9 +15,8 @@ */ import React, { FC } from 'react'; import { InfoCard } from '.'; -import { Grid } from '@material-ui/core'; +import { Grid, Typography } from '@material-ui/core'; -const cardContentStyle = { height: 200, width: 500 }; const linkInfo = { title: 'Go to XYZ Location', link: '#' }; export default { @@ -25,24 +24,35 @@ export default { component: InfoCard, }; +const text = ( + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat + non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + +); + const Wrapper: FC<{}> = ({ children }) => ( - {children} + + {children} + ); export const Default = () => ( - -
- + {text} ); export const Subhead = () => ( - -
+ + {text} ); @@ -50,7 +60,7 @@ export const Subhead = () => ( export const LinkInFooter = () => ( -
+ {text} ); diff --git a/packages/core/src/layout/Page/Page.stories.tsx b/packages/core/src/layout/Page/Page.stories.tsx index aec99967dc..0b91875546 100644 --- a/packages/core/src/layout/Page/Page.stories.tsx +++ b/packages/core/src/layout/Page/Page.stories.tsx @@ -97,7 +97,7 @@ const columns: TableColumn[] = [ const tabs = [ { label: 'Overview' }, { label: 'CI/CD' }, - { label: 'Cost Efficency' }, + { label: 'Cost Efficiency' }, { label: 'Code Coverage' }, { label: 'Test' }, { label: 'Compliance Advisor' }, @@ -137,38 +137,38 @@ const DataGrid = () => ( - Rightsize GKE deployment -

+ Rightsize GKE deployment + Services are considered underutilized in GKE when the average usage of requested cores is less than 80%. -

- What can I do? -

+ + What can I do? + Review requested core and limit settings. Check HPA target scaling - settings in hpa.yaml. The recommended value for - targetCPUUtilizationPercentage is 80. -

-

+ settings in hpa.yaml. The recommended value for  + targetCPUUtilizationPercentage is 80. + + For single pods, there is of course no HPA. But it can also be useful to think about a single pod out of a larger deployment, then modify based on HPA requirements. Within a pod, each container has its own CPU and memory requests and limits. -

- Definitions -

+ + Definitions + A request is a minimum reserved value; a container will never have less than this amount allocated to it, even if it doesn't actually use it. Requests are used for determining what nodes to schedule pods on (bin-packing). The tension here is between not allocating resources we don't need, and having easy-enough access to enough resources to be able to function. -

- + + Contact #cost-awareness for information and support. - +
@@ -195,37 +195,41 @@ const ExampleContentHeader = ({ selectedTab }: { selectedTab?: number }) => ( export const PluginWithData = () => { const [selectedTab, setSelectedTab] = useState(2); return ( - - - setSelectedTab(index)} - tabs={tabs.map(({ label }, index) => ({ - id: index.toString(), - label, - }))} - /> - - - - - +
+ + + setSelectedTab(index)} + tabs={tabs.map(({ label }, index) => ({ + id: index.toString(), + label, + }))} + /> + + + + + +
); }; export const PluginWithTable = () => { return ( - - - - - - - +
+ + + + +
+ + + ); }; From d372b1c675c7b9585c95168b21e8aaf32a934c49 Mon Sep 17 00:00:00 2001 From: davidamitchell Date: Mon, 7 Sep 2020 23:51:13 +1200 Subject: [PATCH 440/656] docs: minor typo correction (#2307) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: minor typo correction * chore: fix prettier errors Co-authored-by: Fredrik Adelöw --- docs/features/software-catalog/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/software-catalog/index.md b/docs/features/software-catalog/index.md index bfc3d53d4d..07b22808cd 100644 --- a/docs/features/software-catalog/index.md +++ b/docs/features/software-catalog/index.md @@ -48,7 +48,7 @@ There are 3 ways to add components to the catalog: 1. Manually register components 2. Creating new components through Backstage -3. Integrating with and [external source](external-integrations.md) +3. Integrating with an [external source](external-integrations.md) ### Manually register components From 2b114fde44793a93e09311b11233e6be2cc1b2ac Mon Sep 17 00:00:00 2001 From: Esteban Barrios Date: Mon, 7 Sep 2020 13:53:30 +0200 Subject: [PATCH 441/656] Show Display name in catalog instead of userId (#2310) * Use display name instead of userid if this exists in the user profile for the catalog welcome banner * Rename variable for clarity * Updated test for CatalogPage to include getProfile function --- plugins/catalog/src/components/CatalogPage/CatalogLayout.tsx | 3 ++- .../catalog/src/components/CatalogPage/CatalogPage.test.tsx | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/catalog/src/components/CatalogPage/CatalogLayout.tsx b/plugins/catalog/src/components/CatalogPage/CatalogLayout.tsx index 39b3c66013..92f51ace06 100644 --- a/plugins/catalog/src/components/CatalogPage/CatalogLayout.tsx +++ b/plugins/catalog/src/components/CatalogPage/CatalogLayout.tsx @@ -31,12 +31,13 @@ type Props = { const CatalogLayout = ({ children }: Props) => { const greeting = getTimeBasedGreeting(); + const profile = useApi(identityApiRef).getProfile(); const userId = useApi(identityApiRef).getUserId(); return (
{ getLocationByEntity: () => Promise.resolve({ id: 'id', type: 'github', target: 'url' }), }; + const testProfile: Partial = { + displayName: 'Display Name', + }; const indentityApi: Partial = { getUserId: () => 'tools@example.com', + getProfile: () => testProfile, }; const renderWrapped = (children: React.ReactNode) => From 66ddd0cc560cee97a90506262155dbbd3a9cf9ec Mon Sep 17 00:00:00 2001 From: Andrew Thauer <6507159+andrewthauer@users.noreply.github.com> Date: Mon, 7 Sep 2020 08:38:02 -0400 Subject: [PATCH 442/656] refactor(rollbar): update to use routing & entities --- .../well-known-annotations.md | 18 +++++ plugins/rollbar/README.md | 60 ++++++++++++---- plugins/rollbar/package.json | 2 + plugins/rollbar/src/api/RollbarApi.ts | 1 + plugins/rollbar/src/api/RollbarClient.ts | 16 ++--- plugins/rollbar/src/api/RollbarMockClient.ts | 70 ------------------- plugins/rollbar/src/api/index.ts | 18 +++++ .../EntityPageRollbar/EntityPageRollbar.tsx | 27 +++++++ .../RollbarHome.test.tsx} | 15 +++- .../RollbarHome.tsx} | 40 ++++------- .../RollbarProject/RollbarProject.tsx | 40 +++++++++++ .../RollbarProjectPage.test.tsx | 14 +++- .../RollbarProjectPage/RollbarProjectPage.tsx | 43 ++++-------- .../RollbarProjectTable.tsx | 68 +++++++----------- .../RollbarTopItemsTable.tsx | 19 ++--- plugins/rollbar/src/components/Router.tsx | 47 +++++++++++++ .../TrendGraph.test.tsx} | 8 +-- .../TrendGraph.tsx} | 2 +- plugins/rollbar/src/constants.ts | 17 +++++ plugins/rollbar/src/hooks/useCatalogEntity.ts | 34 +++++++++ plugins/rollbar/src/hooks/useProject.ts | 37 ++++++++++ .../useRollbarEntities.ts} | 36 +++++----- .../rollbar/src/hooks/useTopActiveItems.ts | 46 ++++++++++++ plugins/rollbar/src/index.ts | 9 ++- plugins/rollbar/src/plugin.ts | 8 +-- plugins/rollbar/src/routes.ts | 15 +++- plugins/rollbar/src/utils/index.ts | 21 ++++++ 27 files changed, 489 insertions(+), 242 deletions(-) delete mode 100644 plugins/rollbar/src/api/RollbarMockClient.ts create mode 100644 plugins/rollbar/src/api/index.ts create mode 100644 plugins/rollbar/src/components/EntityPageRollbar/EntityPageRollbar.tsx rename plugins/rollbar/src/components/{RollbarPage/RollbarPage.test.tsx => RollbarHome/RollbarHome.test.tsx} (80%) rename plugins/rollbar/src/components/{RollbarLayout/RollbarLayout.tsx => RollbarHome/RollbarHome.tsx} (51%) create mode 100644 plugins/rollbar/src/components/RollbarProject/RollbarProject.tsx rename plugins/rollbar/src/components/{RollbarPage => RollbarProjectTable}/RollbarProjectTable.tsx (57%) create mode 100644 plugins/rollbar/src/components/Router.tsx rename plugins/rollbar/src/components/{RollbarTrendGraph/RollbarTrendGraph.test.tsx => TrendGraph/TrendGraph.test.tsx} (81%) rename plugins/rollbar/src/components/{RollbarTrendGraph/RollbarTrendGraph.tsx => TrendGraph/TrendGraph.tsx} (93%) create mode 100644 plugins/rollbar/src/constants.ts create mode 100644 plugins/rollbar/src/hooks/useCatalogEntity.ts create mode 100644 plugins/rollbar/src/hooks/useProject.ts rename plugins/rollbar/src/{components/RollbarPage/RollbarPage.tsx => hooks/useRollbarEntities.ts} (55%) create mode 100644 plugins/rollbar/src/hooks/useTopActiveItems.ts create mode 100644 plugins/rollbar/src/utils/index.ts diff --git a/docs/features/software-catalog/well-known-annotations.md b/docs/features/software-catalog/well-known-annotations.md index 159cfb4ca1..18de63d704 100644 --- a/docs/features/software-catalog/well-known-annotations.md +++ b/docs/features/software-catalog/well-known-annotations.md @@ -100,6 +100,24 @@ the same for all entities in the catalog. Specifying this annotation may enable Sentry related features in Backstage for that entity. +### rollbar.com/project-slug + +```yaml +# Example: +metadata: + annotations: + rollbar.com/project-slug: spotify/pump-station +``` + +The value of this annotation is the so-called slug (or alternatively, the ID) of +a [Rollbar](https://rollbar.com) project within your organization. The value can +be the format of `[organization]/[project-slug]` or just `[project-slug]`. When +the organization slug is omitted the `app-config.yaml` will be used as a +fallback (`rollbar.organization` followed by `organization.name`). + +Specifying this annotation may enable Rollbar related features in Backstage for +that entity. + ## Deprecated Annotations The following annotations are deprecated, and only listed here to aid in diff --git a/plugins/rollbar/README.md b/plugins/rollbar/README.md index 94ef38b43a..b2d2100dd9 100644 --- a/plugins/rollbar/README.md +++ b/plugins/rollbar/README.md @@ -26,25 +26,57 @@ export { plugin as Rollbar } from '@backstage/plugin-rollbar'; import { RollbarClient, rollbarApiRef } from '@backstage/plugin-rollbar'; // ... - -builder.add( - rollbarApiRef, - new RollbarClient({ - apiOrigin: backendUrl, - basePath: '/rollbar', - }), -); - -// Alternatively you can use the mock client -// builder.add(rollbarApiRef, new RollbarMockClient()); +builder.add(rollbarApiRef, new RollbarClient({ discoveryApi })); ``` -5. Run app with `yarn start` and navigate to `/rollbar` +5. Add to the app `EntityPage` component: + +```ts +// packages/app/src/components/catalog/EntityPage.tsx +import { Router as RollbarRouter } from '@backstage/plugin-rollbar'; + +// ... +const ServiceEntityPage = ({ entity }: { entity: Entity }) => ( + + // ... + } + /> + +); +``` + +6. Setup the `app.config.yaml` and account token environment variable + +```yaml +# app.config.yaml +rollbar: + organization: spotify + accountToken: + $secret: + env: ROLLBAR_ACCOUNT_TOKEN +``` + +7. Annotate entities with the rollbar project slug + +```yaml +# pump-station-catalog-component.yaml +# ... +metadata: + annotations: + rollbar.com/project-slug: organization-name/project-name + # -- or just --- + rollbar.com/project-slug: project-name +``` + +8. Run app with `yarn start` and navigate to `/rollbar` or a catalog entity ## Features -- List rollbar projects -- View top active items for each project +- List rollbar entities that are annotated with `rollbar.com/project-slug` +- View top active items for each rollbar annotated entity ## Limitations diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index 9c5343247c..1708dc31ce 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -21,7 +21,9 @@ "clean": "backstage-cli clean" }, "dependencies": { + "@backstage/catalog-model": "^0.1.1-alpha.21", "@backstage/core": "^0.1.1-alpha.21", + "@backstage/plugin-catalog": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", diff --git a/plugins/rollbar/src/api/RollbarApi.ts b/plugins/rollbar/src/api/RollbarApi.ts index c08bc08d48..bde6c5e9f2 100644 --- a/plugins/rollbar/src/api/RollbarApi.ts +++ b/plugins/rollbar/src/api/RollbarApi.ts @@ -29,6 +29,7 @@ export const rollbarApiRef = createApiRef({ export interface RollbarApi { getAllProjects(): Promise; + getProject(projectName: string): Promise; getTopActiveItems( project: string, hours?: number, diff --git a/plugins/rollbar/src/api/RollbarClient.ts b/plugins/rollbar/src/api/RollbarClient.ts index 1862ad8270..e612890655 100644 --- a/plugins/rollbar/src/api/RollbarClient.ts +++ b/plugins/rollbar/src/api/RollbarClient.ts @@ -30,9 +30,11 @@ export class RollbarClient implements RollbarApi { } async getAllProjects(): Promise { - const path = `/projects`; + return await this.get(`/projects`); + } - return await this.get(path); + async getProject(projectName: string): Promise { + return await this.get(`/projects/${projectName}`); } async getTopActiveItems( @@ -40,15 +42,13 @@ export class RollbarClient implements RollbarApi { hours = 24, environment = 'production', ): Promise { - const path = `/projects/${project}/top_active_items?environment=${environment}&hours=${hours}`; - - return await this.get(path); + return await this.get( + `/projects/${project}/top_active_items?environment=${environment}&hours=${hours}`, + ); } async getProjectItems(project: string): Promise { - const path = `/projects/${project}/items`; - - return await this.get(path); + return await this.get(`/projects/${project}/items`); } private async get(path: string): Promise { diff --git a/plugins/rollbar/src/api/RollbarMockClient.ts b/plugins/rollbar/src/api/RollbarMockClient.ts deleted file mode 100644 index cab9a0d23a..0000000000 --- a/plugins/rollbar/src/api/RollbarMockClient.ts +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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. - */ - -/* eslint-disable @typescript-eslint/no-unused-vars */ - -import { RollbarApi } from './RollbarApi'; -import { - RollbarItemsResponse, - RollbarProject, - RollbarTopActiveItem, -} from './types'; - -export class RollbarMockClient implements RollbarApi { - async getAllProjects(): Promise { - return Promise.resolve([ - { id: 123, name: 'project-a', accountId: 1, status: 'enabled' }, - { id: 356, name: 'project-b', accountId: 1, status: 'enabled' }, - { id: 789, name: 'project-c', accountId: 1, status: 'enabled' }, - ]); - } - - async getTopActiveItems( - _project: string, - _hours = 24, - _environment = 'production', - ): Promise { - const createItem = (id: number): RollbarTopActiveItem => ({ - item: { - id, - counter: id, - environment: 'production', - framework: 2, - lastOccurrenceTimestamp: new Date().getTime() / 1000, - level: 50, - occurrences: 100, - projectId: 12345, - title: `Some error occurred in service - ${id}`, - uniqueOccurrences: 10, - }, - counts: Array.from({ length: 168 }, () => - Math.floor(Math.random() * 100), - ), - }); - - const items = Array.from({ length: 10 }, (_, i) => createItem(i)); - - return Promise.resolve(items); - } - - async getProjectItems(_project: string): Promise { - return Promise.resolve({ - items: [], - page: 0, - totalCount: 0, - }); - } -} diff --git a/plugins/rollbar/src/api/index.ts b/plugins/rollbar/src/api/index.ts new file mode 100644 index 0000000000..f45ff5bf8a --- /dev/null +++ b/plugins/rollbar/src/api/index.ts @@ -0,0 +1,18 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 * from './RollbarApi'; +export * from './RollbarClient'; diff --git a/plugins/rollbar/src/components/EntityPageRollbar/EntityPageRollbar.tsx b/plugins/rollbar/src/components/EntityPageRollbar/EntityPageRollbar.tsx new file mode 100644 index 0000000000..888b9aabe0 --- /dev/null +++ b/plugins/rollbar/src/components/EntityPageRollbar/EntityPageRollbar.tsx @@ -0,0 +1,27 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { Entity } from '@backstage/catalog-model'; +import { RollbarProject } from '../RollbarProject/RollbarProject'; + +type Props = { + entity: Entity; +}; + +export const EntityPageRollbar = ({ entity }: Props) => { + return ; +}; diff --git a/plugins/rollbar/src/components/RollbarPage/RollbarPage.test.tsx b/plugins/rollbar/src/components/RollbarHome/RollbarHome.test.tsx similarity index 80% rename from plugins/rollbar/src/components/RollbarPage/RollbarPage.test.tsx rename to plugins/rollbar/src/components/RollbarHome/RollbarHome.test.tsx index 11263ed820..c6ee052c0e 100644 --- a/plugins/rollbar/src/components/RollbarPage/RollbarPage.test.tsx +++ b/plugins/rollbar/src/components/RollbarHome/RollbarHome.test.tsx @@ -21,13 +21,14 @@ import { ConfigApi, configApiRef, } from '@backstage/core'; +import { catalogApiRef, CatalogApi } from '@backstage/plugin-catalog'; import { wrapInTestApp } from '@backstage/test-utils'; import { render } from '@testing-library/react'; import { RollbarApi, rollbarApiRef } from '../../api/RollbarApi'; import { RollbarProject } from '../../api/types'; -import { RollbarPage } from './RollbarPage'; +import { RollbarHome } from './RollbarHome'; -describe('RollbarPage component', () => { +describe('RollbarHome component', () => { const projects: RollbarProject[] = [ { id: 123, name: 'abc', accountId: 1, status: 'enabled' }, { id: 456, name: 'xyz', accountId: 1, status: 'enabled' }, @@ -47,6 +48,14 @@ describe('RollbarPage component', () => { apis={ApiRegistry.from([ [rollbarApiRef, rollbarApi], [configApiRef, config], + [ + catalogApiRef, + ({ + async getEntities() { + return []; + }, + } as Partial) as CatalogApi, + ], ])} > {children} @@ -55,7 +64,7 @@ describe('RollbarPage component', () => { ); it('should render rollbar landing page', async () => { - const rendered = renderWrapped(); + const rendered = renderWrapped(); expect(rendered.getByText(/Rollbar/)).toBeInTheDocument(); }); }); diff --git a/plugins/rollbar/src/components/RollbarLayout/RollbarLayout.tsx b/plugins/rollbar/src/components/RollbarHome/RollbarHome.tsx similarity index 51% rename from plugins/rollbar/src/components/RollbarLayout/RollbarLayout.tsx rename to plugins/rollbar/src/components/RollbarHome/RollbarHome.tsx index c0524fabc5..d09c2054b1 100644 --- a/plugins/rollbar/src/components/RollbarLayout/RollbarLayout.tsx +++ b/plugins/rollbar/src/components/RollbarHome/RollbarHome.tsx @@ -14,42 +14,26 @@ * limitations under the License. */ -import React, { ReactNode } from 'react'; -import { - Header, - HeaderLabel, - Page, - pageTheme, - Content, - ContentHeader, - SupportButton, -} from '@backstage/core'; -import { Grid } from '@material-ui/core'; +import React from 'react'; +import { Content, Header, Page, pageTheme } from '@backstage/core'; +import { RollbarProjectTable } from '../RollbarProjectTable/RollbarProjectTable'; +import { useRollbarEntities } from '../../hooks/useRollbarEntities'; -type Props = { - title?: string; - children: ReactNode; -}; +export const RollbarHome = () => { + const { entities, loading, error } = useRollbarEntities(); -export const RollbarLayout = ({ title = 'Dashboard', children }: Props) => { return (
- - -
+ /> - - - Rollbar plugin allows you to preview issues and navigate to rollbar. - - - - {children} - +
); diff --git a/plugins/rollbar/src/components/RollbarProject/RollbarProject.tsx b/plugins/rollbar/src/components/RollbarProject/RollbarProject.tsx new file mode 100644 index 0000000000..34881ba560 --- /dev/null +++ b/plugins/rollbar/src/components/RollbarProject/RollbarProject.tsx @@ -0,0 +1,40 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { Entity } from '@backstage/catalog-model'; +import { useTopActiveItems } from '../../hooks/useTopActiveItems'; +import { RollbarTopItemsTable } from '../RollbarTopItemsTable/RollbarTopItemsTable'; + +type Props = { + entity: Entity; +}; + +export const RollbarProject = ({ entity }: Props) => { + const { items, organization, project, loading, error } = useTopActiveItems( + entity, + ); + + return ( + + ); +}; diff --git a/plugins/rollbar/src/components/RollbarProjectPage/RollbarProjectPage.test.tsx b/plugins/rollbar/src/components/RollbarProjectPage/RollbarProjectPage.test.tsx index e4919a68bd..ad3d4a554d 100644 --- a/plugins/rollbar/src/components/RollbarProjectPage/RollbarProjectPage.test.tsx +++ b/plugins/rollbar/src/components/RollbarProjectPage/RollbarProjectPage.test.tsx @@ -26,6 +26,7 @@ import { render } from '@testing-library/react'; import { RollbarApi, rollbarApiRef } from '../../api/RollbarApi'; import { RollbarTopActiveItem } from '../../api/types'; import { RollbarProjectPage } from './RollbarProjectPage'; +import { catalogApiRef, CatalogApi } from '@backstage/plugin-catalog'; describe('RollbarProjectPage component', () => { const items: RollbarTopActiveItem[] = [ @@ -60,6 +61,17 @@ describe('RollbarProjectPage component', () => { apis={ApiRegistry.from([ [rollbarApiRef, rollbarApi], [configApiRef, config], + [ + catalogApiRef, + ({ + async getEntityByName() { + return { + metadata: { name: 'foo' }, + spec: { owner: 'bar', lifecycle: 'experimental' }, + } as any; + }, + } as Partial) as CatalogApi, + ], ])} > {children} @@ -69,6 +81,6 @@ describe('RollbarProjectPage component', () => { it('should render rollbar project page', async () => { const rendered = renderWrapped(); - expect(rendered.getByText(/Top Active Items/)).toBeInTheDocument(); + expect(rendered.getByText(/Rollbar/)).toBeInTheDocument(); }); }); diff --git a/plugins/rollbar/src/components/RollbarProjectPage/RollbarProjectPage.tsx b/plugins/rollbar/src/components/RollbarProjectPage/RollbarProjectPage.tsx index 6635a72086..b18357e310 100644 --- a/plugins/rollbar/src/components/RollbarProjectPage/RollbarProjectPage.tsx +++ b/plugins/rollbar/src/components/RollbarProjectPage/RollbarProjectPage.tsx @@ -15,39 +15,22 @@ */ import React from 'react'; -import { useParams } from 'react-router-dom'; -import { useAsync } from 'react-use'; -import { configApiRef, useApi } from '@backstage/core'; -import { rollbarApiRef } from '../../api/RollbarApi'; -import { RollbarLayout } from '../RollbarLayout/RollbarLayout'; -import { RollbarTopItemsTable } from '../RollbarTopItemsTable/RollbarTopItemsTable'; +import { Content, Header, HeaderLabel, Page, pageTheme } from '@backstage/core'; +import { useCatalogEntity } from '../../hooks/useCatalogEntity'; +import { RollbarProject } from '../RollbarProject/RollbarProject'; export const RollbarProjectPage = () => { - const configApi = useApi(configApiRef); - const rollbarApi = useApi(rollbarApiRef); - const org = - configApi.getOptionalString('rollbar.organization') ?? - configApi.getString('organization.name'); - const { componentId } = useParams() as { - componentId: string; - }; - const { value, loading, error } = useAsync(() => - rollbarApi - .getTopActiveItems(componentId, 168) - .then(data => - data.sort((a, b) => b.item.occurrences - a.item.occurrences), - ), - ); + const { entity } = useCatalogEntity(); return ( - - - + +
+ + +
+ + {entity ? : 'Loading'} + +
); }; diff --git a/plugins/rollbar/src/components/RollbarPage/RollbarProjectTable.tsx b/plugins/rollbar/src/components/RollbarProjectTable/RollbarProjectTable.tsx similarity index 57% rename from plugins/rollbar/src/components/RollbarPage/RollbarProjectTable.tsx rename to plugins/rollbar/src/components/RollbarProjectTable/RollbarProjectTable.tsx index fdf90c468e..5b3631ade9 100644 --- a/plugins/rollbar/src/components/RollbarPage/RollbarProjectTable.tsx +++ b/plugins/rollbar/src/components/RollbarProjectTable/RollbarProjectTable.tsx @@ -15,68 +15,49 @@ */ import React from 'react'; -import { Link as RouterLink } from 'react-router-dom'; +import { Link as RouterLink, generatePath } from 'react-router-dom'; +import { Table, TableColumn } from '@backstage/core'; +import { Entity } from '@backstage/catalog-model'; import { Link } from '@material-ui/core'; import { Alert } from '@material-ui/lab'; -import OpenInNewIcon from '@material-ui/icons/OpenInNew'; -import { Table, TableColumn } from '@backstage/core'; -import { RollbarProject } from '../../api/types'; - -const projectUrl = (org: string, id: number) => - `https://rollbar.com/${org}/all/items/?projects=${id}`; +import { entityRouteRef } from '../../routes'; const columns: TableColumn[] = [ - { - title: 'ID', - field: 'id', - type: 'numeric', - align: 'left', - width: '100px', - }, { title: 'Name', - field: 'name', + field: 'metadata.name', type: 'string', highlight: true, - render: (row: Partial) => ( - - {row.name} - - ), - }, - { - title: 'Status', - field: 'status', - type: 'string', - }, - { - title: 'Open', - width: '10%', - render: (row: any) => ( + render: (entity: any) => ( - + {entity.metadata.name} ), }, + { + title: 'Description', + field: 'metadata.description', + }, ]; type Props = { - projects: RollbarProject[]; + entities: Entity[]; loading: boolean; - organization: string; error?: any; }; -export const RollbarProjectTable = ({ - projects, - organization, - loading, - error, -}: Props) => { +export const RollbarProjectTable = ({ entities, loading, error }: Props) => { if (error) { return (
@@ -92,14 +73,13 @@ export const RollbarProjectTable = ({ isLoading={loading} columns={columns} options={{ - padding: 'dense', search: true, paging: true, pageSize: 10, showEmptyDataSourceMessage: !loading, }} title="Projects" - data={projects.map(p => ({ organization, ...p }))} + data={entities} /> ); }; diff --git a/plugins/rollbar/src/components/RollbarTopItemsTable/RollbarTopItemsTable.tsx b/plugins/rollbar/src/components/RollbarTopItemsTable/RollbarTopItemsTable.tsx index 913ecca28a..a04155a0c3 100644 --- a/plugins/rollbar/src/components/RollbarTopItemsTable/RollbarTopItemsTable.tsx +++ b/plugins/rollbar/src/components/RollbarTopItemsTable/RollbarTopItemsTable.tsx @@ -16,17 +16,15 @@ import React from 'react'; import { Table, TableColumn } from '@backstage/core'; -import { Link } from '@material-ui/core'; +import { Box, Link, Typography } from '@material-ui/core'; import { Alert } from '@material-ui/lab'; import { RollbarFrameworkId, RollbarLevel, RollbarTopActiveItem, } from '../../api/types'; -import { RollbarTrendGraph } from '../RollbarTrendGraph/RollbarTrendGraph'; - -const itemUrl = (org: string, project: string, id: number) => - `https://rollbar.com/${org}/${project}/items/${id}`; +import { buildItemUrl } from '../../utils'; +import { TrendGraph } from '../TrendGraph/TrendGraph'; const columns: TableColumn[] = [ { @@ -37,7 +35,7 @@ const columns: TableColumn[] = [ width: '70px', render: (data: any) => ( @@ -54,7 +52,7 @@ const columns: TableColumn[] = [ { title: 'Trend', sorting: false, - render: (data: any) => , + render: (data: any) => , }, { title: 'Occurrences', @@ -127,7 +125,12 @@ export const RollbarTopItemsTable = ({ pageSize: 5, showEmptyDataSourceMessage: !loading, }} - title="Top Active Items" + title={ + + + Top Active Items / {project} + + } data={items.map(i => ({ org: organization, project, ...i }))} /> ); diff --git a/plugins/rollbar/src/components/Router.tsx b/plugins/rollbar/src/components/Router.tsx new file mode 100644 index 0000000000..c765c14f14 --- /dev/null +++ b/plugins/rollbar/src/components/Router.tsx @@ -0,0 +1,47 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { Routes, Route } from 'react-router'; +import { Entity } from '@backstage/catalog-model'; +import { WarningPanel } from '@backstage/core'; +import { catalogRouteRef } from '../routes'; +import { ROLLBAR_ANNOTATION } from '../constants'; +import { EntityPageRollbar } from './EntityPageRollbar/EntityPageRollbar'; + +export const isPluginApplicableToEntity = (entity: Entity) => + entity.metadata.annotations?.[ROLLBAR_ANNOTATION] !== ''; + +type Props = { + entity: Entity; +}; + +export const Router = ({ entity }: Props) => + !isPluginApplicableToEntity(entity) ? ( + +
+        entity.metadata.annotations['{ROLLBAR_ANNOTATION}']` key is missing on
+        the entity.
+      
+
+ ) : ( + + } + /> + + ); diff --git a/plugins/rollbar/src/components/RollbarTrendGraph/RollbarTrendGraph.test.tsx b/plugins/rollbar/src/components/TrendGraph/TrendGraph.test.tsx similarity index 81% rename from plugins/rollbar/src/components/RollbarTrendGraph/RollbarTrendGraph.test.tsx rename to plugins/rollbar/src/components/TrendGraph/TrendGraph.test.tsx index 1f9d317e5b..ac1a328521 100644 --- a/plugins/rollbar/src/components/RollbarTrendGraph/RollbarTrendGraph.test.tsx +++ b/plugins/rollbar/src/components/TrendGraph/TrendGraph.test.tsx @@ -17,15 +17,13 @@ import React from 'react'; import { render } from '@testing-library/react'; import { wrapInTestApp } from '@backstage/test-utils'; -import { RollbarTrendGraph } from './RollbarTrendGraph'; +import { TrendGraph } from './TrendGraph'; -describe('RollbarTrendGraph component', () => { +describe('TrendGraph component', () => { it('should render a trend graph sparkline', async () => { const mockCounts = [1, 2, 3, 4]; const rendered = render( - wrapInTestApp( - , - ), + wrapInTestApp(), ); expect(rendered).toBeTruthy(); }); diff --git a/plugins/rollbar/src/components/RollbarTrendGraph/RollbarTrendGraph.tsx b/plugins/rollbar/src/components/TrendGraph/TrendGraph.tsx similarity index 93% rename from plugins/rollbar/src/components/RollbarTrendGraph/RollbarTrendGraph.tsx rename to plugins/rollbar/src/components/TrendGraph/TrendGraph.tsx index 4f0b53eb4a..5d518817bc 100644 --- a/plugins/rollbar/src/components/RollbarTrendGraph/RollbarTrendGraph.tsx +++ b/plugins/rollbar/src/components/TrendGraph/TrendGraph.tsx @@ -21,7 +21,7 @@ type Props = { counts: number[]; }; -export const RollbarTrendGraph = ({ counts }: Props) => { +export const TrendGraph = ({ counts }: Props) => { return ( diff --git a/plugins/rollbar/src/constants.ts b/plugins/rollbar/src/constants.ts new file mode 100644 index 0000000000..e3a89d655e --- /dev/null +++ b/plugins/rollbar/src/constants.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 const ROLLBAR_ANNOTATION = 'rollbar.com/project-slug'; diff --git a/plugins/rollbar/src/hooks/useCatalogEntity.ts b/plugins/rollbar/src/hooks/useCatalogEntity.ts new file mode 100644 index 0000000000..172d057738 --- /dev/null +++ b/plugins/rollbar/src/hooks/useCatalogEntity.ts @@ -0,0 +1,34 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { useAsync } from 'react-use'; +import { useApi } from '@backstage/core'; +import { + catalogApiRef, + useEntityCompoundName, +} from '@backstage/plugin-catalog'; + +export function useCatalogEntity() { + const catalogApi = useApi(catalogApiRef); + const { namespace, name } = useEntityCompoundName(); + + const { value: entity, error, loading } = useAsync( + () => catalogApi.getEntityByName({ kind: 'Component', namespace, name }), + [catalogApi, namespace, name], + ); + + return { entity, error, loading }; +} diff --git a/plugins/rollbar/src/hooks/useProject.ts b/plugins/rollbar/src/hooks/useProject.ts new file mode 100644 index 0000000000..5d61b63ffb --- /dev/null +++ b/plugins/rollbar/src/hooks/useProject.ts @@ -0,0 +1,37 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { useApi, configApiRef } from '@backstage/core'; +import { Entity } from '@backstage/catalog-model'; +import { ROLLBAR_ANNOTATION } from '../constants'; + +export function useProjectSlugFromEntity(entity: Entity) { + const configApi = useApi(configApiRef); + + const [project, organization] = ( + entity?.metadata?.annotations?.[ROLLBAR_ANNOTATION] ?? '' + ) + .split('/') + .reverse(); + + return { + project, + organization: + organization ?? + configApi.getOptionalString('rollbar.organization') ?? + configApi.getString('organization.name'), + }; +} diff --git a/plugins/rollbar/src/components/RollbarPage/RollbarPage.tsx b/plugins/rollbar/src/hooks/useRollbarEntities.ts similarity index 55% rename from plugins/rollbar/src/components/RollbarPage/RollbarPage.tsx rename to plugins/rollbar/src/hooks/useRollbarEntities.ts index 0460b4a308..3edf34d1f3 100644 --- a/plugins/rollbar/src/components/RollbarPage/RollbarPage.tsx +++ b/plugins/rollbar/src/hooks/useRollbarEntities.ts @@ -14,29 +14,25 @@ * limitations under the License. */ -import React from 'react'; import { useAsync } from 'react-use'; -import { configApiRef, useApi } from '@backstage/core'; -import { rollbarApiRef } from '../../api/RollbarApi'; -import { RollbarLayout } from '../RollbarLayout/RollbarLayout'; -import { RollbarProjectTable } from './RollbarProjectTable'; +import { useApi, configApiRef } from '@backstage/core'; +import { catalogApiRef } from '@backstage/plugin-catalog'; +import { ROLLBAR_ANNOTATION } from '../constants'; -export const RollbarPage = () => { +export function useRollbarEntities() { const configApi = useApi(configApiRef); - const rollbarApi = useApi(rollbarApiRef); - const org = + const catalogApi = useApi(catalogApiRef); + + const organization = configApi.getOptionalString('rollbar.organization') ?? configApi.getString('organization.name'); - const { value, loading, error } = useAsync(() => rollbarApi.getAllProjects()); - return ( - - - - ); -}; + const { value, loading, error } = useAsync(async () => { + const entities = await catalogApi.getEntities(); + return entities.filter(entity => { + return !!entity.metadata.annotations?.[ROLLBAR_ANNOTATION]; + }); + }, [catalogApi]); + + return { entities: value, organization, loading, error }; +} diff --git a/plugins/rollbar/src/hooks/useTopActiveItems.ts b/plugins/rollbar/src/hooks/useTopActiveItems.ts new file mode 100644 index 0000000000..cb1689355f --- /dev/null +++ b/plugins/rollbar/src/hooks/useTopActiveItems.ts @@ -0,0 +1,46 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { useAsync } from 'react-use'; +import { useApi } from '@backstage/core'; +import { Entity } from '@backstage/catalog-model'; +import { rollbarApiRef } from '../api'; +import { RollbarTopActiveItem } from '../api/types'; +import { useProjectSlugFromEntity } from './useProject'; + +export function useTopActiveItems(entity: Entity) { + const api = useApi(rollbarApiRef); + const { organization, project } = useProjectSlugFromEntity(entity); + const { value, loading, error } = useAsync(() => { + if (!project) { + return Promise.resolve([]); + } + + return api + .getTopActiveItems(project, 168) + .then(data => + data.sort((a, b) => b.item.occurrences - a.item.occurrences), + ); + }, [api, organization, project, entity]); + + return { + items: value as RollbarTopActiveItem[], + organization, + project, + loading, + error, + }; +} diff --git a/plugins/rollbar/src/index.ts b/plugins/rollbar/src/index.ts index 3a8288a545..2a31c91a13 100644 --- a/plugins/rollbar/src/index.ts +++ b/plugins/rollbar/src/index.ts @@ -15,6 +15,9 @@ */ export { plugin } from './plugin'; -export * from './api/RollbarApi'; -export { RollbarClient } from './api/RollbarClient'; -export { RollbarMockClient } from './api/RollbarMockClient'; +export * from './api'; +export * from './routes'; +export { Router } from './components/Router'; +export { RollbarProjectPage } from './components/RollbarProjectPage/RollbarProjectPage'; +export { EntityPageRollbar } from './components/EntityPageRollbar/EntityPageRollbar'; +export { ROLLBAR_ANNOTATION } from './constants'; diff --git a/plugins/rollbar/src/plugin.ts b/plugins/rollbar/src/plugin.ts index d682750a83..2cf464a8f6 100644 --- a/plugins/rollbar/src/plugin.ts +++ b/plugins/rollbar/src/plugin.ts @@ -15,14 +15,14 @@ */ import { createPlugin } from '@backstage/core'; -import { RollbarPage } from './components/RollbarPage/RollbarPage'; +import { rootRouteRef, entityRouteRef } from './routes'; +import { RollbarHome } from './components/RollbarHome/RollbarHome'; import { RollbarProjectPage } from './components/RollbarProjectPage/RollbarProjectPage'; -import { rootRoute, rootProjectRoute } from './routes'; export const plugin = createPlugin({ id: 'rollbar', register({ router }) { - router.addRoute(rootRoute, RollbarPage); - router.addRoute(rootProjectRoute, RollbarProjectPage); + router.addRoute(rootRouteRef, RollbarHome); + router.addRoute(entityRouteRef, RollbarProjectPage); }, }); diff --git a/plugins/rollbar/src/routes.ts b/plugins/rollbar/src/routes.ts index ecf20f3167..b514dff3c8 100644 --- a/plugins/rollbar/src/routes.ts +++ b/plugins/rollbar/src/routes.ts @@ -16,12 +16,21 @@ import { createRouteRef } from '@backstage/core'; -export const rootRoute = createRouteRef({ +const NoIcon = () => null; + +export const rootRouteRef = createRouteRef({ + icon: NoIcon, path: '/rollbar', title: 'Rollbar Home', }); -export const rootProjectRoute = createRouteRef({ - path: '/rollbar/:componentId/*', +export const entityRouteRef = createRouteRef({ + path: '/rollbar/:optionalNamespaceAndName', + title: 'Rollbar', +}); + +export const catalogRouteRef = createRouteRef({ + icon: NoIcon, + path: '', title: 'Rollbar', }); diff --git a/plugins/rollbar/src/utils/index.ts b/plugins/rollbar/src/utils/index.ts new file mode 100644 index 0000000000..1c8f8ff39e --- /dev/null +++ b/plugins/rollbar/src/utils/index.ts @@ -0,0 +1,21 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 const buildProjectUrl = (org: string, id: number) => + `https://rollbar.com/${org}/all/items/?projects=${id}`; + +export const buildItemUrl = (org: string, project: string, id: number) => + `https://rollbar.com/${org}/${project}/items/${id}`; From 9bfef247ccb6ddbfc1abeab969289b87259ccb4f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Sep 2020 14:58:56 +0200 Subject: [PATCH 443/656] cli: add skeleton tarball for docker build caching --- packages/backend/Dockerfile | 9 ++++-- .../cli/src/commands/backend/buildImage.ts | 1 + packages/cli/src/lib/packager/index.ts | 32 +++++++++++++++++-- 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile index 8d17821101..a7bd814b19 100644 --- a/packages/backend/Dockerfile +++ b/packages/backend/Dockerfile @@ -2,10 +2,15 @@ FROM node:12 WORKDIR /usr/src/app +# Copy repo skeleton first, to avoid unnecessary docker cache invalidation. +# The skeleton contains the package.json of each package in the monorepo, +# and along with yarn.lock and the root package.json, that's enough to run yarn install. +ADD yarn.lock package.json skeleton.tar ./ + +RUN yarn install --frozen-lockfile --production + # This will copy the contents of the dist-workspace when running the build-image command. # Do not use this Dockerfile outside of that command, as it will copy in the source code instead. COPY . . -RUN yarn install --frozen-lockfile --production - CMD ["node", "packages/backend"] diff --git a/packages/cli/src/commands/backend/buildImage.ts b/packages/cli/src/commands/backend/buildImage.ts index 36d4ef7129..b6e9da7b39 100644 --- a/packages/cli/src/commands/backend/buildImage.ts +++ b/packages/cli/src/commands/backend/buildImage.ts @@ -41,6 +41,7 @@ export default async (cmd: Command) => { ...appConfigs, { src: paths.resolveTarget('Dockerfile'), dest: 'Dockerfile' }, ], + skeleton: 'skeleton.tar', }); console.log(`Dist workspace ready at ${tempDistWorkspace}`); diff --git a/packages/cli/src/lib/packager/index.ts b/packages/cli/src/lib/packager/index.ts index 5584e1fc21..564317e46a 100644 --- a/packages/cli/src/lib/packager/index.ts +++ b/packages/cli/src/lib/packager/index.ts @@ -15,10 +15,14 @@ */ import fs from 'fs-extra'; -import { resolve as resolvePath, relative as relativePath } from 'path'; +import { + join as joinPath, + resolve as resolvePath, + relative as relativePath, +} from 'path'; import { paths } from '../paths'; import { run } from '../run'; -import tar from 'tar'; +import tar, { CreateOptions } from 'tar'; import { tmpdir } from 'os'; type LernaPackage = { @@ -53,6 +57,12 @@ type Options = { * If set to true, the target packages are built before they are packaged into the workspace. */ buildDependencies?: boolean; + + /** + * If set, creates a skeleton tarball that contains all package.json files + * with the same structure as the workspace dir. + */ + skeleton?: 'skeleton.tar'; }; /** @@ -89,6 +99,24 @@ export async function createDistWorkspace( const dest = typeof file === 'string' ? file : file.dest; await fs.copy(paths.resolveTargetRoot(src), resolvePath(targetDir, dest)); } + + if (options.skeleton) { + const skeletonFiles = targets.map(target => { + const dir = relativePath(paths.targetRoot, target.location); + return joinPath(dir, 'package.json'); + }); + + await tar.create( + { + file: resolvePath(targetDir, options.skeleton), + cwd: targetDir, + portable: true, + noMtime: true, + } as CreateOptions & { noMtime: boolean }, + skeletonFiles, + ); + } + return targetDir; } From b6fcf9985356371e4e1e34900827f288a919e14f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Mon, 7 Sep 2020 15:35:39 +0200 Subject: [PATCH 444/656] Fix typo in gRPC template (#2315) --- .../sample-templates/springboot-grpc-template/template.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/template.yaml b/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/template.yaml index c6189fe7c8..32b9383855 100644 --- a/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/template.yaml +++ b/plugins/scaffolder-backend/sample-templates/springboot-grpc-template/template.yaml @@ -2,11 +2,12 @@ apiVersion: backstage.io/v1alpha1 kind: Template metadata: name: springboot-template - title: Spring Boot GRPC Service + title: Spring Boot gRPC Service description: Create a simple microservice using gRPC and Spring Boot Java tags: - recommended - java + - grpc spec: owner: service@example.com templater: cookiecutter @@ -29,4 +30,4 @@ spec: title: Port type: integer default: 8080 - description: The port to run the GRPC service on + description: The port to run the gRPC service on From 969cf48858cd34e0dc400dc8039d1492a0fc29ec Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Mon, 7 Sep 2020 16:56:03 +0200 Subject: [PATCH 445/656] [TechDocs] migrate techdocs to use new routing/catalog api (#2312) * migrate techdocs to use new routing * use new techdocs routing in default app * new EntityPageDocs and Router components * remove unused code * remove unused import --- packages/app/src/App.tsx | 2 + .../app/src/components/catalog/EntityPage.tsx | 17 ++++++- .../default-app/packages/app/src/App.tsx | 2 + .../app/src/components/catalog/EntityPage.tsx | 17 +++++++ .../src/EntityPageDocs.tsx} | 19 ++++---- plugins/techdocs/src/Router.tsx | 48 +++++++++++++++++++ plugins/techdocs/src/index.ts | 1 + plugins/techdocs/src/plugin.ts | 15 +++--- .../src/reader/components/TechDocsHome.tsx | 11 +++-- 9 files changed, 108 insertions(+), 24 deletions(-) rename plugins/{catalog/src/components/EntityPageDocs/EntityDocsPage.tsx => techdocs/src/EntityPageDocs.tsx} (72%) create mode 100644 plugins/techdocs/src/Router.tsx diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index cb38726716..8ddf53783d 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -27,6 +27,7 @@ import { apis } from './apis'; import { hot } from 'react-hot-loader/root'; import { providers } from './identityProviders'; import { Router as CatalogRouter } from '@backstage/plugin-catalog'; +import { Router as DocsRouter } from '@backstage/plugin-techdocs'; import { Route, Routes, Navigate } from 'react-router'; import { EntityPage } from './components/catalog/EntityPage'; @@ -58,6 +59,7 @@ const AppRoutes = () => ( path="/catalog/*" element={} /> + } /> {...deprecatedAppRoutes} diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx index 34fc5c470e..8783df9452 100644 --- a/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/app/src/components/catalog/EntityPage.tsx @@ -16,6 +16,7 @@ import { Router as ApiDocsRouter } from '@backstage/plugin-api-docs'; import { Router as GitHubActionsRouter } from '@backstage/plugin-github-actions'; import { Router as SentryRouter } from '@backstage/plugin-sentry'; +import { EmbeddedDocsRouter as DocsRouter } from '@backstage/plugin-techdocs'; import React from 'react'; import { AboutCard, @@ -55,6 +56,11 @@ const ServiceEntityPage = ({ entity }: { entity: Entity }) => ( title="API" element={} /> + } + /> ); @@ -75,9 +81,13 @@ const WebsiteEntityPage = ({ entity }: { entity: Entity }) => ( title="Sentry" element={} /> + } + /> ); - const DefaultEntityPage = ({ entity }: { entity: Entity }) => ( ( title="Overview" element={} /> + } + /> ); diff --git a/packages/create-app/templates/default-app/packages/app/src/App.tsx b/packages/create-app/templates/default-app/packages/app/src/App.tsx index f002bbc7c7..3e6a0ef00e 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.tsx @@ -10,6 +10,7 @@ import * as plugins from './plugins'; import { AppSidebar } from './sidebar'; import { Route, Routes, Navigate } from 'react-router'; import { Router as CatalogRouter } from '@backstage/plugin-catalog'; +import { Router as DocsRouter } from '@backstage/plugin-techdocs'; import { EntityPage } from './components/catalog/EntityPage'; const app = createApp({ @@ -33,6 +34,7 @@ const App: FC<{}> = () => ( path="/catalog/*" element={} /> + } /> {deprecatedAppRoutes} diff --git a/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx b/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx index be22003f4f..559a838135 100644 --- a/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx @@ -15,6 +15,8 @@ */ import { Router as ApiDocsRouter } from '@backstage/plugin-api-docs'; import { Router as GitHubActionsRouter } from '@backstage/plugin-github-actions'; +import { EmbeddedDocsRouter as DocsRouter } from '@backstage/plugin-techdocs'; + import React from 'react'; import { EntityPageLayout, @@ -44,6 +46,11 @@ const ServiceEntityPage = ({ entity }: { entity: Entity }) => ( title="API" element={} /> + } + /> ); @@ -59,6 +66,11 @@ const WebsiteEntityPage = ({ entity }: { entity: Entity }) => ( title="CI/CD" element={} /> + } + /> ); @@ -69,6 +81,11 @@ const DefaultEntityPage = ({ entity }: { entity: Entity }) => ( title="Overview" element={} /> + } + /> ); diff --git a/plugins/catalog/src/components/EntityPageDocs/EntityDocsPage.tsx b/plugins/techdocs/src/EntityPageDocs.tsx similarity index 72% rename from plugins/catalog/src/components/EntityPageDocs/EntityDocsPage.tsx rename to plugins/techdocs/src/EntityPageDocs.tsx index ceba7e3200..d10c7a5932 100644 --- a/plugins/catalog/src/components/EntityPageDocs/EntityDocsPage.tsx +++ b/plugins/techdocs/src/EntityPageDocs.tsx @@ -16,19 +16,16 @@ import React from 'react'; import { Entity } from '@backstage/catalog-model'; -import { Reader } from '@backstage/plugin-techdocs'; -import { Content } from '@backstage/core'; +import { Reader } from './reader'; export const EntityPageDocs = ({ entity }: { entity: Entity }) => { return ( - - - + ); }; diff --git a/plugins/techdocs/src/Router.tsx b/plugins/techdocs/src/Router.tsx new file mode 100644 index 0000000000..45daa3f3d9 --- /dev/null +++ b/plugins/techdocs/src/Router.tsx @@ -0,0 +1,48 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { Route, Routes } from 'react-router-dom'; +import { Entity } from '@backstage/catalog-model'; + +import { + rootRouteRef, + rootDocsRouteRef, + rootCatalogDocsRouteRef, +} from './plugin'; +import { TechDocsHome } from './reader/components/TechDocsHome'; +import { TechDocsPage } from './reader/components/TechDocsPage'; +import { EntityPageDocs } from './EntityPageDocs'; + +export const Router = () => { + return ( + + } /> + } /> + + ); +}; + +export const EmbeddedDocsRouter = ({ entity }: { entity: Entity }) => { + return ( + + } + /> + + ); +}; diff --git a/plugins/techdocs/src/index.ts b/plugins/techdocs/src/index.ts index 2a412d1b20..1726e0daf3 100644 --- a/plugins/techdocs/src/index.ts +++ b/plugins/techdocs/src/index.ts @@ -15,5 +15,6 @@ */ export { plugin } from './plugin'; +export { Router, EmbeddedDocsRouter } from './Router'; export * from './reader'; export * from './api'; diff --git a/plugins/techdocs/src/plugin.ts b/plugins/techdocs/src/plugin.ts index 9b09544427..e75d488595 100644 --- a/plugins/techdocs/src/plugin.ts +++ b/plugins/techdocs/src/plugin.ts @@ -30,23 +30,22 @@ */ import { createPlugin, createRouteRef } from '@backstage/core'; -import { TechDocsHome } from './reader/components/TechDocsHome'; -import { TechDocsPage } from './reader/components/TechDocsPage'; export const rootRouteRef = createRouteRef({ - path: '/docs', + path: '', title: 'TechDocs Landing Page', }); export const rootDocsRouteRef = createRouteRef({ - path: '/docs/:entityId/*', + path: ':entityId/*', + title: 'Docs', +}); + +export const rootCatalogDocsRouteRef = createRouteRef({ + path: '*', title: 'Docs', }); export const plugin = createPlugin({ id: 'techdocs', - register({ router }) { - router.addRoute(rootRouteRef, TechDocsHome); - router.addRoute(rootDocsRouteRef, TechDocsPage); - }, }); diff --git a/plugins/techdocs/src/reader/components/TechDocsHome.tsx b/plugins/techdocs/src/reader/components/TechDocsHome.tsx index 17b9fd36f7..e51de8f57f 100644 --- a/plugins/techdocs/src/reader/components/TechDocsHome.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsHome.tsx @@ -16,11 +16,12 @@ import React from 'react'; import { useAsync } from 'react-use'; -import { useNavigate } from 'react-router-dom'; +import { useNavigate, generatePath } from 'react-router-dom'; import { Grid } from '@material-ui/core'; import { ItemCard, Progress, useApi } from '@backstage/core'; import { TechDocsPageWrapper } from './TechDocsPageWrapper'; import { catalogApiRef } from '@backstage/plugin-catalog'; +import { rootDocsRouteRef } from '../../plugin'; export const TechDocsHome = () => { const catalogApi = useApi(catalogApiRef); @@ -67,9 +68,11 @@ export const TechDocsHome = () => { navigate( - `/docs/${entity.kind}:${ - entity.metadata.namespace ?? '' - }:${entity.metadata.name}`, + generatePath(rootDocsRouteRef.path, { + entityId: `${entity.kind}:${ + entity.metadata.namespace ?? '' + }:${entity.metadata.name}`, + }), ) } title={entity.metadata.name} From 2133418485143ad4ace37713f14fb64ed8150f89 Mon Sep 17 00:00:00 2001 From: NetPenguins Date: Mon, 7 Sep 2020 10:56:11 -0400 Subject: [PATCH 446/656] Entity needed to be passed to logs component. --- .../components/WorkflowRunDetails/WorkflowRunDetails.tsx | 9 ++++++--- .../src/components/WorkflowRunLogs/WorkflowRunLogs.tsx | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx b/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx index 951a89dc71..21b47861d7 100644 --- a/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx +++ b/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx @@ -72,7 +72,7 @@ const useStyles = makeStyles(theme => ({ }, })); -const JobsList = ({ jobs }: { jobs?: Jobs }) => { +const JobsList = ({ jobs, entity }: { jobs?: Jobs; entity: Entity }) => { const classes = useStyles(); return ( @@ -84,6 +84,7 @@ const JobsList = ({ jobs }: { jobs?: Jobs }) => { className={ job.status !== 'success' ? classes.failed : classes.success } + entity={entity} /> ))} @@ -112,7 +113,7 @@ const StepView = ({ step }: { step: Step }) => { ); }; -const JobListItem = ({ job, className }: { job: Job; className: string }) => { +const JobListItem = ({ job, className, entity }: { job: Job; className: string; entity: Entity }) => { const classes = useStyles(); return ( { : } @@ -234,7 +237,7 @@ export const WorkflowRunDetails = ({ entity }: { entity: Entity }) => { {jobs.loading ? ( ) : ( - + )} diff --git a/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx b/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx index 7d83647456..804914fd3b 100644 --- a/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx +++ b/plugins/github-actions/src/components/WorkflowRunLogs/WorkflowRunLogs.tsx @@ -89,7 +89,7 @@ const DisplayLog = ({ jobLogs, className }: { jobLogs: any; className: string }) /** * A component for Run Logs visualization. */ -export const WorkflowRunLogs = ({ runId, inProgress, entity }:{ runId: string, inProgress: boolean, entity: Entity }) => { +export const WorkflowRunLogs = ({ entity, runId, inProgress }:{ entity: Entity, runId: string, inProgress: boolean }) => { const classes = useStyles(); const projectName = useProjectName(entity); From 3ec99fbc55119810861c9861789d6713709c3603 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Sep 2020 17:30:57 +0200 Subject: [PATCH 447/656] cli: make skipLibCheck default in tsconfig, but provide tsc:full --- .github/workflows/ci.yml | 2 +- .github/workflows/master-win.yml | 2 +- .github/workflows/master.yml | 2 +- docs/getting-started/development-environment.md | 1 + package.json | 1 + packages/cli/config/tsconfig.json | 1 + packages/create-app/templates/default-app/package.json.hbs | 1 + packages/create-app/templates/default-app/tsconfig.json | 3 +-- 8 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2246a1dc09..0a094a10b3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -76,7 +76,7 @@ jobs: run: yarn lerna -- run lint --since origin/master - name: type checking and declarations - run: yarn tsc --incremental false + run: yarn tsc:full - name: build changed packages if: ${{ steps.yarn-lock.outcome == 'success' }} diff --git a/.github/workflows/master-win.yml b/.github/workflows/master-win.yml index 5951721f68..3f65cf9aec 100644 --- a/.github/workflows/master-win.yml +++ b/.github/workflows/master-win.yml @@ -43,7 +43,7 @@ jobs: run: yarn lerna -- run lint - name: type checking and declarations - run: yarn tsc --incremental false + run: yarn tsc:full - name: verify type dependencies run: yarn lint:type-deps diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index b5c4fdf370..469ef20cda 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -51,7 +51,7 @@ jobs: run: yarn lerna -- run lint - name: type checking and declarations - run: yarn tsc --incremental false + run: yarn tsc:full - name: build run: yarn build diff --git a/docs/getting-started/development-environment.md b/docs/getting-started/development-environment.md index 421ce6d2c5..9c75c8eabf 100644 --- a/docs/getting-started/development-environment.md +++ b/docs/getting-started/development-environment.md @@ -65,6 +65,7 @@ yarn storybook # Start local storybook, useful for working on components in @bac yarn workspace @backstage/plugin-welcome start # Serve welcome plugin only, also supports --check yarn tsc # Run typecheck, use --watch for watch mode +yarn tsc:full # Run full type checking, for example without skipLibCheck, use in CI yarn build # Build published versions of packages, depends on tsc diff --git a/package.json b/package.json index 93f8f694a6..c64b7f6951 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "start-backend": "yarn workspace example-backend start", "build": "lerna run build", "tsc": "tsc", + "tsc:full": "tsc --skipLibCheck false --incremental false", "clean": "backstage-cli clean && lerna run clean", "diff": "lerna run diff --", "test": "lerna run test --since origin/master -- --coverage", diff --git a/packages/cli/config/tsconfig.json b/packages/cli/config/tsconfig.json index ce031bc5e7..ef1a8df353 100644 --- a/packages/cli/config/tsconfig.json +++ b/packages/cli/config/tsconfig.json @@ -25,6 +25,7 @@ "removeComments": false, "resolveJsonModule": true, "sourceMap": false, + "skipLibCheck": true, "strict": true, "strictBindCallApply": true, "strictFunctionTypes": true, diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs index af4384318a..b95b5bbc5b 100644 --- a/packages/create-app/templates/default-app/package.json.hbs +++ b/packages/create-app/templates/default-app/package.json.hbs @@ -9,6 +9,7 @@ "start": "yarn workspace app start", "build": "lerna run build", "tsc": "tsc", + "tsc:full": "tsc --skipLibCheck false --incremental false", "clean": "backstage-cli clean && lerna run clean", "diff": "lerna run diff --", "test": "lerna run test --since origin/master -- --coverage", diff --git a/packages/create-app/templates/default-app/tsconfig.json b/packages/create-app/templates/default-app/tsconfig.json index b1ec99b986..ba3f90177d 100644 --- a/packages/create-app/templates/default-app/tsconfig.json +++ b/packages/create-app/templates/default-app/tsconfig.json @@ -9,7 +9,6 @@ "exclude": ["node_modules"], "compilerOptions": { "outDir": "dist-types", - "rootDir": ".", - "skipLibCheck": true + "rootDir": "." } } From 0a1416d476aecc8de93ffa74abf08ca8f6025cb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Mon, 7 Sep 2020 19:44:17 +0200 Subject: [PATCH 448/656] [Docs] Clarify what is core features (#2314) --- docs/features/software-catalog/index.md | 2 +- docs/features/software-templates/index.md | 3 ++- microsite/sidebars.json | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/features/software-catalog/index.md b/docs/features/software-catalog/index.md index 07b22808cd..9b5de16472 100644 --- a/docs/features/software-catalog/index.md +++ b/docs/features/software-catalog/index.md @@ -1,7 +1,7 @@ --- id: software-catalog-overview title: Backstage Service Catalog (alpha) -sidebar_label: Backstage Service Catalog +sidebar_label: Overview --- ## What is a Service Catalog? diff --git a/docs/features/software-templates/index.md b/docs/features/software-templates/index.md index b594cfce2a..8989fa35eb 100644 --- a/docs/features/software-templates/index.md +++ b/docs/features/software-templates/index.md @@ -1,6 +1,7 @@ --- id: software-templates-index -title: Software Templates +title: Backstage Software Templates +sidebar_label: Overview --- The Software Templates part of Backstage is a tool that can help you create diff --git a/microsite/sidebars.json b/microsite/sidebars.json index d31c14fd1d..d1d1a0ecc4 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -31,7 +31,7 @@ ] } ], - "Features": [ + "Core Features": [ { "type": "subcategory", "label": "Software Catalog", @@ -46,7 +46,7 @@ }, { "type": "subcategory", - "label": "Software creation templates", + "label": "Software Templates", "ids": [ "features/software-templates/software-templates-index", "features/software-templates/adding-templates", From 66a2a870bccab753ff80f9d093f3519850bb36d2 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Sep 2020 20:04:23 +0200 Subject: [PATCH 449/656] plugins/tech-radar: migrate to new plugin pattern and avoid using api for config --- packages/app/src/App.tsx | 5 + packages/app/src/apis.ts | 10 -- .../default-app/packages/app/src/App.tsx | 5 + .../default-app/packages/app/src/apis.ts | 10 -- plugins/tech-radar/README.md | 108 ++++------------- plugins/tech-radar/dev/index.tsx | 12 +- plugins/tech-radar/package.json | 2 +- plugins/tech-radar/src/api.ts | 35 ------ .../src/components/RadarComponent.test.tsx | 2 +- .../src/components/RadarPage.test.tsx | 110 ++++-------------- .../tech-radar/src/components/RadarPage.tsx | 66 ++++++----- plugins/tech-radar/src/index.ts | 2 + plugins/tech-radar/src/plugin.ts | 4 - 13 files changed, 102 insertions(+), 269 deletions(-) diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 8ddf53783d..8482bc9a8a 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -28,6 +28,7 @@ import { hot } from 'react-hot-loader/root'; import { providers } from './identityProviders'; import { Router as CatalogRouter } from '@backstage/plugin-catalog'; import { Router as DocsRouter } from '@backstage/plugin-techdocs'; +import { Router as TechRadarRouter } from '@backstage/plugin-tech-radar'; import { Route, Routes, Navigate } from 'react-router'; import { EntityPage } from './components/catalog/EntityPage'; @@ -60,6 +61,10 @@ const AppRoutes = () => ( element={} /> } /> + } + /> {...deprecatedAppRoutes} diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index b391e95d62..b79a6850bd 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -51,8 +51,6 @@ import { LighthouseRestApi, } from '@backstage/plugin-lighthouse'; -import { techRadarApiRef, TechRadar } from '@backstage/plugin-tech-radar'; - import { CircleCIApi, circleCIApiRef } from '@backstage/plugin-circleci'; import { catalogApiRef, CatalogClient } from '@backstage/plugin-catalog'; @@ -182,14 +180,6 @@ export const apis = (config: ConfigApi) => { }), ); - builder.add( - techRadarApiRef, - new TechRadar({ - width: 1500, - height: 800, - }), - ); - builder.add(catalogApiRef, new CatalogClient({ discoveryApi })); builder.add(scaffolderApiRef, new ScaffolderApi({ discoveryApi })); diff --git a/packages/create-app/templates/default-app/packages/app/src/App.tsx b/packages/create-app/templates/default-app/packages/app/src/App.tsx index 3e6a0ef00e..06ef257931 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.tsx @@ -11,6 +11,7 @@ import { AppSidebar } from './sidebar'; import { Route, Routes, Navigate } from 'react-router'; import { Router as CatalogRouter } from '@backstage/plugin-catalog'; import { Router as DocsRouter } from '@backstage/plugin-techdocs'; +import { Router as TechRadarRouter } from '@backstage/plugin-tech-radar'; import { EntityPage } from './components/catalog/EntityPage'; const app = createApp({ @@ -35,6 +36,10 @@ const App: FC<{}> = () => ( element={} /> } /> + } + /> {deprecatedAppRoutes} diff --git a/packages/create-app/templates/default-app/packages/app/src/apis.ts b/packages/create-app/templates/default-app/packages/app/src/apis.ts index 14351eaba7..ba4343801f 100644 --- a/packages/create-app/templates/default-app/packages/app/src/apis.ts +++ b/packages/create-app/templates/default-app/packages/app/src/apis.ts @@ -29,8 +29,6 @@ import { TechDocsStorageApi, } from '@backstage/plugin-techdocs'; -import { techRadarApiRef, TechRadar } from '@backstage/plugin-tech-radar'; - import { catalogApiRef, CatalogClient } from '@backstage/plugin-catalog'; import { CircleCIApi, circleCIApiRef } from '@backstage/plugin-circleci'; @@ -72,14 +70,6 @@ export const apis = (config: ConfigApi) => { builder.add(scaffolderApiRef, new ScaffolderApi({ discoveryApi })); - builder.add( - techRadarApiRef, - new TechRadar({ - width: 1500, - height: 800, - }), - ); - builder.add( techdocsStorageApiRef, new TechDocsStorageApi({ apiOrigin: techdocsStorageUrl }), diff --git a/plugins/tech-radar/README.md b/plugins/tech-radar/README.md index fb9d220b8c..cbe4dd22eb 100644 --- a/plugins/tech-radar/README.md +++ b/plugins/tech-radar/README.md @@ -29,71 +29,34 @@ For either simple or advanced installations, you'll need to add the dependency u yarn add @backstage/plugin-tech-radar ``` -### Simple Configuration +### Configuration -In your `apis.ts` set up the simple "out of the box" implementation for Tech Radar: - -```ts -import { ApiHolder, ApiRegistry } from '@backstage/core'; -import { - techRadarApiRef, - TechRadar, -} from '@backstage/plugin-tech-radar'; - -const builder = ApiRegistry.builder(); - -builder.add(techRadarApiRef, new TechRadar({ - width: 1400, - height: 800 -)); - -export default builder.build() as ApiHolder; -``` - -Congrats, you're done! We'll just load it with [example data](src/sampleData.ts) to get you started. Just go to to see it live in action. - -And if you'd like to configure it more, such as providing it with your own data, see the `TechRadarApi` TypeScript interface below for the options: - -```ts -export interface TechRadarComponentProps { - width: number; - height: number; - getData?: () => Promise; - svgProps?: object; -} - -export interface TechRadarApi extends TechRadarComponentProps { - title?: string; - subtitle?: string; -} -``` - -You can see the API directly over at [src/api.ts](./src/api.ts). - -### Advanced Configuration - -This way won't expose an `/tech-radar` path. Instead, you'll need to create your own Backstage plugin and use the Tech Radar as any other React UI component. - -In your Backstage app, run the following command: - -```sh -yarn create-plugin -``` - -In your plugin, in any React component you'd like to import the Tech Radar, do the following: +Modify your app routes to include the Router component exported from the tech radar, for example: ```tsx -import { TechRadarComponent } from '@backstage/plugin-tech-radar'; +import { Router as TechRadarRouter } from '@backstage/plugin-tech-radar'; -function MyCustomRadar() { - return ; -} +// Inside App component + + {/* other routes ... */} + } + /> + {/* other routes ... */} +; ``` -If you'd like to configure it more, see the `TechRadarComponentProps` TypeScript interface for options: +If you'd like to configure it more, see the `TechRadarPageProps` and `TechRadarComponentProps` types for options: ```ts -export interface TechRadarComponentProps { +export type TechRadarPageProps = TechRadarComponentProps & { + title?: string; + subtitle?: string; + pageTitle?: string; +}; + +export interface TechRadarPageProps { width: number; height: number; getData?: () => Promise; @@ -101,8 +64,6 @@ export interface TechRadarComponentProps { } ``` -You can see the API directly over at [src/api.ts](./src/api.ts). - ## Frequently Asked Questions ### Who created the Tech Radar? @@ -111,7 +72,7 @@ You can see the API directly over at [src/api.ts](./src/api.ts). ### How do I load in my own data? -It's simple. In both the Simple (Backstage plugin) and Advanced (React component) configurations, you can pass through a `getData` prop which expects a `Promise` signature. See more in [src/api.ts](./src/api.ts). +It's simple, you can pass through a `getData` prop which expects a `Promise` signature. Here's an example: @@ -133,42 +94,21 @@ const getHardCodedData = () => ], }); -// Simple -builder.add(techRadarApiRef, new TechRadar({ - width: 1400, - height: 800, - getData: getHardCodedData -)); - -// Advanced - +; ``` ### How do I write tests? You can use the `svgProps` option to pass custom React props to the `` element we create for the Tech Radar. This complements well with the `data-testid` attribute and the `@testing-library/react` library we use in Backstage. -```ts -// Simple -builder.add( - techRadarApiRef, - new TechRadar({ - width: 1400, - height: 800, - svgProps: { - 'data-testid': 'tech-radar-svg', - }, - }), -); - -// Advanced +```tsx ; +/> // Then, in your tests... // const { getByTestId } = render(...); diff --git a/plugins/tech-radar/dev/index.tsx b/plugins/tech-radar/dev/index.tsx index ac19b63a90..92eb6da567 100644 --- a/plugins/tech-radar/dev/index.tsx +++ b/plugins/tech-radar/dev/index.tsx @@ -15,14 +15,6 @@ */ import { createDevApp } from '@backstage/dev-utils'; -import { plugin } from '../src/plugin'; -import { techRadarApiRef, TechRadar } from '../src'; +import { plugin } from '../src'; -createDevApp() - .registerPlugin(plugin) - .registerApiFactory({ - implements: techRadarApiRef, - deps: {}, - factory: () => new TechRadar({ width: 1500, height: 800 }), - }) - .render(); +createDevApp().registerPlugin(plugin).render(); diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index 4039f40878..f5639c7581 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -22,7 +22,7 @@ }, "dependencies": { "@backstage/core": "^0.1.1-alpha.21", - "@backstage/test-utils-core": "^0.1.1-alpha.21", + "@backstage/test-utils": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", diff --git a/plugins/tech-radar/src/api.ts b/plugins/tech-radar/src/api.ts index 856cf4ff3c..7a6e790136 100644 --- a/plugins/tech-radar/src/api.ts +++ b/plugins/tech-radar/src/api.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -import { createApiRef } from '@backstage/core'; import { MovedState } from './utils/types'; /** @@ -72,37 +71,3 @@ export interface TechRadarApi extends TechRadarComponentProps { subtitle?: string; pageTitle?: string; } - -export const techRadarApiRef = createApiRef({ - id: 'plugin.techradar', - description: 'Used by the Tech Radar to render the visualization', -}); - -export class TechRadar implements TechRadarApi { - // Default columns - public width: TechRadarApi['width']; - public height: TechRadarApi['height']; - public getData: TechRadarApi['getData']; - public svgProps: TechRadarApi['svgProps']; - public title: TechRadarApi['title']; - public subtitle: TechRadarApi['subtitle']; - public pageTitle: TechRadarApi['pageTitle']; - - constructor(overrideOptions: TechRadarApi) { - const defaultOptions: Partial = { - title: 'Tech Radar', - subtitle: 'Pick the recommended technologies for your projects', - pageTitle: 'Company Radar', - }; - - const options = { ...defaultOptions, ...overrideOptions }; - - this.width = options.width; - this.height = options.height; - this.getData = options.getData; - this.svgProps = options.svgProps; - this.title = options.title; - this.subtitle = options.subtitle; - this.pageTitle = options.pageTitle; - } -} diff --git a/plugins/tech-radar/src/components/RadarComponent.test.tsx b/plugins/tech-radar/src/components/RadarComponent.test.tsx index 2f3fcff198..5591d74b82 100644 --- a/plugins/tech-radar/src/components/RadarComponent.test.tsx +++ b/plugins/tech-radar/src/components/RadarComponent.test.tsx @@ -19,7 +19,7 @@ import { render, waitForElement } from '@testing-library/react'; import { ThemeProvider } from '@material-ui/core'; import { lightTheme } from '@backstage/theme'; import { ApiRegistry, ApiProvider, errorApiRef } from '@backstage/core'; -import { withLogCollector } from '@backstage/test-utils-core'; +import { withLogCollector } from '@backstage/test-utils'; import GetBBoxPolyfill from '../utils/polyfills/getBBox'; import RadarComponent from './RadarComponent'; diff --git a/plugins/tech-radar/src/components/RadarPage.test.tsx b/plugins/tech-radar/src/components/RadarPage.test.tsx index c318985acd..97fae16380 100644 --- a/plugins/tech-radar/src/components/RadarPage.test.tsx +++ b/plugins/tech-radar/src/components/RadarPage.test.tsx @@ -19,11 +19,10 @@ import { render, waitForElement } from '@testing-library/react'; import { ThemeProvider } from '@material-ui/core'; import { lightTheme } from '@backstage/theme'; import { ApiRegistry, ApiProvider, errorApiRef } from '@backstage/core'; -import { withLogCollector } from '@backstage/test-utils-core'; import GetBBoxPolyfill from '../utils/polyfills/getBBox'; -import { techRadarApiRef, TechRadar } from '../index'; -import RadarPage from './RadarPage'; +import { RadarPage } from './RadarPage'; +import { MockErrorApi, wrapInTestApp } from '@backstage/test-utils'; describe('RadarPage', () => { beforeAll(() => { @@ -35,24 +34,18 @@ describe('RadarPage', () => { }); it('should render a progress bar', async () => { - const errorApi = { post: () => {} }; - const techRadarApi = new TechRadar({ + const techRadarProps = { width: 1200, height: 800, svgProps: { 'data-testid': 'tech-radar-svg' }, - }); + }; const { getByTestId, queryByTestId } = render( - - - - - , + wrapInTestApp( + + + , + ), ); expect(getByTestId('progress')).toBeInTheDocument(); @@ -61,24 +54,18 @@ describe('RadarPage', () => { }); it('should render a header with a svg', async () => { - const errorApi = { post: () => {} }; - const techRadarApi = new TechRadar({ + const techRadarProps = { width: 1200, height: 800, svgProps: { 'data-testid': 'tech-radar-svg' }, - }); + }; const { getByText, getByTestId } = render( - - - - - , + wrapInTestApp( + + + , + ), ); await waitForElement(() => getByTestId('tech-radar-svg')); @@ -90,78 +77,29 @@ describe('RadarPage', () => { }); it('should call the errorApi if load fails', async () => { - const errorApi = { post: jest.fn() }; + const errorApi = new MockErrorApi({ collect: true }); const techRadarLoadFail = () => Promise.reject(new Error('404 Page Not Found')); - const techRadarApi = new TechRadar({ + const techRadarProps = { width: 1200, height: 800, getData: techRadarLoadFail, svgProps: { 'data-testid': 'tech-radar-svg' }, - }); + }; const { queryByTestId } = render( - - + + , ); await waitForElement(() => !queryByTestId('progress')); - expect(errorApi.post).toHaveBeenCalledTimes(1); - expect(errorApi.post).toHaveBeenCalledWith(new Error('404 Page Not Found')); + expect(errorApi.getErrors()).toEqual([ + { error: new Error('404 Page Not Found'), context: undefined }, + ]); expect(queryByTestId('tech-radar-svg')).not.toBeInTheDocument(); }); - - it('should not render without errorApiRef', () => { - const techRadarApi = new TechRadar({ - width: 1200, - height: 800, - }); - - expect( - withLogCollector(['error'], () => { - expect(() => { - render( - - - - - , - ); - }).toThrow(); - }).error[0], - ).toMatch( - /^Error: Uncaught \[Error: No implementation available for apiRef{core.error}\]/, - ); - }); - - it('should not render without techRadarApiRef', () => { - const errorApi = { post: () => {} }; - - expect( - withLogCollector(['error'], () => { - expect(() => { - render( - - - - - , - ); - }).toThrow(); - }).error[0], - ).toMatch( - /^Error: Uncaught \[Error: No implementation available for apiRef{plugin.techradar}\]/, - ); - }); }); diff --git a/plugins/tech-radar/src/components/RadarPage.tsx b/plugins/tech-radar/src/components/RadarPage.tsx index 1aefb72eca..519c9afeee 100644 --- a/plugins/tech-radar/src/components/RadarPage.tsx +++ b/plugins/tech-radar/src/components/RadarPage.tsx @@ -24,36 +24,46 @@ import { HeaderLabel, SupportButton, pageTheme, - useApi, } from '@backstage/core'; import RadarComponent from '../components/RadarComponent'; -import { techRadarApiRef, TechRadarApi } from '../api'; +import { TechRadarComponentProps } from '../api'; -const RadarPage = (): JSX.Element => { - const techRadarApi = useApi(techRadarApiRef); - - return ( - -
- - -
- - - - This is used for visualizing the official guidelines of different - areas of software development such as languages, frameworks, - infrastructure and processes. - - - - - - - - -
- ); +export type TechRadarPageProps = TechRadarComponentProps & { + title?: string; + subtitle?: string; + pageTitle?: string; }; -export default RadarPage; +export const RadarPage = ({ + title, + subtitle, + pageTitle, + ...props +}: TechRadarPageProps): JSX.Element => ( + +
+ + +
+ + + + This is used for visualizing the official guidelines of different + areas of software development such as languages, frameworks, + infrastructure and processes. + + + + + + + + +
+); + +RadarPage.defaultProps = { + title: 'Tech Radar', + subtitle: 'Pick the recommended technologies for your projects', + pageTitle: 'Company Radar', +}; diff --git a/plugins/tech-radar/src/index.ts b/plugins/tech-radar/src/index.ts index df22e57558..d7b4921e9a 100644 --- a/plugins/tech-radar/src/index.ts +++ b/plugins/tech-radar/src/index.ts @@ -16,6 +16,8 @@ export { plugin } from './plugin'; +export { RadarPage as Router } from './components/RadarPage'; + /** * The TypeScript API for configuring Tech Radar. */ diff --git a/plugins/tech-radar/src/plugin.ts b/plugins/tech-radar/src/plugin.ts index 3497a66f5d..d8dc41af2e 100644 --- a/plugins/tech-radar/src/plugin.ts +++ b/plugins/tech-radar/src/plugin.ts @@ -15,11 +15,7 @@ */ import { createPlugin } from '@backstage/core'; -import RadarPage from './components/RadarPage'; export const plugin = createPlugin({ id: 'tech-radar', - register({ router }) { - router.registerRoute('/tech-radar', RadarPage); - }, }); From 37e72cf4575897b026c4399ca95115e2bc2233fe Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Mon, 7 Sep 2020 22:18:10 +0200 Subject: [PATCH 450/656] fix: lint & typos --- .../app/src/components/catalog/EntityPage.tsx | 4 ++-- .../app/src/components/catalog/EntityPage.tsx | 4 ++-- plugins/circleci/src/components/Router.tsx | 16 ++++++++++++++++ plugins/circleci/src/constants.ts | 16 ++++++++++++++++ 4 files changed, 36 insertions(+), 4 deletions(-) diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx index fd15b75b6c..257fde3c24 100644 --- a/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/app/src/components/catalog/EntityPage.tsx @@ -15,7 +15,7 @@ */ import { Router as GitHubActionsRouter, - isPluginApplicableToEntity as isGitHubActionsAvaiable, + isPluginApplicableToEntity as isGitHubActionsAvailable, } from '@backstage/plugin-github-actions'; import { Router as CircleCIRouter, @@ -38,7 +38,7 @@ const CICDSwitcher = ({ entity }: { entity: Entity }) => { // This component is just an example of how you can implement your company's logic in entity page. // You can for example enforce that all components of type 'service' should use GitHubActions switch (true) { - case isGitHubActionsAvaiable(entity): + case isGitHubActionsAvailable(entity): return ; case isCircleCIAvailable(entity): return ; diff --git a/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx b/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx index 915928b4f5..5480d8218a 100644 --- a/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/components/catalog/EntityPage.tsx @@ -15,7 +15,7 @@ */ import { Router as GitHubActionsRouter, - isPluginApplicableToEntity as isGitHubActionsAvaiable, + isPluginApplicableToEntity as isGitHubActionsAvailable, } from '@backstage/plugin-github-actions'; import { Router as CircleCIRouter, @@ -38,7 +38,7 @@ const CICDSwitcher = ({ entity }: { entity: Entity }) => { // This component is just an example of how you can implement your company's logic in entity page. // You can for example enforce that all components of type 'service' should use GitHubActions switch (true) { - case isGitHubActionsAvaiable(entity): + case isGitHubActionsAvailable(entity): return ; case isCircleCIAvailable(entity): return ; diff --git a/plugins/circleci/src/components/Router.tsx b/plugins/circleci/src/components/Router.tsx index c99170b9d1..476ab26576 100644 --- a/plugins/circleci/src/components/Router.tsx +++ b/plugins/circleci/src/components/Router.tsx @@ -1,3 +1,19 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { Routes, Route } from 'react-router'; import { circleCIRouteRef, circleCIBuildRouteRef } from '../route-refs'; diff --git a/plugins/circleci/src/constants.ts b/plugins/circleci/src/constants.ts index 7d38837fd6..8c96db93e2 100644 --- a/plugins/circleci/src/constants.ts +++ b/plugins/circleci/src/constants.ts @@ -1 +1,17 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 const CIRCLECI_ANNOTATION = 'circleci.com/project-slug'; From b745142fa0bb8f8ea3125b3a0453c7fd02b94c06 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Mon, 7 Sep 2020 22:32:47 +0200 Subject: [PATCH 451/656] fix: annotation missing text --- plugins/circleci/src/components/Router.tsx | 3 +-- plugins/github-actions/src/components/Router.tsx | 4 ++-- plugins/rollbar/src/components/Router.tsx | 5 +---- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/plugins/circleci/src/components/Router.tsx b/plugins/circleci/src/components/Router.tsx index 476ab26576..282eac9111 100644 --- a/plugins/circleci/src/components/Router.tsx +++ b/plugins/circleci/src/components/Router.tsx @@ -30,8 +30,7 @@ export const isPluginApplicableToEntity = (entity: Entity) => export const Router = ({ entity }: { entity: Entity }) => !isPluginApplicableToEntity(entity) ? ( - `entity.metadata.annotations['{CIRCLECI_ANNOTATION}']` key is missing on - the entity. +
{CIRCLECI_ANNOTATION}
annotation is missing on the entity. ) : ( diff --git a/plugins/github-actions/src/components/Router.tsx b/plugins/github-actions/src/components/Router.tsx index 83c18ed483..7d340fb8b8 100644 --- a/plugins/github-actions/src/components/Router.tsx +++ b/plugins/github-actions/src/components/Router.tsx @@ -30,8 +30,8 @@ export const Router = ({ entity }: { entity: Entity }) => // TODO(shmidt-i): move warning to a separate standardized component !isPluginApplicableToEntity(entity) ? ( - `entity.metadata.annotations[' - {GITHUB_ACTIONS_ANNOTATION}']` key is missing on the entity.{' '} +
{GITHUB_ACTIONS_ANNOTATION}
annotation is missing on the + entity.
) : ( diff --git a/plugins/rollbar/src/components/Router.tsx b/plugins/rollbar/src/components/Router.tsx index c765c14f14..bcf325f281 100644 --- a/plugins/rollbar/src/components/Router.tsx +++ b/plugins/rollbar/src/components/Router.tsx @@ -32,10 +32,7 @@ type Props = { export const Router = ({ entity }: Props) => !isPluginApplicableToEntity(entity) ? ( -
-        entity.metadata.annotations['{ROLLBAR_ANNOTATION}']` key is missing on
-        the entity.
-      
+
{ROLLBAR_ANNOTATION}
annotation is missing on the entity.
) : ( From 0ffed8b711aa0b62c5b59ff8e60cec95f6fad5c6 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Mon, 7 Sep 2020 22:54:23 +0200 Subject: [PATCH 452/656] fix: 404 page --- packages/core-api/src/app/App.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core-api/src/app/App.tsx b/packages/core-api/src/app/App.tsx index bfa26b7547..ccdfc4fc7f 100644 --- a/packages/core-api/src/app/App.tsx +++ b/packages/core-api/src/app/App.tsx @@ -191,7 +191,7 @@ export class PrivateAppImpl implements BackstageApp { FeatureFlags.registeredFeatureFlags = registeredFeatureFlags; } - routes.push(} />); + routes.push(} />); return routes; } From 298851b31240fabcc1ba20bb126fb9f4e806c291 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Mon, 7 Sep 2020 23:03:33 +0200 Subject: [PATCH 453/656] feat(plugin-explore): migrate to new routing api --- packages/app/src/App.tsx | 4 +++- .../templates/default-app/packages/app/src/App.tsx | 5 ++++- plugins/explore/package.json | 3 ++- plugins/explore/src/components/ExplorePluginPage.tsx | 6 ++---- plugins/explore/src/components/Router.tsx | 10 ++++++++++ plugins/explore/src/index.ts | 1 + plugins/explore/src/plugin.ts | 7 ++----- 7 files changed, 24 insertions(+), 12 deletions(-) create mode 100644 plugins/explore/src/components/Router.tsx diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 8ddf53783d..759901c11e 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -28,6 +28,7 @@ import { hot } from 'react-hot-loader/root'; import { providers } from './identityProviders'; import { Router as CatalogRouter } from '@backstage/plugin-catalog'; import { Router as DocsRouter } from '@backstage/plugin-techdocs'; +import { Router as ExploreRouter } from '@backstage/plugin-explore'; import { Route, Routes, Navigate } from 'react-router'; import { EntityPage } from './components/catalog/EntityPage'; @@ -55,12 +56,13 @@ const deprecatedAppRoutes = app.getRoutes(); const AppRoutes = () => ( + } /> } /> - + } /> {...deprecatedAppRoutes} ); diff --git a/packages/create-app/templates/default-app/packages/app/src/App.tsx b/packages/create-app/templates/default-app/packages/app/src/App.tsx index 3e6a0ef00e..cd03e20f06 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.tsx @@ -11,6 +11,8 @@ import { AppSidebar } from './sidebar'; import { Route, Routes, Navigate } from 'react-router'; import { Router as CatalogRouter } from '@backstage/plugin-catalog'; import { Router as DocsRouter } from '@backstage/plugin-techdocs'; +import { Router as ExploreRouter } from '@backstage/plugin-explore'; + import { EntityPage } from './components/catalog/EntityPage'; const app = createApp({ @@ -30,12 +32,13 @@ const App: FC<{}> = () => ( + } /> } /> - + } /> {deprecatedAppRoutes} diff --git a/plugins/explore/package.json b/plugins/explore/package.json index 42176c45cf..1a4a44b9cd 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -29,7 +29,8 @@ "classnames": "^2.2.6", "react": "^16.13.1", "react-dom": "^16.13.1", - "react-use": "^15.3.3" + "react-use": "^15.3.3", + "react-router": "6.0.0-beta.0" }, "devDependencies": { "@backstage/cli": "^0.1.1-alpha.21", diff --git a/plugins/explore/src/components/ExplorePluginPage.tsx b/plugins/explore/src/components/ExplorePluginPage.tsx index 3e073ad322..4365157f62 100644 --- a/plugins/explore/src/components/ExplorePluginPage.tsx +++ b/plugins/explore/src/components/ExplorePluginPage.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import React, { FC } from 'react'; +import React from 'react'; import { makeStyles, Typography } from '@material-ui/core'; import { Content, @@ -107,7 +107,7 @@ const toolsCards = [ }, ]; -const ExplorePluginPage: FC<{}> = () => { +export const ExplorePluginPage = () => { const classes = useStyles(); return ( @@ -130,5 +130,3 @@ const ExplorePluginPage: FC<{}> = () => { ); }; - -export default ExplorePluginPage; diff --git a/plugins/explore/src/components/Router.tsx b/plugins/explore/src/components/Router.tsx new file mode 100644 index 0000000000..f2556b75ed --- /dev/null +++ b/plugins/explore/src/components/Router.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { Route, Routes } from 'react-router'; +import { ExplorePluginPage } from './ExplorePluginPage'; +import { rootRouteRef } from '../plugin'; + +export const Router = () => ( + + } /> + +); diff --git a/plugins/explore/src/index.ts b/plugins/explore/src/index.ts index 3a0a0fe2d3..ff7857cacd 100644 --- a/plugins/explore/src/index.ts +++ b/plugins/explore/src/index.ts @@ -15,3 +15,4 @@ */ export { plugin } from './plugin'; +export { Router } from './components/Router'; diff --git a/plugins/explore/src/plugin.ts b/plugins/explore/src/plugin.ts index 66e48a9b15..75ea892242 100644 --- a/plugins/explore/src/plugin.ts +++ b/plugins/explore/src/plugin.ts @@ -14,12 +14,9 @@ * limitations under the License. */ -import { createPlugin } from '@backstage/core'; -import ExplorePluginPage from './components/ExplorePluginPage'; +import { createPlugin, createRouteRef } from '@backstage/core'; +export const rootRouteRef = createRouteRef({ path: '', title: 'Explore' }); export const plugin = createPlugin({ id: 'explore', - register({ router }) { - router.registerRoute('/explore', ExplorePluginPage); - }, }); From 1486990b9100a03a7210052c6ee31d6339c7d80b Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Mon, 7 Sep 2020 23:28:00 +0200 Subject: [PATCH 454/656] fix: missing header --- plugins/explore/src/components/Router.tsx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/plugins/explore/src/components/Router.tsx b/plugins/explore/src/components/Router.tsx index f2556b75ed..becb2522d0 100644 --- a/plugins/explore/src/components/Router.tsx +++ b/plugins/explore/src/components/Router.tsx @@ -1,3 +1,19 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { Route, Routes } from 'react-router'; import { ExplorePluginPage } from './ExplorePluginPage'; From 2371529edda0e84d6fe50a21245166e7a04120f5 Mon Sep 17 00:00:00 2001 From: Ivan Shmidt Date: Tue, 8 Sep 2020 09:53:34 +0200 Subject: [PATCH 455/656] feat: remove explore plugin from app --- packages/app/src/App.tsx | 2 -- .../create-app/templates/default-app/packages/app/src/App.tsx | 2 -- 2 files changed, 4 deletions(-) diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 759901c11e..187ee27e3e 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -28,7 +28,6 @@ import { hot } from 'react-hot-loader/root'; import { providers } from './identityProviders'; import { Router as CatalogRouter } from '@backstage/plugin-catalog'; import { Router as DocsRouter } from '@backstage/plugin-techdocs'; -import { Router as ExploreRouter } from '@backstage/plugin-explore'; import { Route, Routes, Navigate } from 'react-router'; import { EntityPage } from './components/catalog/EntityPage'; @@ -62,7 +61,6 @@ const AppRoutes = () => ( element={} /> } /> - } /> {...deprecatedAppRoutes} ); diff --git a/packages/create-app/templates/default-app/packages/app/src/App.tsx b/packages/create-app/templates/default-app/packages/app/src/App.tsx index cd03e20f06..ba43c351b2 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.tsx @@ -11,7 +11,6 @@ import { AppSidebar } from './sidebar'; import { Route, Routes, Navigate } from 'react-router'; import { Router as CatalogRouter } from '@backstage/plugin-catalog'; import { Router as DocsRouter } from '@backstage/plugin-techdocs'; -import { Router as ExploreRouter } from '@backstage/plugin-explore'; import { EntityPage } from './components/catalog/EntityPage'; @@ -38,7 +37,6 @@ const App: FC<{}> = () => ( element={} /> } /> - } /> {deprecatedAppRoutes}
From 493e8052b8c8d6802fb44408931ed50d6ed43204 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Sep 2020 10:28:17 +0200 Subject: [PATCH 456/656] graphiql: move to new plugin pattern --- packages/app/src/App.tsx | 2 ++ .../graphiql/src/components/GraphiQLPage/GraphiQLPage.tsx | 4 ++-- plugins/graphiql/src/index.ts | 1 + plugins/graphiql/src/plugin.ts | 5 ----- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index aa6727c859..3d4f297e8e 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -28,6 +28,7 @@ import { hot } from 'react-hot-loader/root'; import { providers } from './identityProviders'; import { Router as CatalogRouter } from '@backstage/plugin-catalog'; import { Router as DocsRouter } from '@backstage/plugin-techdocs'; +import { Router as GraphiQLRouter } from '@backstage/plugin-graphiql'; import { Router as TechRadarRouter } from '@backstage/plugin-tech-radar'; import { Route, Routes, Navigate } from 'react-router'; @@ -66,6 +67,7 @@ const AppRoutes = () => ( path="/tech-radar" element={} /> + } /> {...deprecatedAppRoutes}
); diff --git a/plugins/graphiql/src/components/GraphiQLPage/GraphiQLPage.tsx b/plugins/graphiql/src/components/GraphiQLPage/GraphiQLPage.tsx index a16fdf3ee6..7eb91b59d8 100644 --- a/plugins/graphiql/src/components/GraphiQLPage/GraphiQLPage.tsx +++ b/plugins/graphiql/src/components/GraphiQLPage/GraphiQLPage.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import React, { FC } from 'react'; +import React from 'react'; import { Content, Header, @@ -30,7 +30,7 @@ import { graphQlBrowseApiRef } from '../../lib/api'; import { GraphiQLBrowser } from '../GraphiQLBrowser'; import { Typography } from '@material-ui/core'; -export const GraphiQLPage: FC<{}> = () => { +export const GraphiQLPage = () => { const graphQlBrowseApi = useApi(graphQlBrowseApiRef); const endpoints = useAsync(() => graphQlBrowseApi.getEndpoints()); diff --git a/plugins/graphiql/src/index.ts b/plugins/graphiql/src/index.ts index e7614aba81..50698cdb4c 100644 --- a/plugins/graphiql/src/index.ts +++ b/plugins/graphiql/src/index.ts @@ -15,5 +15,6 @@ */ export { plugin } from './plugin'; +export { GraphiQLPage as Router } from './components'; export * from './lib/api'; export * from './route-refs'; diff --git a/plugins/graphiql/src/plugin.ts b/plugins/graphiql/src/plugin.ts index f118faf871..7763284d81 100644 --- a/plugins/graphiql/src/plugin.ts +++ b/plugins/graphiql/src/plugin.ts @@ -15,12 +15,7 @@ */ import { createPlugin } from '@backstage/core'; -import { GraphiQLPage } from './components'; -import { graphiQLRouteRef } from './route-refs'; export const plugin = createPlugin({ id: 'graphiql', - register({ router }) { - router.addRoute(graphiQLRouteRef, GraphiQLPage); - }, }); From d4505128cb470931b4654e3cb32c924d97c390f2 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 3 Sep 2020 17:18:01 +0200 Subject: [PATCH 457/656] core-api: remove save functionality from ApiTestRegistry + any type --- .../core-api/src/apis/ApiTestRegistry.test.ts | 36 ------------------- packages/core-api/src/apis/ApiTestRegistry.ts | 27 +++++--------- packages/core-api/src/apis/helpers.ts | 4 +-- packages/core-api/src/apis/types.ts | 6 ++-- 4 files changed, 14 insertions(+), 59 deletions(-) diff --git a/packages/core-api/src/apis/ApiTestRegistry.test.ts b/packages/core-api/src/apis/ApiTestRegistry.test.ts index fa42e64707..a4fbf1b144 100644 --- a/packages/core-api/src/apis/ApiTestRegistry.test.ts +++ b/packages/core-api/src/apis/ApiTestRegistry.test.ts @@ -37,26 +37,6 @@ describe('ApiTestRegistry', () => { expect(registry.get(cRef)).toBe(undefined); }); - it('should remove factories when resetting', () => { - const registry = new ApiTestRegistry(); - registry.register({ implements: aRef, deps: {}, factory: () => 3 }); - expect(registry.get(aRef)).toBe(3); - registry.reset(); - expect(registry.get(aRef)).toBe(undefined); - }); - - it('should keep saved factories when resetting', () => { - const registry = new ApiTestRegistry(); - registry.register({ implements: aRef, deps: {}, factory: () => 3 }); - registry.save(); - registry.register({ implements: bRef, deps: {}, factory: () => 'x' }); - expect(registry.get(aRef)).toBe(3); - expect(registry.get(bRef)).toBe('x'); - registry.reset(); - expect(registry.get(aRef)).toBe(3); - expect(registry.get(bRef)).toBe(undefined); - }); - it('should register factories with dependencies', () => { // 100% coverage + happy typescript = hasOwnProperty + this atrocity const cDeps = Object.create( @@ -135,20 +115,4 @@ describe('ApiTestRegistry', () => { expect(registry.get(aRef)).toBe(2); expect(factory).toHaveBeenCalledTimes(1); }); - - it('should call factory again after reset', () => { - const registry = new ApiTestRegistry(); - const factory = jest.fn().mockReturnValue(2); - registry.register({ implements: aRef, deps: {}, factory }); - registry.save(); - - expect(factory).toHaveBeenCalledTimes(0); - expect(registry.get(aRef)).toBe(2); - expect(factory).toHaveBeenCalledTimes(1); - expect(registry.get(aRef)).toBe(2); - expect(factory).toHaveBeenCalledTimes(1); - registry.reset(); - expect(registry.get(aRef)).toBe(2); - expect(factory).toHaveBeenCalledTimes(2); - }); }); diff --git a/packages/core-api/src/apis/ApiTestRegistry.ts b/packages/core-api/src/apis/ApiTestRegistry.ts index 7aed3c7917..6c85db056c 100644 --- a/packages/core-api/src/apis/ApiTestRegistry.ts +++ b/packages/core-api/src/apis/ApiTestRegistry.ts @@ -15,18 +15,17 @@ */ import { ApiRef } from './ApiRef'; -import { TypesToApiRefs, AnyApiRef, ApiHolder, ApiFactory } from './types'; +import { + TypesToApiRefs, + AnyApiRef, + ApiHolder, + ApiFactory, + AnyApiFactory, +} from './types'; export class ApiTestRegistry implements ApiHolder { private readonly apis = new Map(); - private factories = new Map< - AnyApiRef, - ApiFactory - >(); - private savedFactories = new Map< - AnyApiRef, - ApiFactory - >(); + private factories = new Map(); get(ref: ApiRef): T | undefined { return this.load(ref); @@ -37,16 +36,6 @@ export class ApiTestRegistry implements ApiHolder { return this; } - reset() { - this.factories = this.savedFactories; - this.apis.clear(); - } - - save(): ApiTestRegistry { - this.savedFactories = new Map(this.factories); - return this; - } - private load(ref: ApiRef, loading: AnyApiRef[] = []): T | undefined { const impl = this.apis.get(ref); if (impl) { diff --git a/packages/core-api/src/apis/helpers.ts b/packages/core-api/src/apis/helpers.ts index d8f8e8ac11..e2274a20f1 100644 --- a/packages/core-api/src/apis/helpers.ts +++ b/packages/core-api/src/apis/helpers.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { ApiFactory } from './types'; +import { AnyApiFactory, ApiFactory } from './types'; /** * Used to infer types for a standalone ApiFactory that isn't immediately passed @@ -23,6 +23,6 @@ import { ApiFactory } from './types'; */ export function createApiFactory( factory: ApiFactory, -): ApiFactory { +): AnyApiFactory { return factory; } diff --git a/packages/core-api/src/apis/types.ts b/packages/core-api/src/apis/types.ts index 4ee9b39ca9..52355f5396 100644 --- a/packages/core-api/src/apis/types.ts +++ b/packages/core-api/src/apis/types.ts @@ -16,13 +16,13 @@ import { ApiRef } from './ApiRef'; -export type AnyApiRef = ApiRef; +export type AnyApiRef = ApiRef; export type ApiRefType = T extends ApiRef ? U : never; export type TypesToApiRefs = { [key in keyof T]: ApiRef }; -export type ApiRefsToTypes }> = { +export type ApiRefsToTypes }> = { [key in keyof T]: ApiRefType; }; @@ -35,3 +35,5 @@ export type ApiFactory = { deps: TypesToApiRefs; factory(deps: Deps): Impl extends Api ? Impl : never; }; + +export type AnyApiFactory = ApiFactory; From 98b626fefb39f8322de0d3ece536c23fd0834eae Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 4 Sep 2020 10:14:24 +0200 Subject: [PATCH 458/656] core-api: added ApiFactoryRegistry --- .../src/apis/ApiFactoryRegistry.test.ts | 66 +++++++++++++++++ .../core-api/src/apis/ApiFactoryRegistry.ts | 71 +++++++++++++++++++ 2 files changed, 137 insertions(+) create mode 100644 packages/core-api/src/apis/ApiFactoryRegistry.test.ts create mode 100644 packages/core-api/src/apis/ApiFactoryRegistry.ts diff --git a/packages/core-api/src/apis/ApiFactoryRegistry.test.ts b/packages/core-api/src/apis/ApiFactoryRegistry.test.ts new file mode 100644 index 0000000000..43370f41a7 --- /dev/null +++ b/packages/core-api/src/apis/ApiFactoryRegistry.test.ts @@ -0,0 +1,66 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { ApiFactoryRegistry } from './ApiFactoryRegistry'; +import { createApiRef } from './ApiRef'; + +const aRef = createApiRef({ id: 'a', description: '' }); +const aFactory1 = { implements: aRef, deps: {}, factory: () => 1 }; +const aFactory2 = { implements: aRef, deps: {}, factory: () => 2 }; +const bRef = createApiRef({ id: 'b', description: '' }); +const bFactory = { implements: bRef, deps: {}, factory: () => 'x' }; +const cRef = createApiRef({ id: 'c', description: '' }); +const cFactory = { implements: cRef, deps: {}, factory: () => 'y' }; + +describe('ApiFactoryRegistry', () => { + it('should be empty when created', () => { + const registry = new ApiFactoryRegistry(); + expect(registry.getAllApis()).toEqual(new Set()); + }); + + it('should register a factory', () => { + const registry = new ApiFactoryRegistry(); + expect(registry.register('default', aFactory1)).toBe(true); + expect(registry.get(aRef)).toBe(aFactory1); + expect(registry.getAllApis()).toEqual(new Set([aRef])); + }); + + it('should prioritize factories based on scope', () => { + const registry = new ApiFactoryRegistry(); + expect(registry.register('default', aFactory1)).toBe(true); + expect(registry.get(aRef)).toBe(aFactory1); + expect(registry.register('app', aFactory2)).toBe(true); + expect(registry.get(aRef)).toBe(aFactory2); + expect(registry.register('default', aFactory1)).toBe(false); + expect(registry.get(aRef)).toBe(aFactory2); + expect(registry.register('static', aFactory1)).toBe(true); + expect(registry.get(aRef)).toBe(aFactory1); + expect(registry.register('app', aFactory2)).toBe(false); + expect(registry.get(aRef)).toBe(aFactory1); + expect(registry.getAllApis()).toEqual(new Set([aRef])); + }); + + it('should register multiple factories without conflict', () => { + const registry = new ApiFactoryRegistry(); + expect(registry.register('static', aFactory1)).toBe(true); + expect(registry.register('default', bFactory)).toBe(true); + expect(registry.register('app', cFactory)).toBe(true); + expect(registry.get(aRef)).toBe(aFactory1); + expect(registry.get(bRef)).toBe(bFactory); + expect(registry.get(cRef)).toBe(cFactory); + expect(registry.getAllApis()).toEqual(new Set([aRef, bRef, cRef])); + }); +}); diff --git a/packages/core-api/src/apis/ApiFactoryRegistry.ts b/packages/core-api/src/apis/ApiFactoryRegistry.ts new file mode 100644 index 0000000000..b81b560220 --- /dev/null +++ b/packages/core-api/src/apis/ApiFactoryRegistry.ts @@ -0,0 +1,71 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { + ApiFactoryHolder, + ApiFactory, + AnyApiRef, + AnyApiFactory, +} from './types'; +import { ApiRef } from './ApiRef'; + +type ApiFactoryScope = + | 'default' // Default factories registered by core and plugins + | 'app' // Factories registered in the app, overriding default ones + | 'static'; // APIs that can't be overridden, e.g. config + +enum ScopeLevels { + default = 10, + app = 50, + static = 100, +} + +type FactoryTuple = { + level: number; + factory: AnyApiFactory; +}; + +export class ApiFactoryRegistry implements ApiFactoryHolder { + private readonly factories = new Map(); + + register( + scope: ApiFactoryScope, + factory: ApiFactory, + ) { + const level = ScopeLevels[scope]; + const existing = this.factories.get(factory.implements); + if (existing && existing.level > level) { + return false; + } + + this.factories.set(factory.implements, { level, factory }); + return true; + } + + get( + api: ApiRef, + ): ApiFactory | undefined { + const tuple = this.factories.get(api); + if (!tuple) { + return undefined; + } + return tuple.factory as ApiFactory; + } + + getAllApis(): Set { + return new Set(this.factories.keys()); + } +} From d0567352a53d4c6a487176dba881a04b4d212b64 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 4 Sep 2020 10:28:21 +0200 Subject: [PATCH 459/656] core-api: refine api types and add ApiFactoryHolder --- packages/core-api/src/apis/types.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/core-api/src/apis/types.ts b/packages/core-api/src/apis/types.ts index 52355f5396..bb09fbecae 100644 --- a/packages/core-api/src/apis/types.ts +++ b/packages/core-api/src/apis/types.ts @@ -22,7 +22,7 @@ export type ApiRefType = T extends ApiRef ? U : never; export type TypesToApiRefs = { [key in keyof T]: ApiRef }; -export type ApiRefsToTypes }> = { +export type ApiRefsToTypes }> = { [key in keyof T]: ApiRefType; }; @@ -30,10 +30,24 @@ export type ApiHolder = { get(api: ApiRef): T | undefined; }; -export type ApiFactory = { +export type ApiFactory< + Api, + Impl, + Deps extends { [name in string]: unknown } +> = { implements: ApiRef; deps: TypesToApiRefs; factory(deps: Deps): Impl extends Api ? Impl : never; }; -export type AnyApiFactory = ApiFactory; +export type AnyApiFactory = ApiFactory< + unknown, + unknown, + { [key in string]: unknown } +>; + +export type ApiFactoryHolder = { + get( + api: ApiRef, + ): ApiFactory | undefined; +}; From b9e838c8b7f94154c430d2ed21b5fd7f8186dbba Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 4 Sep 2020 15:42:53 +0200 Subject: [PATCH 460/656] core-api: added ApiResolver --- .../core-api/src/apis/ApiResolver.test.ts | 177 ++++++++++++++++++ packages/core-api/src/apis/ApiResolver.ts | 115 ++++++++++++ 2 files changed, 292 insertions(+) create mode 100644 packages/core-api/src/apis/ApiResolver.test.ts create mode 100644 packages/core-api/src/apis/ApiResolver.ts diff --git a/packages/core-api/src/apis/ApiResolver.test.ts b/packages/core-api/src/apis/ApiResolver.test.ts new file mode 100644 index 0000000000..ab4a571cd5 --- /dev/null +++ b/packages/core-api/src/apis/ApiResolver.test.ts @@ -0,0 +1,177 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { ApiResolver } from './ApiResolver'; +import { createApiRef } from './ApiRef'; +import { ApiFactoryRegistry } from './ApiFactoryRegistry'; + +const aRef = createApiRef({ id: 'a', description: '' }); +const bRef = createApiRef({ id: 'b', description: '' }); +const cRef = createApiRef<{ x: string }>({ id: 'c', description: '' }); + +function createRegistry() { + const registry = new ApiFactoryRegistry(); + registry.register('default', { + implements: aRef, + deps: {}, + factory: () => 1, + }); + registry.register('default', { + implements: bRef, + deps: {}, + factory: () => 'b', + }); + registry.register('default', { + implements: cRef, + deps: { b: bRef }, + factory: ({ b }) => ({ x: 'x', b }), + }); + return registry; +} + +function createLongCyclicRegistry() { + const registry = new ApiFactoryRegistry(); + registry.register('default', { + implements: aRef, + deps: { b: bRef }, + factory: () => 1, + }); + registry.register('default', { + implements: bRef, + deps: { c: cRef }, + factory: () => 'b', + }); + registry.register('default', { + implements: cRef, + deps: { a: aRef }, + factory: () => ({ x: 'x' }), + }); + return registry; +} + +function createShortCyclicRegistry() { + const registry = new ApiFactoryRegistry(); + registry.register('default', { + implements: aRef, + deps: { a: aRef }, + factory: () => 1, + }); + registry.register('default', { + implements: bRef, + deps: { c: cRef }, + factory: () => 'b', + }); + registry.register('default', { + implements: cRef, + deps: { b: bRef }, + factory: () => ({ x: 'x' }), + }); + return registry; +} + +describe('ApiResolver', () => { + it('should be created empty', () => { + const resolver = new ApiResolver(new ApiFactoryRegistry()); + expect(resolver.get(aRef)).toBe(undefined); + expect(resolver.get(bRef)).toBe(undefined); + expect(resolver.get(cRef)).toBe(undefined); + }); + + it('should instantiate APIs', () => { + const resolver = new ApiResolver(createRegistry()); + expect(resolver.get(aRef)).toBe(1); + expect(resolver.get(bRef)).toBe('b'); + expect(resolver.get(cRef)).toEqual({ x: 'x', b: 'b' }); + expect(resolver.get(cRef)).toBe(resolver.get(cRef)); + }); + + it('should detect long dependency cycles', () => { + const resolver = new ApiResolver(createLongCyclicRegistry()); + expect(() => resolver.get(aRef)).toThrow( + 'Circular dependency of api factory for apiRef{a}', + ); + // Second call for same ref should still throw + expect(() => resolver.get(aRef)).toThrow( + 'Circular dependency of api factory for apiRef{a}', + ); + expect(() => resolver.get(bRef)).toThrow( + 'Circular dependency of api factory for apiRef{b}', + ); + expect(() => resolver.get(cRef)).toThrow( + 'Circular dependency of api factory for apiRef{c}', + ); + }); + + it('should detect short dependency cycles', () => { + const resolver = new ApiResolver(createShortCyclicRegistry()); + expect(() => resolver.get(aRef)).toThrow( + 'Circular dependency of api factory for apiRef{a}', + ); + expect(() => resolver.get(bRef)).toThrow( + 'Circular dependency of api factory for apiRef{b}', + ); + expect(() => resolver.get(cRef)).toThrow( + 'Circular dependency of api factory for apiRef{c}', + ); + }); + + it('should validate a factory holder', () => { + expect(() => { + ApiResolver.validateFactories(createRegistry(), [aRef, bRef, cRef]); + }).not.toThrow(); + }); + + it('should find dependency cycles with validation', () => { + const short = createShortCyclicRegistry(); + expect(() => + ApiResolver.validateFactories(short, short.getAllApis()), + ).toThrow('Circular dependency of api factory for apiRef{a}'); + expect(() => ApiResolver.validateFactories(short, [bRef])).toThrow( + 'Circular dependency of api factory for apiRef{b}', + ); + expect(() => ApiResolver.validateFactories(short, [cRef])).toThrow( + 'Circular dependency of api factory for apiRef{c}', + ); + + const long = createLongCyclicRegistry(); + expect(() => + ApiResolver.validateFactories(long, long.getAllApis()), + ).toThrow('Circular dependency of api factory for apiRef{a}'); + expect(() => ApiResolver.validateFactories(long, [bRef])).toThrow( + 'Circular dependency of api factory for apiRef{b}', + ); + expect(() => ApiResolver.validateFactories(long, [cRef])).toThrow( + 'Circular dependency of api factory for apiRef{c}', + ); + }); + + it('should only call factory func once', () => { + const registry = new ApiFactoryRegistry(); + const factory = jest.fn().mockReturnValue(2); + registry.register('default', { + implements: aRef, + deps: {}, + factory, + }); + + const resolver = new ApiResolver(registry); + expect(factory).toHaveBeenCalledTimes(0); + expect(resolver.get(aRef)).toBe(2); + expect(factory).toHaveBeenCalledTimes(1); + expect(resolver.get(aRef)).toBe(2); + expect(factory).toHaveBeenCalledTimes(1); + }); +}); diff --git a/packages/core-api/src/apis/ApiResolver.ts b/packages/core-api/src/apis/ApiResolver.ts new file mode 100644 index 0000000000..9f48a75783 --- /dev/null +++ b/packages/core-api/src/apis/ApiResolver.ts @@ -0,0 +1,115 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { ApiRef } from './ApiRef'; +import { + ApiHolder, + ApiFactoryHolder, + AnyApiRef, + TypesToApiRefs, +} from './types'; + +export class ApiResolver implements ApiHolder { + private readonly apis = new Map(); + + /** + * Validate factories by making sure that each of the apis can be created + * without hitting any circular dependencies. + */ + static validateFactories( + factories: ApiFactoryHolder, + apis: Iterable, + ) { + for (const api of apis) { + const heap = [api]; + const allDeps = new Set(); + + while (heap.length) { + const apiRef = heap.shift()!; + const factory = factories.get(apiRef); + if (!factory) { + continue; + } + + for (const dep of Object.values(factory.deps)) { + if (dep === api) { + throw new Error(`Circular dependency of api factory for ${api}`); + } + if (!allDeps.has(dep)) { + allDeps.add(dep); + heap.push(dep); + } + } + } + } + } + + constructor(private readonly factories: ApiFactoryHolder) {} + + get(ref: ApiRef): T | undefined { + return this.load(ref); + } + + private load(ref: ApiRef, loading: AnyApiRef[] = []): T | undefined { + const impl = this.apis.get(ref); + if (impl) { + return impl as T; + } + + const factory = this.factories.get(ref); + if (!factory) { + return undefined; + } + + if (loading.includes(factory.implements)) { + throw new Error( + `Circular dependency of api factory for ${factory.implements}`, + ); + } + + const deps = this.loadDeps(ref, factory.deps, [ + ...loading, + factory.implements, + ]); + const api = factory.factory(deps); + this.apis.set(ref, api); + return api as T; + } + + private loadDeps( + dependent: ApiRef, + apis: TypesToApiRefs, + loading: AnyApiRef[], + ): T { + const impls = {} as T; + + for (const key in apis) { + if (apis.hasOwnProperty(key)) { + const ref = apis[key]; + + const api = this.load(ref, loading); + if (!api) { + throw new Error( + `No API factory available for dependency ${ref} of dependent ${dependent}`, + ); + } + impls[key] = api; + } + } + + return impls; + } +} From d1eeb01b016efa5485353aa6936000b4fbb4a580 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 4 Sep 2020 15:44:18 +0200 Subject: [PATCH 461/656] core-api: overload createApiFactory with a singleton helper --- packages/core-api/src/apis/helpers.ts | 30 +++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/packages/core-api/src/apis/helpers.ts b/packages/core-api/src/apis/helpers.ts index e2274a20f1..95be80e541 100644 --- a/packages/core-api/src/apis/helpers.ts +++ b/packages/core-api/src/apis/helpers.ts @@ -14,15 +14,37 @@ * limitations under the License. */ -import { AnyApiFactory, ApiFactory } from './types'; +import { ApiFactory } from './types'; +import { ApiRef } from './ApiRef'; /** * Used to infer types for a standalone ApiFactory that isn't immediately passed * to another function. * This function doesn't actually do anything, it's only used to infer types. */ -export function createApiFactory( - factory: ApiFactory, -): AnyApiFactory { +export function createApiFactory< + Api, + Impl extends Api, + Deps extends { [name in string]: unknown } +>(factory: ApiFactory): ApiFactory; +export function createApiFactory( + api: ApiRef, + instance: Impl, +): ApiFactory; +export function createApiFactory< + Api, + Impl extends Api, + Deps extends { [name in string]: unknown } +>( + factory: ApiFactory | ApiRef, + instance?: Impl, +): ApiFactory { + if ('id' in factory) { + return ({ + implements: factory, + deps: {}, + factory: () => instance!, + } as unknown) as ApiFactory; + } return factory; } From 4e390d6e9df89623477d0a1d058b4b9a381fd4f5 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 4 Sep 2020 15:54:32 +0200 Subject: [PATCH 462/656] core-api: simplify ApiFactory type --- .../core-api/src/apis/ApiFactoryRegistry.ts | 10 ++++---- packages/core-api/src/apis/ApiTestRegistry.ts | 4 +++- packages/core-api/src/apis/helpers.ts | 23 +++++++++---------- packages/core-api/src/apis/types.ts | 16 ++++--------- 4 files changed, 22 insertions(+), 31 deletions(-) diff --git a/packages/core-api/src/apis/ApiFactoryRegistry.ts b/packages/core-api/src/apis/ApiFactoryRegistry.ts index b81b560220..9d75944d8b 100644 --- a/packages/core-api/src/apis/ApiFactoryRegistry.ts +++ b/packages/core-api/src/apis/ApiFactoryRegistry.ts @@ -41,9 +41,9 @@ type FactoryTuple = { export class ApiFactoryRegistry implements ApiFactoryHolder { private readonly factories = new Map(); - register( + register( scope: ApiFactoryScope, - factory: ApiFactory, + factory: ApiFactory, ) { const level = ScopeLevels[scope]; const existing = this.factories.get(factory.implements); @@ -55,14 +55,12 @@ export class ApiFactoryRegistry implements ApiFactoryHolder { return true; } - get( - api: ApiRef, - ): ApiFactory | undefined { + get(api: ApiRef): ApiFactory | undefined { const tuple = this.factories.get(api); if (!tuple) { return undefined; } - return tuple.factory as ApiFactory; + return tuple.factory as ApiFactory; } getAllApis(): Set { diff --git a/packages/core-api/src/apis/ApiTestRegistry.ts b/packages/core-api/src/apis/ApiTestRegistry.ts index 6c85db056c..d41d959e99 100644 --- a/packages/core-api/src/apis/ApiTestRegistry.ts +++ b/packages/core-api/src/apis/ApiTestRegistry.ts @@ -31,7 +31,9 @@ export class ApiTestRegistry implements ApiHolder { return this.load(ref); } - register(factory: ApiFactory): ApiTestRegistry { + register( + factory: ApiFactory, + ): ApiTestRegistry { this.factories.set(factory.implements, factory); return this; } diff --git a/packages/core-api/src/apis/helpers.ts b/packages/core-api/src/apis/helpers.ts index 95be80e541..dda6c57fb0 100644 --- a/packages/core-api/src/apis/helpers.ts +++ b/packages/core-api/src/apis/helpers.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { ApiFactory } from './types'; +import { ApiFactory, TypesToApiRefs } from './types'; import { ApiRef } from './ApiRef'; /** @@ -26,25 +26,24 @@ export function createApiFactory< Api, Impl extends Api, Deps extends { [name in string]: unknown } ->(factory: ApiFactory): ApiFactory; -export function createApiFactory( +>(factory: ApiFactory): ApiFactory; +export function createApiFactory( api: ApiRef, - instance: Impl, -): ApiFactory; + instance: Api, +): ApiFactory; export function createApiFactory< Api, - Impl extends Api, Deps extends { [name in string]: unknown } >( - factory: ApiFactory | ApiRef, - instance?: Impl, -): ApiFactory { + factory: ApiFactory | ApiRef, + instance?: Api, +): ApiFactory { if ('id' in factory) { - return ({ + return { implements: factory, - deps: {}, + deps: {} as TypesToApiRefs, factory: () => instance!, - } as unknown) as ApiFactory; + }; } return factory; } diff --git a/packages/core-api/src/apis/types.ts b/packages/core-api/src/apis/types.ts index bb09fbecae..5b2956cfa1 100644 --- a/packages/core-api/src/apis/types.ts +++ b/packages/core-api/src/apis/types.ts @@ -30,24 +30,16 @@ export type ApiHolder = { get(api: ApiRef): T | undefined; }; -export type ApiFactory< - Api, - Impl, - Deps extends { [name in string]: unknown } -> = { +export type ApiFactory = { implements: ApiRef; deps: TypesToApiRefs; - factory(deps: Deps): Impl extends Api ? Impl : never; + factory(deps: Deps): Api; }; -export type AnyApiFactory = ApiFactory< - unknown, - unknown, - { [key in string]: unknown } ->; +export type AnyApiFactory = ApiFactory; export type ApiFactoryHolder = { get( api: ApiRef, - ): ApiFactory | undefined; + ): ApiFactory | undefined; }; From c8faa6a73da331148adfe215ea52f8853730f9a7 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 4 Sep 2020 16:08:04 +0200 Subject: [PATCH 463/656] core-api,app: switch to auto DI with ApiResolver and ApiFactories --- packages/app/src/apis.ts | 293 ++++++++++--------- packages/core-api/src/app/App.tsx | 103 ++++--- packages/core-api/src/app/types.ts | 19 +- packages/core/src/api-wrappers/createApp.tsx | 4 +- 4 files changed, 235 insertions(+), 184 deletions(-) diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index b79a6850bd..77252ac458 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -15,11 +15,9 @@ */ import { - ApiRegistry, alertApiRef, errorApiRef, AlertApiForwarder, - ConfigApi, ErrorApiForwarder, ErrorAlerter, featureFlagsApiRef, @@ -44,6 +42,8 @@ import { microsoftAuthApiRef, storageApiRef, WebStorage, + createApiFactory, + configApiRef, } from '@backstage/core'; import { @@ -82,135 +82,162 @@ import { githubPullRequestsApiRef, } from '@roadiehq/backstage-plugin-github-pull-requests'; -export const apis = (config: ConfigApi) => { - // eslint-disable-next-line no-console - console.log(`Creating APIs for ${config.getString('app.title')}`); - - const backendUrl = config.getString('backend.baseUrl'); - const techdocsUrl = config.getString('techdocs.storageUrl'); - - const builder = ApiRegistry.builder(); - - const discoveryApi = builder.add( - discoveryApiRef, - UrlPatternDiscovery.compile(`${backendUrl}/{{ pluginId }}`), - ); - const alertApi = builder.add(alertApiRef, new AlertApiForwarder()); - const errorApi = builder.add( - errorApiRef, - new ErrorAlerter(alertApi, new ErrorApiForwarder()), - ); - - builder.add(storageApiRef, WebStorage.create({ errorApi })); - builder.add(GCPApiRef, new GCPClient()); - builder.add( - circleCIApiRef, - new CircleCIApi(`${backendUrl}/proxy/circleci/api`), - ); - - builder.add(jenkinsApiRef, new JenkinsApi(`${backendUrl}/proxy/jenkins/api`)); - - builder.add(githubActionsApiRef, new GithubActionsClient()); - - builder.add(featureFlagsApiRef, new FeatureFlags()); - - builder.add(lighthouseApiRef, LighthouseRestApi.fromConfig(config)); - - builder.add(travisCIApiRef, new TravisCIApi()); - builder.add(githubPullRequestsApiRef, new GithubPullRequestsClient()); - - const oauthRequestApi = builder.add( - oauthRequestApiRef, - new OAuthRequestManager(), - ); - - builder.add( - googleAuthApiRef, - GoogleAuth.create({ - discoveryApi, - oauthRequestApi, - }), - ); - - builder.add( - microsoftAuthApiRef, - MicrosoftAuth.create({ - discoveryApi, - oauthRequestApi, - }), - ); - - const githubAuthApi = builder.add( - githubAuthApiRef, - GithubAuth.create({ - discoveryApi, - oauthRequestApi, - }), - ); - - builder.add( - oktaAuthApiRef, - OktaAuth.create({ - discoveryApi, - oauthRequestApi, - }), - ); - - builder.add( - gitlabAuthApiRef, - GitlabAuth.create({ - discoveryApi, - oauthRequestApi, - }), - ); - - builder.add( - auth0AuthApiRef, - Auth0Auth.create({ - discoveryApi, - oauthRequestApi, - }), - ); - - builder.add( - oauth2ApiRef, - OAuth2.create({ - discoveryApi, - oauthRequestApi, - }), - ); - - builder.add(catalogApiRef, new CatalogClient({ discoveryApi })); - - builder.add(scaffolderApiRef, new ScaffolderApi({ discoveryApi })); - - builder.add(gitOpsApiRef, new GitOpsRestApi('http://localhost:3008')); - - builder.add( - graphQlBrowseApiRef, - GraphQLEndpoints.from([ - GraphQLEndpoints.create({ - id: 'gitlab', - title: 'GitLab', - url: 'https://gitlab.com/api/graphql', +export const apis = [ + createApiFactory(alertApiRef, new AlertApiForwarder()), + createApiFactory({ + implements: errorApiRef, + deps: { alertApi: alertApiRef }, + factory: ({ alertApi }) => + new ErrorAlerter(alertApi, new ErrorApiForwarder()), + }), + createApiFactory({ + implements: storageApiRef, + deps: { errorApi: errorApiRef }, + factory: ({ errorApi }) => WebStorage.create({ errorApi }), + }), + createApiFactory({ + implements: discoveryApiRef, + deps: { configApi: configApiRef }, + factory: ({ configApi }) => + UrlPatternDiscovery.compile( + `${configApi.getString('backend.baseUrl')}/{{ pluginId }}`, + ), + }), + createApiFactory(GCPApiRef, new GCPClient()), + createApiFactory({ + implements: circleCIApiRef, + deps: { configApi: configApiRef }, + factory: ({ configApi }) => + new CircleCIApi( + `${configApi.getString('backend.baseUrl')}/proxy/circleci/api`, + ), + }), + createApiFactory({ + implements: jenkinsApiRef, + deps: { configApi: configApiRef }, + factory: ({ configApi }) => + new JenkinsApi( + `${configApi.getString('backend.baseUrl')}/proxy/jenkins/api`, + ), + }), + createApiFactory(githubActionsApiRef, new GithubActionsClient()), + createApiFactory(featureFlagsApiRef, new FeatureFlags()), + createApiFactory({ + implements: lighthouseApiRef, + deps: { configApi: configApiRef }, + factory: ({ configApi }) => LighthouseRestApi.fromConfig(configApi), + }), + createApiFactory(travisCIApiRef, new TravisCIApi()), + createApiFactory(githubPullRequestsApiRef, new GithubPullRequestsClient()), + createApiFactory(oauthRequestApiRef, new OAuthRequestManager()), + createApiFactory({ + implements: techRadarApiRef, + deps: {}, + factory: () => new TechRadar({ width: 1500, height: 800 }), + }), + createApiFactory({ + implements: googleAuthApiRef, + deps: { + discoveryApi: discoveryApiRef, + oauthRequestApi: oauthRequestApiRef, + }, + factory: ({ discoveryApi, oauthRequestApi }) => + GoogleAuth.create({ discoveryApi, oauthRequestApi }), + }), + createApiFactory({ + implements: microsoftAuthApiRef, + deps: { + discoveryApi: discoveryApiRef, + oauthRequestApi: oauthRequestApiRef, + }, + factory: ({ discoveryApi, oauthRequestApi }) => + MicrosoftAuth.create({ discoveryApi, oauthRequestApi }), + }), + createApiFactory({ + implements: githubAuthApiRef, + deps: { + discoveryApi: discoveryApiRef, + oauthRequestApi: oauthRequestApiRef, + }, + factory: ({ discoveryApi, oauthRequestApi }) => + GithubAuth.create({ discoveryApi, oauthRequestApi }), + }), + createApiFactory({ + implements: oktaAuthApiRef, + deps: { + discoveryApi: discoveryApiRef, + oauthRequestApi: oauthRequestApiRef, + }, + factory: ({ discoveryApi, oauthRequestApi }) => + OktaAuth.create({ discoveryApi, oauthRequestApi }), + }), + createApiFactory({ + implements: gitlabAuthApiRef, + deps: { + discoveryApi: discoveryApiRef, + oauthRequestApi: oauthRequestApiRef, + }, + factory: ({ discoveryApi, oauthRequestApi }) => + GitlabAuth.create({ discoveryApi, oauthRequestApi }), + }), + createApiFactory({ + implements: auth0AuthApiRef, + deps: { + discoveryApi: discoveryApiRef, + oauthRequestApi: oauthRequestApiRef, + }, + factory: ({ discoveryApi, oauthRequestApi }) => + Auth0Auth.create({ discoveryApi, oauthRequestApi }), + }), + createApiFactory({ + implements: oauth2ApiRef, + deps: { + discoveryApi: discoveryApiRef, + oauthRequestApi: oauthRequestApiRef, + }, + factory: ({ discoveryApi, oauthRequestApi }) => + OAuth2.create({ discoveryApi, oauthRequestApi }), + }), + createApiFactory({ + implements: catalogApiRef, + deps: { discoveryApi: discoveryApiRef }, + factory: ({ discoveryApi }) => new CatalogClient({ discoveryApi }), + }), + createApiFactory({ + implements: scaffolderApiRef, + deps: { discoveryApi: discoveryApiRef }, + factory: ({ discoveryApi }) => new ScaffolderApi({ discoveryApi }), + }), + createApiFactory(gitOpsApiRef, new GitOpsRestApi('http://localhost:3008')), + createApiFactory({ + implements: graphQlBrowseApiRef, + deps: { errorApi: errorApiRef, githubAuthApi: githubAuthApiRef }, + factory: ({ errorApi, githubAuthApi }) => + GraphQLEndpoints.from([ + GraphQLEndpoints.create({ + id: 'gitlab', + title: 'GitLab', + url: 'https://gitlab.com/api/graphql', + }), + GraphQLEndpoints.github({ + id: 'github', + title: 'GitHub', + errorApi, + githubAuthApi, + }), + ]), + }), + createApiFactory({ + implements: rollbarApiRef, + deps: { discoveryApi: discoveryApiRef }, + factory: ({ discoveryApi }) => new RollbarClient({ discoveryApi }), + }), + createApiFactory({ + implements: techdocsStorageApiRef, + deps: { configApi: configApiRef }, + factory: ({ configApi }) => + new TechDocsStorageApi({ + apiOrigin: configApi.getString('techdocs.storageUrl'), }), - GraphQLEndpoints.github({ - id: 'github', - title: 'GitHub', - errorApi, - githubAuthApi, - }), - ]), - ); - - builder.add(rollbarApiRef, new RollbarClient({ discoveryApi })); - - builder.add( - techdocsStorageApiRef, - new TechDocsStorageApi({ - apiOrigin: techdocsUrl, - }), - ); - - return builder.build(); -}; + }), +]; diff --git a/packages/core-api/src/app/App.tsx b/packages/core-api/src/app/App.tsx index ccdfc4fc7f..ca8ab28e8c 100644 --- a/packages/core-api/src/app/App.tsx +++ b/packages/core-api/src/app/App.tsx @@ -26,7 +26,6 @@ import { BackstageApp, AppComponents, AppConfigLoader, - Apis, SignInResult, SignInPageProps, } from './types'; @@ -42,7 +41,6 @@ import { AppThemeProvider } from './AppThemeProvider'; import { IconComponent, SystemIcons, SystemIconKey } from '../icons'; import { - ApiHolder, ApiProvider, ApiRegistry, AppTheme, @@ -51,18 +49,22 @@ import { configApiRef, ConfigReader, useApi, + AnyApiFactory, + ApiHolder, } from '../apis'; -import { ApiAggregator } from '../apis/ApiAggregator'; import { useAsync } from 'react-use'; import { AppIdentity } from './AppIdentity'; +import { ApiFactoryRegistry } from '../apis/ApiFactoryRegistry'; +import { ApiResolver } from '../apis/ApiResolver'; type FullAppOptions = { - apis: Apis; + apis: Iterable; icons: SystemIcons; plugins: BackstagePlugin[]; components: AppComponents; themes: AppTheme[]; configLoader?: AppConfigLoader; + defaultApiFactories: Iterable; }; function useConfigLoader( @@ -101,31 +103,27 @@ function useConfigLoader( } export class PrivateAppImpl implements BackstageApp { - private apis?: ApiHolder = undefined; + private apiHolder?: ApiHolder; + private configApi?: ConfigApi; + + private readonly apis: Iterable; private readonly icons: SystemIcons; private readonly plugins: BackstagePlugin[]; private readonly components: AppComponents; private readonly themes: AppTheme[]; private readonly configLoader?: AppConfigLoader; + private readonly defaultApiFactories: Iterable; private readonly identityApi = new AppIdentity(); - private apisOrFactory: Apis; - constructor(options: FullAppOptions) { - this.apisOrFactory = options.apis; + this.apis = options.apis; this.icons = options.icons; this.plugins = options.plugins; this.components = options.components; this.themes = options.themes; this.configLoader = options.configLoader; - } - - getApis(): ApiHolder { - if (!this.apis) { - throw new Error('Tried to access APIs before app was loaded'); - } - return this.apis; + this.defaultApiFactories = options.defaultApiFactories; } getPlugins(): BackstagePlugin[] { @@ -186,9 +184,9 @@ export class PrivateAppImpl implements BackstageApp { } } - const FeatureFlags = this.apis && this.apis.get(featureFlagsApiRef); - if (FeatureFlags) { - FeatureFlags.registeredFeatureFlags = registeredFeatureFlags; + const featureFlags = this.getApiHolder().get(featureFlagsApiRef); + if (featureFlags) { + featureFlags.registeredFeatureFlags = registeredFeatureFlags; } routes.push(} />); @@ -210,28 +208,14 @@ export class PrivateAppImpl implements BackstageApp { ); if ('node' in loadedConfig) { + // Loading or error return loadedConfig.node; } - const configApi = loadedConfig.api; - const appApis = ApiRegistry.from([ - [appThemeApiRef, appThemeApi], - [configApiRef, configApi], - [identityApiRef, this.identityApi], - ]); - - if (!this.apis) { - if ('get' in this.apisOrFactory) { - this.apis = this.apisOrFactory; - } else { - this.apis = this.apisOrFactory(configApi); - } - } - - const apis = new ApiAggregator(this.apis, appApis); + this.configApi = loadedConfig.api; return ( - + {children} @@ -306,6 +290,55 @@ export class PrivateAppImpl implements BackstageApp { return AppRouter; } + private getApiHolder(): ApiHolder { + if (this.apiHolder) { + return this.apiHolder; + } + + const registry = new ApiFactoryRegistry(); + + registry.register('static', { + implements: appThemeApiRef, + deps: {}, + factory: () => AppThemeSelector.createWithStorage(this.themes), + }); + registry.register('static', { + implements: configApiRef, + deps: {}, + factory: () => { + if (!this.configApi) { + throw new Error( + 'Tried to access config API before config was loaded', + ); + } + return this.configApi; + }, + }); + registry.register('static', { + implements: identityApiRef, + deps: {}, + factory: () => this.identityApi, + }); + + for (const factory of this.defaultApiFactories) { + registry.register('default', factory); + } + + for (const factory of this.apis) { + if (!registry.register('app', factory)) { + throw new Error( + `Duplicate or forbidden API factory for ${factory.implements} in app`, + ); + } + } + + ApiResolver.validateFactories(registry, registry.getAllApis()); + + this.apiHolder = new ApiResolver(registry); + + return this.apiHolder; + } + verify() { const pluginIds = new Set(); diff --git a/packages/core-api/src/app/types.ts b/packages/core-api/src/app/types.ts index db7a0897b1..565e073aed 100644 --- a/packages/core-api/src/app/types.ts +++ b/packages/core-api/src/app/types.ts @@ -17,8 +17,8 @@ import { ComponentType } from 'react'; import { IconComponent, SystemIconKey, SystemIcons } from '../icons'; import { BackstagePlugin } from '../plugin'; -import { ApiHolder } from '../apis'; -import { AppTheme, ConfigApi, ProfileInfo } from '../apis/definitions'; +import { AnyApiFactory } from '../apis'; +import { AppTheme, ProfileInfo } from '../apis/definitions'; import { AppConfig } from '@backstage/config'; export type BootErrorPageProps = { @@ -77,16 +77,12 @@ export type AppComponents = { */ export type AppConfigLoader = () => Promise; -// TODO(Rugvip): Temporary workaround for accessing config when instantiating APIs, we might want to do this differently -export type Apis = ApiHolder | ((config: ConfigApi) => ApiHolder); - export type AppOptions = { /** - * A holder of all APIs available in the app. - * - * Use for example ApiRegistry or ApiTestRegistry. + * A collection of ApiFactories to register in the application to either + * add add new ones, or override factories provided by default or by plugins. */ - apis?: Apis; + apis?: Iterable; /** * Supply icons to override the default ones. @@ -138,11 +134,6 @@ export type AppOptions = { }; export type BackstageApp = { - /** - * Get the holder for all APIs available in the app. - */ - getApis(): ApiHolder; - /** * Returns all plugins registered for the app. */ diff --git a/packages/core/src/api-wrappers/createApp.tsx b/packages/core/src/api-wrappers/createApp.tsx index 9d2096cfff..6073b3cef6 100644 --- a/packages/core/src/api-wrappers/createApp.tsx +++ b/packages/core/src/api-wrappers/createApp.tsx @@ -17,7 +17,6 @@ import React, { FC } from 'react'; import privateExports, { AppOptions, - ApiRegistry, defaultSystemIcons, BootErrorPageProps, AppConfigLoader, @@ -94,7 +93,7 @@ export function createApp(options?: AppOptions) { ); }; - const apis = options?.apis ?? ApiRegistry.from([]); + const apis = options?.apis ?? []; const icons = { ...defaultSystemIcons, ...options?.icons }; const plugins = options?.plugins ?? []; const components = { @@ -127,6 +126,7 @@ export function createApp(options?: AppOptions) { components, themes, configLoader, + defaultApiFactories: [], }); app.verify(); From 1067ae85e726859d8b73c630b5f3033ec84b5054 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 4 Sep 2020 16:10:47 +0200 Subject: [PATCH 464/656] core-api: make it possible for plugins to include ApiFactories --- packages/core-api/src/app/App.tsx | 12 ++++++++++++ packages/core-api/src/plugin/Plugin.tsx | 6 ++++++ packages/core-api/src/plugin/types.ts | 2 ++ 3 files changed, 20 insertions(+) diff --git a/packages/core-api/src/app/App.tsx b/packages/core-api/src/app/App.tsx index ca8ab28e8c..b5434522fe 100644 --- a/packages/core-api/src/app/App.tsx +++ b/packages/core-api/src/app/App.tsx @@ -324,6 +324,18 @@ export class PrivateAppImpl implements BackstageApp { registry.register('default', factory); } + for (const plugin of this.plugins) { + for (const factory of plugin.getApis()) { + if (!registry.register('default', factory)) { + throw new Error( + `Plugin ${plugin.getId()} tried to register duplicate or forbidden API factory for ${ + factory.implements + }`, + ); + } + } + } + for (const factory of this.apis) { if (!registry.register('app', factory)) { throw new Error( diff --git a/packages/core-api/src/plugin/Plugin.tsx b/packages/core-api/src/plugin/Plugin.tsx index bf98919c2b..1835ec03ad 100644 --- a/packages/core-api/src/plugin/Plugin.tsx +++ b/packages/core-api/src/plugin/Plugin.tsx @@ -24,9 +24,11 @@ import { } from './types'; import { validateBrowserCompat, validateFlagName } from '../app/FeatureFlags'; import { RouteRef } from '../routing'; +import { AnyApiFactory } from '../apis'; export type PluginConfig = { id: string; + apis?: Iterable; register?(hooks: PluginHooks): void; }; @@ -65,6 +67,10 @@ export class PluginImpl { return this.config.id; } + getApis(): Iterable { + return this.config.apis ?? []; + } + output(): PluginOutput[] { if (this.storedOutput) { return this.storedOutput; diff --git a/packages/core-api/src/plugin/types.ts b/packages/core-api/src/plugin/types.ts index fabe97434e..12992f3620 100644 --- a/packages/core-api/src/plugin/types.ts +++ b/packages/core-api/src/plugin/types.ts @@ -16,6 +16,7 @@ import { ComponentType } from 'react'; import { RouteRef } from '../routing'; +import { AnyApiFactory } from '../apis'; export type RouteOptions = { // Whether the route path must match exactly, defaults to true. @@ -70,4 +71,5 @@ export type PluginOutput = export type BackstagePlugin = { getId(): string; output(): PluginOutput[]; + getApis(): Iterable; }; From db291ab3235c0e5e1caa6e13fa470a253b110aaa Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 4 Sep 2020 16:59:01 +0200 Subject: [PATCH 465/656] app: move a bunch of APIs to defaultApis in core --- packages/app/src/apis.ts | 100 -------------- packages/core-api/src/app/App.tsx | 8 +- packages/core/src/api-wrappers/createApp.tsx | 3 +- packages/core/src/api-wrappers/defaultApis.ts | 125 ++++++++++++++++++ 4 files changed, 131 insertions(+), 105 deletions(-) create mode 100644 packages/core/src/api-wrappers/defaultApis.ts diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index 77252ac458..a9a1d4cff7 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -15,33 +15,10 @@ */ import { - alertApiRef, errorApiRef, - AlertApiForwarder, - ErrorApiForwarder, - ErrorAlerter, - featureFlagsApiRef, - FeatureFlags, discoveryApiRef, UrlPatternDiscovery, - GoogleAuth, - GithubAuth, - OAuth2, - OktaAuth, - GitlabAuth, - Auth0Auth, - MicrosoftAuth, - oauthRequestApiRef, - OAuthRequestManager, - googleAuthApiRef, githubAuthApiRef, - oauth2ApiRef, - oktaAuthApiRef, - gitlabAuthApiRef, - auth0AuthApiRef, - microsoftAuthApiRef, - storageApiRef, - WebStorage, createApiFactory, configApiRef, } from '@backstage/core'; @@ -83,18 +60,6 @@ import { } from '@roadiehq/backstage-plugin-github-pull-requests'; export const apis = [ - createApiFactory(alertApiRef, new AlertApiForwarder()), - createApiFactory({ - implements: errorApiRef, - deps: { alertApi: alertApiRef }, - factory: ({ alertApi }) => - new ErrorAlerter(alertApi, new ErrorApiForwarder()), - }), - createApiFactory({ - implements: storageApiRef, - deps: { errorApi: errorApiRef }, - factory: ({ errorApi }) => WebStorage.create({ errorApi }), - }), createApiFactory({ implements: discoveryApiRef, deps: { configApi: configApiRef }, @@ -121,7 +86,6 @@ export const apis = [ ), }), createApiFactory(githubActionsApiRef, new GithubActionsClient()), - createApiFactory(featureFlagsApiRef, new FeatureFlags()), createApiFactory({ implements: lighthouseApiRef, deps: { configApi: configApiRef }, @@ -129,75 +93,11 @@ export const apis = [ }), createApiFactory(travisCIApiRef, new TravisCIApi()), createApiFactory(githubPullRequestsApiRef, new GithubPullRequestsClient()), - createApiFactory(oauthRequestApiRef, new OAuthRequestManager()), createApiFactory({ implements: techRadarApiRef, deps: {}, factory: () => new TechRadar({ width: 1500, height: 800 }), }), - createApiFactory({ - implements: googleAuthApiRef, - deps: { - discoveryApi: discoveryApiRef, - oauthRequestApi: oauthRequestApiRef, - }, - factory: ({ discoveryApi, oauthRequestApi }) => - GoogleAuth.create({ discoveryApi, oauthRequestApi }), - }), - createApiFactory({ - implements: microsoftAuthApiRef, - deps: { - discoveryApi: discoveryApiRef, - oauthRequestApi: oauthRequestApiRef, - }, - factory: ({ discoveryApi, oauthRequestApi }) => - MicrosoftAuth.create({ discoveryApi, oauthRequestApi }), - }), - createApiFactory({ - implements: githubAuthApiRef, - deps: { - discoveryApi: discoveryApiRef, - oauthRequestApi: oauthRequestApiRef, - }, - factory: ({ discoveryApi, oauthRequestApi }) => - GithubAuth.create({ discoveryApi, oauthRequestApi }), - }), - createApiFactory({ - implements: oktaAuthApiRef, - deps: { - discoveryApi: discoveryApiRef, - oauthRequestApi: oauthRequestApiRef, - }, - factory: ({ discoveryApi, oauthRequestApi }) => - OktaAuth.create({ discoveryApi, oauthRequestApi }), - }), - createApiFactory({ - implements: gitlabAuthApiRef, - deps: { - discoveryApi: discoveryApiRef, - oauthRequestApi: oauthRequestApiRef, - }, - factory: ({ discoveryApi, oauthRequestApi }) => - GitlabAuth.create({ discoveryApi, oauthRequestApi }), - }), - createApiFactory({ - implements: auth0AuthApiRef, - deps: { - discoveryApi: discoveryApiRef, - oauthRequestApi: oauthRequestApiRef, - }, - factory: ({ discoveryApi, oauthRequestApi }) => - Auth0Auth.create({ discoveryApi, oauthRequestApi }), - }), - createApiFactory({ - implements: oauth2ApiRef, - deps: { - discoveryApi: discoveryApiRef, - oauthRequestApi: oauthRequestApiRef, - }, - factory: ({ discoveryApi, oauthRequestApi }) => - OAuth2.create({ discoveryApi, oauthRequestApi }), - }), createApiFactory({ implements: catalogApiRef, deps: { discoveryApi: discoveryApiRef }, diff --git a/packages/core-api/src/app/App.tsx b/packages/core-api/src/app/App.tsx index b5434522fe..1897a12d16 100644 --- a/packages/core-api/src/app/App.tsx +++ b/packages/core-api/src/app/App.tsx @@ -64,7 +64,7 @@ type FullAppOptions = { components: AppComponents; themes: AppTheme[]; configLoader?: AppConfigLoader; - defaultApiFactories: Iterable; + defaultApis: Iterable; }; function useConfigLoader( @@ -112,7 +112,7 @@ export class PrivateAppImpl implements BackstageApp { private readonly components: AppComponents; private readonly themes: AppTheme[]; private readonly configLoader?: AppConfigLoader; - private readonly defaultApiFactories: Iterable; + private readonly defaultApis: Iterable; private readonly identityApi = new AppIdentity(); @@ -123,7 +123,7 @@ export class PrivateAppImpl implements BackstageApp { this.components = options.components; this.themes = options.themes; this.configLoader = options.configLoader; - this.defaultApiFactories = options.defaultApiFactories; + this.defaultApis = options.defaultApis; } getPlugins(): BackstagePlugin[] { @@ -320,7 +320,7 @@ export class PrivateAppImpl implements BackstageApp { factory: () => this.identityApi, }); - for (const factory of this.defaultApiFactories) { + for (const factory of this.defaultApis) { registry.register('default', factory); } diff --git a/packages/core/src/api-wrappers/createApp.tsx b/packages/core/src/api-wrappers/createApp.tsx index 6073b3cef6..7fe77423e2 100644 --- a/packages/core/src/api-wrappers/createApp.tsx +++ b/packages/core/src/api-wrappers/createApp.tsx @@ -25,6 +25,7 @@ import { BrowserRouter, MemoryRouter } from 'react-router-dom'; import { ErrorPage } from '../layout/ErrorPage'; import { Progress } from '../components/Progress'; +import { defaultApis } from './defaultApis'; import { lightTheme, darkTheme } from '@backstage/theme'; import { AppConfig, JsonObject } from '@backstage/config'; @@ -126,7 +127,7 @@ export function createApp(options?: AppOptions) { components, themes, configLoader, - defaultApiFactories: [], + defaultApis, }); app.verify(); diff --git a/packages/core/src/api-wrappers/defaultApis.ts b/packages/core/src/api-wrappers/defaultApis.ts new file mode 100644 index 0000000000..7c471ce25e --- /dev/null +++ b/packages/core/src/api-wrappers/defaultApis.ts @@ -0,0 +1,125 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { + alertApiRef, + errorApiRef, + AlertApiForwarder, + ErrorApiForwarder, + ErrorAlerter, + featureFlagsApiRef, + FeatureFlags, + discoveryApiRef, + GoogleAuth, + GithubAuth, + OAuth2, + OktaAuth, + GitlabAuth, + Auth0Auth, + MicrosoftAuth, + oauthRequestApiRef, + OAuthRequestManager, + googleAuthApiRef, + githubAuthApiRef, + oauth2ApiRef, + oktaAuthApiRef, + gitlabAuthApiRef, + auth0AuthApiRef, + microsoftAuthApiRef, + storageApiRef, + WebStorage, + createApiFactory, +} from '@backstage/core-api'; + +export const defaultApis = [ + createApiFactory(alertApiRef, new AlertApiForwarder()), + createApiFactory({ + implements: errorApiRef, + deps: { alertApi: alertApiRef }, + factory: ({ alertApi }) => + new ErrorAlerter(alertApi, new ErrorApiForwarder()), + }), + createApiFactory({ + implements: storageApiRef, + deps: { errorApi: errorApiRef }, + factory: ({ errorApi }) => WebStorage.create({ errorApi }), + }), + createApiFactory(featureFlagsApiRef, new FeatureFlags()), + createApiFactory(oauthRequestApiRef, new OAuthRequestManager()), + createApiFactory({ + implements: googleAuthApiRef, + deps: { + discoveryApi: discoveryApiRef, + oauthRequestApi: oauthRequestApiRef, + }, + factory: ({ discoveryApi, oauthRequestApi }) => + GoogleAuth.create({ discoveryApi, oauthRequestApi }), + }), + createApiFactory({ + implements: microsoftAuthApiRef, + deps: { + discoveryApi: discoveryApiRef, + oauthRequestApi: oauthRequestApiRef, + }, + factory: ({ discoveryApi, oauthRequestApi }) => + MicrosoftAuth.create({ discoveryApi, oauthRequestApi }), + }), + createApiFactory({ + implements: githubAuthApiRef, + deps: { + discoveryApi: discoveryApiRef, + oauthRequestApi: oauthRequestApiRef, + }, + factory: ({ discoveryApi, oauthRequestApi }) => + GithubAuth.create({ discoveryApi, oauthRequestApi }), + }), + createApiFactory({ + implements: oktaAuthApiRef, + deps: { + discoveryApi: discoveryApiRef, + oauthRequestApi: oauthRequestApiRef, + }, + factory: ({ discoveryApi, oauthRequestApi }) => + OktaAuth.create({ discoveryApi, oauthRequestApi }), + }), + createApiFactory({ + implements: gitlabAuthApiRef, + deps: { + discoveryApi: discoveryApiRef, + oauthRequestApi: oauthRequestApiRef, + }, + factory: ({ discoveryApi, oauthRequestApi }) => + GitlabAuth.create({ discoveryApi, oauthRequestApi }), + }), + createApiFactory({ + implements: auth0AuthApiRef, + deps: { + discoveryApi: discoveryApiRef, + oauthRequestApi: oauthRequestApiRef, + }, + factory: ({ discoveryApi, oauthRequestApi }) => + Auth0Auth.create({ discoveryApi, oauthRequestApi }), + }), + createApiFactory({ + implements: oauth2ApiRef, + deps: { + discoveryApi: discoveryApiRef, + oauthRequestApi: oauthRequestApiRef, + }, + factory: ({ discoveryApi, oauthRequestApi }) => + OAuth2.create({ discoveryApi, oauthRequestApi }), + }), +]; From aa235dd154d9ca067286e862cf745918af5f4014 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 4 Sep 2020 17:09:41 +0200 Subject: [PATCH 466/656] app: move api factories out to plugins --- packages/app/src/apis.ts | 80 ++------------------------- plugins/catalog/src/plugin.ts | 15 ++++- plugins/circleci/src/plugin.ts | 13 ++++- plugins/gcp-projects/src/plugin.ts | 8 ++- plugins/github-actions/src/plugin.ts | 8 ++- plugins/gitops-profiles/src/plugin.ts | 6 +- plugins/graphiql/src/plugin.ts | 16 +++++- plugins/jenkins/src/plugin.ts | 18 +++++- plugins/lighthouse/src/plugin.ts | 10 +++- plugins/rollbar/src/plugin.ts | 15 ++++- plugins/scaffolder/src/plugin.ts | 14 ++++- plugins/techdocs/src/plugin.ts | 18 +++++- 12 files changed, 134 insertions(+), 87 deletions(-) diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index a9a1d4cff7..a21ecebb9d 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -23,32 +23,10 @@ import { configApiRef, } from '@backstage/core'; -import { - lighthouseApiRef, - LighthouseRestApi, -} from '@backstage/plugin-lighthouse'; - -import { CircleCIApi, circleCIApiRef } from '@backstage/plugin-circleci'; -import { catalogApiRef, CatalogClient } from '@backstage/plugin-catalog'; - -import { gitOpsApiRef, GitOpsRestApi } from '@backstage/plugin-gitops-profiles'; import { graphQlBrowseApiRef, GraphQLEndpoints, } from '@backstage/plugin-graphiql'; -import { scaffolderApiRef, ScaffolderApi } from '@backstage/plugin-scaffolder'; -import { - techdocsStorageApiRef, - TechDocsStorageApi, -} from '@backstage/plugin-techdocs'; - -import { rollbarApiRef, RollbarClient } from '@backstage/plugin-rollbar'; -import { GCPClient, GCPApiRef } from '@backstage/plugin-gcp-projects'; -import { - GithubActionsClient, - githubActionsApiRef, -} from '@backstage/plugin-github-actions'; -import { jenkinsApiRef, JenkinsApi } from '@backstage/plugin-jenkins'; import { TravisCIApi, @@ -68,47 +46,6 @@ export const apis = [ `${configApi.getString('backend.baseUrl')}/{{ pluginId }}`, ), }), - createApiFactory(GCPApiRef, new GCPClient()), - createApiFactory({ - implements: circleCIApiRef, - deps: { configApi: configApiRef }, - factory: ({ configApi }) => - new CircleCIApi( - `${configApi.getString('backend.baseUrl')}/proxy/circleci/api`, - ), - }), - createApiFactory({ - implements: jenkinsApiRef, - deps: { configApi: configApiRef }, - factory: ({ configApi }) => - new JenkinsApi( - `${configApi.getString('backend.baseUrl')}/proxy/jenkins/api`, - ), - }), - createApiFactory(githubActionsApiRef, new GithubActionsClient()), - createApiFactory({ - implements: lighthouseApiRef, - deps: { configApi: configApiRef }, - factory: ({ configApi }) => LighthouseRestApi.fromConfig(configApi), - }), - createApiFactory(travisCIApiRef, new TravisCIApi()), - createApiFactory(githubPullRequestsApiRef, new GithubPullRequestsClient()), - createApiFactory({ - implements: techRadarApiRef, - deps: {}, - factory: () => new TechRadar({ width: 1500, height: 800 }), - }), - createApiFactory({ - implements: catalogApiRef, - deps: { discoveryApi: discoveryApiRef }, - factory: ({ discoveryApi }) => new CatalogClient({ discoveryApi }), - }), - createApiFactory({ - implements: scaffolderApiRef, - deps: { discoveryApi: discoveryApiRef }, - factory: ({ discoveryApi }) => new ScaffolderApi({ discoveryApi }), - }), - createApiFactory(gitOpsApiRef, new GitOpsRestApi('http://localhost:3008')), createApiFactory({ implements: graphQlBrowseApiRef, deps: { errorApi: errorApiRef, githubAuthApi: githubAuthApiRef }, @@ -127,17 +64,8 @@ export const apis = [ }), ]), }), - createApiFactory({ - implements: rollbarApiRef, - deps: { discoveryApi: discoveryApiRef }, - factory: ({ discoveryApi }) => new RollbarClient({ discoveryApi }), - }), - createApiFactory({ - implements: techdocsStorageApiRef, - deps: { configApi: configApiRef }, - factory: ({ configApi }) => - new TechDocsStorageApi({ - apiOrigin: configApi.getString('techdocs.storageUrl'), - }), - }), + + // TODO: move to plugins + createApiFactory(travisCIApiRef, new TravisCIApi()), + createApiFactory(githubPullRequestsApiRef, new GithubPullRequestsClient()), ]; diff --git a/plugins/catalog/src/plugin.ts b/plugins/catalog/src/plugin.ts index 4bfbf2453b..61cdf5c95a 100644 --- a/plugins/catalog/src/plugin.ts +++ b/plugins/catalog/src/plugin.ts @@ -14,8 +14,21 @@ * limitations under the License. */ -import { createPlugin } from '@backstage/core'; +import { + createPlugin, + createApiFactory, + discoveryApiRef, +} from '@backstage/core'; +import { catalogApiRef } from './api/types'; +import { CatalogClient } from './api/CatalogClient'; export const plugin = createPlugin({ id: 'catalog', + apis: [ + createApiFactory({ + implements: catalogApiRef, + deps: { discoveryApi: discoveryApiRef }, + factory: ({ discoveryApi }) => new CatalogClient({ discoveryApi }), + }), + ], }); diff --git a/plugins/circleci/src/plugin.ts b/plugins/circleci/src/plugin.ts index 47ecccef4f..06c6381c37 100644 --- a/plugins/circleci/src/plugin.ts +++ b/plugins/circleci/src/plugin.ts @@ -13,13 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { createPlugin } from '@backstage/core'; +import { createPlugin, createApiFactory, configApiRef } from '@backstage/core'; import { circleCIRouteRef, circleCIBuildRouteRef } from './route-refs'; import BuildsPage from './pages/BuildsPage/BuildsPage'; import BuildWithStepsPage from './pages/BuildWithStepsPage/BuildWithStepsPage'; +import { circleCIApiRef, CircleCIApi } from './api'; export const plugin = createPlugin({ id: 'circleci', + apis: [ + createApiFactory({ + implements: circleCIApiRef, + deps: { configApi: configApiRef }, + factory: ({ configApi }) => + new CircleCIApi( + `${configApi.getString('backend.baseUrl')}/proxy/circleci/api`, + ), + }), + ], register({ router }) { router.addRoute(circleCIRouteRef, BuildsPage); router.addRoute(circleCIBuildRouteRef, BuildWithStepsPage); diff --git a/plugins/gcp-projects/src/plugin.ts b/plugins/gcp-projects/src/plugin.ts index 29c7d74434..41aacde597 100644 --- a/plugins/gcp-projects/src/plugin.ts +++ b/plugins/gcp-projects/src/plugin.ts @@ -14,10 +14,15 @@ * limitations under the License. */ -import { createPlugin, createRouteRef } from '@backstage/core'; +import { + createPlugin, + createRouteRef, + createApiFactory, +} from '@backstage/core'; import { ProjectListPage } from './components/ProjectListPage'; import { ProjectDetailsPage } from './components/ProjectDetailsPage'; import { NewProjectPage } from './components/NewProjectPage'; +import { GCPApiRef, GCPClient } from './api'; export const rootRouteRef = createRouteRef({ path: '/gcp-projects', @@ -34,6 +39,7 @@ export const NewProjectRouteRef = createRouteRef({ export const plugin = createPlugin({ id: 'gcp-projects', + apis: [createApiFactory(GCPApiRef, new GCPClient())], register({ router }) { router.addRoute(rootRouteRef, ProjectListPage); router.addRoute(ProjectRouteRef, ProjectDetailsPage); diff --git a/plugins/github-actions/src/plugin.ts b/plugins/github-actions/src/plugin.ts index 7e08229d6d..9e3c965d46 100644 --- a/plugins/github-actions/src/plugin.ts +++ b/plugins/github-actions/src/plugin.ts @@ -14,7 +14,12 @@ * limitations under the License. */ -import { createPlugin, createRouteRef } from '@backstage/core'; +import { + createPlugin, + createRouteRef, + createApiFactory, +} from '@backstage/core'; +import { githubActionsApiRef, GithubActionsClient } from './api'; // TODO(freben): This is just a demo route for now export const rootRouteRef = createRouteRef({ @@ -29,4 +34,5 @@ export const buildRouteRef = createRouteRef({ export const plugin = createPlugin({ id: 'github-actions', + apis: [createApiFactory(githubActionsApiRef, new GithubActionsClient())], }); diff --git a/plugins/gitops-profiles/src/plugin.ts b/plugins/gitops-profiles/src/plugin.ts index af180aff20..45820644f7 100644 --- a/plugins/gitops-profiles/src/plugin.ts +++ b/plugins/gitops-profiles/src/plugin.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { createPlugin } from '@backstage/core'; +import { createPlugin, createApiFactory } from '@backstage/core'; import ProfileCatalog from './components/ProfileCatalog'; import ClusterPage from './components/ClusterPage'; import ClusterList from './components/ClusterList'; @@ -23,9 +23,13 @@ import { gitOpsClusterDetailsRoute, gitOpsClusterCreateRoute, } from './routes'; +import { gitOpsApiRef, GitOpsRestApi } from './api'; export const plugin = createPlugin({ id: 'gitops-profiles', + apis: [ + createApiFactory(gitOpsApiRef, new GitOpsRestApi('http://localhost:3008')), + ], register({ router }) { router.addRoute(gitOpsClusterListRoute, ClusterList); router.addRoute(gitOpsClusterDetailsRoute, ClusterPage); diff --git a/plugins/graphiql/src/plugin.ts b/plugins/graphiql/src/plugin.ts index 7763284d81..28d27802d0 100644 --- a/plugins/graphiql/src/plugin.ts +++ b/plugins/graphiql/src/plugin.ts @@ -14,8 +14,22 @@ * limitations under the License. */ -import { createPlugin } from '@backstage/core'; +import { createPlugin, createApiFactory } from '@backstage/core'; +import { graphQlBrowseApiRef, GraphQLEndpoints } from './lib/api'; export const plugin = createPlugin({ id: 'graphiql', + apis: [ + // GitLab is used as an example endpoint, but most plug + createApiFactory( + graphQlBrowseApiRef, + GraphQLEndpoints.from([ + GraphQLEndpoints.create({ + id: 'gitlab', + title: 'GitLab', + url: 'https://gitlab.com/api/graphql', + }), + ]), + ), + ], }); diff --git a/plugins/jenkins/src/plugin.ts b/plugins/jenkins/src/plugin.ts index 979b0a31cf..fe24e1b63d 100644 --- a/plugins/jenkins/src/plugin.ts +++ b/plugins/jenkins/src/plugin.ts @@ -14,8 +14,14 @@ * limitations under the License. */ -import { createPlugin, createRouteRef } from '@backstage/core'; +import { + createPlugin, + createRouteRef, + createApiFactory, + configApiRef, +} from '@backstage/core'; import { DetailedViewPage } from './pages/BuildWithStepsPage'; +import { jenkinsApiRef, JenkinsApi } from './api'; export const buildRouteRef = createRouteRef({ path: '/jenkins/job', @@ -24,6 +30,16 @@ export const buildRouteRef = createRouteRef({ export const plugin = createPlugin({ id: 'jenkins', + apis: [ + createApiFactory({ + implements: jenkinsApiRef, + deps: { configApi: configApiRef }, + factory: ({ configApi }) => + new JenkinsApi( + `${configApi.getString('backend.baseUrl')}/proxy/jenkins/api`, + ), + }), + ], register({ router }) { router.addRoute(buildRouteRef, DetailedViewPage); }, diff --git a/plugins/lighthouse/src/plugin.ts b/plugins/lighthouse/src/plugin.ts index f8da8d84ed..5700a9991f 100644 --- a/plugins/lighthouse/src/plugin.ts +++ b/plugins/lighthouse/src/plugin.ts @@ -14,13 +14,21 @@ * limitations under the License. */ -import { createPlugin } from '@backstage/core'; +import { createPlugin, createApiFactory, configApiRef } from '@backstage/core'; import AuditList from './components/AuditList'; import AuditView from './components/AuditView'; import CreateAudit from './components/CreateAudit'; +import { lighthouseApiRef, LighthouseRestApi } from './api'; export const plugin = createPlugin({ id: 'lighthouse', + apis: [ + createApiFactory({ + implements: lighthouseApiRef, + deps: { configApi: configApiRef }, + factory: ({ configApi }) => LighthouseRestApi.fromConfig(configApi), + }), + ], register({ router }) { router.registerRoute('/lighthouse', AuditList); router.registerRoute('/lighthouse/audit/:id', AuditView); diff --git a/plugins/rollbar/src/plugin.ts b/plugins/rollbar/src/plugin.ts index 2cf464a8f6..21432572e1 100644 --- a/plugins/rollbar/src/plugin.ts +++ b/plugins/rollbar/src/plugin.ts @@ -14,13 +14,26 @@ * limitations under the License. */ -import { createPlugin } from '@backstage/core'; +import { + createPlugin, + createApiFactory, + discoveryApiRef, +} from '@backstage/core'; import { rootRouteRef, entityRouteRef } from './routes'; import { RollbarHome } from './components/RollbarHome/RollbarHome'; import { RollbarProjectPage } from './components/RollbarProjectPage/RollbarProjectPage'; +import { rollbarApiRef } from './api/RollbarApi'; +import { RollbarClient } from './api/RollbarClient'; export const plugin = createPlugin({ id: 'rollbar', + apis: [ + createApiFactory({ + implements: rollbarApiRef, + deps: { discoveryApi: discoveryApiRef }, + factory: ({ discoveryApi }) => new RollbarClient({ discoveryApi }), + }), + ], register({ router }) { router.addRoute(rootRouteRef, RollbarHome); router.addRoute(entityRouteRef, RollbarProjectPage); diff --git a/plugins/scaffolder/src/plugin.ts b/plugins/scaffolder/src/plugin.ts index 8c4ed5badd..15ec749f2f 100644 --- a/plugins/scaffolder/src/plugin.ts +++ b/plugins/scaffolder/src/plugin.ts @@ -14,13 +14,25 @@ * limitations under the License. */ -import { createPlugin } from '@backstage/core'; +import { + createPlugin, + createApiFactory, + discoveryApiRef, +} from '@backstage/core'; import { ScaffolderPage } from './components/ScaffolderPage'; import { TemplatePage } from './components/TemplatePage'; import { rootRoute, templateRoute } from './routes'; +import { scaffolderApiRef, ScaffolderApi } from './api'; export const plugin = createPlugin({ id: 'scaffolder', + apis: [ + createApiFactory({ + implements: scaffolderApiRef, + deps: { discoveryApi: discoveryApiRef }, + factory: ({ discoveryApi }) => new ScaffolderApi({ discoveryApi }), + }), + ], register({ router }) { router.addRoute(rootRoute, ScaffolderPage); router.addRoute(templateRoute, TemplatePage); diff --git a/plugins/techdocs/src/plugin.ts b/plugins/techdocs/src/plugin.ts index e75d488595..673089be75 100644 --- a/plugins/techdocs/src/plugin.ts +++ b/plugins/techdocs/src/plugin.ts @@ -29,7 +29,13 @@ * limitations under the License. */ -import { createPlugin, createRouteRef } from '@backstage/core'; +import { + createPlugin, + createRouteRef, + createApiFactory, + configApiRef, +} from '@backstage/core'; +import { techdocsStorageApiRef, TechDocsStorageApi } from './api'; export const rootRouteRef = createRouteRef({ path: '', @@ -48,4 +54,14 @@ export const rootCatalogDocsRouteRef = createRouteRef({ export const plugin = createPlugin({ id: 'techdocs', + apis: [ + createApiFactory({ + implements: techdocsStorageApiRef, + deps: { configApi: configApiRef }, + factory: ({ configApi }) => + new TechDocsStorageApi({ + apiOrigin: configApi.getString('techdocs.storageUrl'), + }), + }), + ], }); From bcaa18886020144d0e67a61b5d3dbe90eaa469ec Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 4 Sep 2020 17:18:18 +0200 Subject: [PATCH 467/656] core: add default DiscoveryApi factory that uses /api --- packages/app/src/apis.ts | 1 + packages/core/src/api-wrappers/defaultApis.ts | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index a21ecebb9d..12d3594921 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -38,6 +38,7 @@ import { } from '@roadiehq/backstage-plugin-github-pull-requests'; export const apis = [ + // TODO(Rugvip): migrate to use /api createApiFactory({ implements: discoveryApiRef, deps: { configApi: configApiRef }, diff --git a/packages/core/src/api-wrappers/defaultApis.ts b/packages/core/src/api-wrappers/defaultApis.ts index 7c471ce25e..82b60d31e6 100644 --- a/packages/core/src/api-wrappers/defaultApis.ts +++ b/packages/core/src/api-wrappers/defaultApis.ts @@ -42,9 +42,19 @@ import { storageApiRef, WebStorage, createApiFactory, + configApiRef, + UrlPatternDiscovery, } from '@backstage/core-api'; export const defaultApis = [ + createApiFactory({ + implements: discoveryApiRef, + deps: { configApi: configApiRef }, + factory: ({ configApi }) => + UrlPatternDiscovery.compile( + `${configApi.getString('backend.baseUrl')}/api/{{ pluginId }}`, + ), + }), createApiFactory(alertApiRef, new AlertApiForwarder()), createApiFactory({ implements: errorApiRef, From e7c04aedab92ed932ca132f09adf94a85a338fa4 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 4 Sep 2020 17:23:12 +0200 Subject: [PATCH 468/656] dev-utils: remove separate ApiTestRegistry setup --- .../dev-utils/src/devApp/apiFactories.test.ts | 36 ------ packages/dev-utils/src/devApp/apiFactories.ts | 108 ------------------ packages/dev-utils/src/devApp/render.tsx | 38 +----- plugins/graphiql/dev/index.tsx | 2 +- plugins/lighthouse/dev/index.tsx | 2 +- plugins/techdocs/dev/index.tsx | 2 +- 6 files changed, 9 insertions(+), 179 deletions(-) delete mode 100644 packages/dev-utils/src/devApp/apiFactories.test.ts delete mode 100644 packages/dev-utils/src/devApp/apiFactories.ts diff --git a/packages/dev-utils/src/devApp/apiFactories.test.ts b/packages/dev-utils/src/devApp/apiFactories.test.ts deleted file mode 100644 index be3ae2cdbe..0000000000 --- a/packages/dev-utils/src/devApp/apiFactories.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 * as apiFactories from './apiFactories'; -import { ApiTestRegistry, ApiFactory } from '@backstage/core'; - -describe('apiFactories', () => { - it('should be possible to get an instance of each API', () => { - const registry = new ApiTestRegistry(); - const factories: ApiFactory[] = Object.values( - apiFactories, - ); - - for (const factory of factories) { - registry.register(factory); - } - - for (const factory of factories) { - const api = registry.get(factory.implements); - expect(api).toBeDefined(); - } - }); -}); diff --git a/packages/dev-utils/src/devApp/apiFactories.ts b/packages/dev-utils/src/devApp/apiFactories.ts deleted file mode 100644 index 4cf208f5d2..0000000000 --- a/packages/dev-utils/src/devApp/apiFactories.ts +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { - alertApiRef, - errorApiRef, - ErrorApiForwarder, - AlertApi, - createApiFactory, - ErrorAlerter, - AlertApiForwarder, - oauthRequestApiRef, - OAuthRequestManager, - UrlPatternDiscovery, - discoveryApiRef, - GoogleAuth, - googleAuthApiRef, - GithubAuth, - githubAuthApiRef, - GitlabAuth, - gitlabAuthApiRef, - Auth0Auth, - auth0AuthApiRef, -} from '@backstage/core'; - -// TODO(rugvip): We should likely figure out how to reuse all of these between apps -// and plugin serve with minimal boilerplate. For example we might move everything -// to DI, and provide factories for the default implementations, so this just becomes -// a list of things like `[ErrorApiForwarder.factory, AlertApiDialog.factory]`. - -export const alertApiFactory = createApiFactory({ - implements: alertApiRef, - deps: {}, - factory: (): AlertApi => new AlertApiForwarder(), -}); - -export const errorApiFactory = createApiFactory({ - implements: errorApiRef, - deps: { alertApi: alertApiRef }, - factory: ({ alertApi }) => - new ErrorAlerter(alertApi, new ErrorApiForwarder()), -}); - -export const oauthRequestApiFactory = createApiFactory({ - implements: oauthRequestApiRef, - deps: {}, - factory: () => new OAuthRequestManager(), -}); - -export const discoveryApiFactory = createApiFactory({ - implements: discoveryApiRef, - deps: {}, - factory: () => - UrlPatternDiscovery.compile(`http://localhost:7000/{{ pluginId }}`), -}); - -export const googleAuthApiFactory = createApiFactory({ - implements: googleAuthApiRef, - deps: { discoveryApi: discoveryApiRef, oauthRequestApi: oauthRequestApiRef }, - factory: ({ discoveryApi, oauthRequestApi }) => - GoogleAuth.create({ - discoveryApi, - oauthRequestApi, - }), -}); - -export const githubAuthApiFactory = createApiFactory({ - implements: githubAuthApiRef, - deps: { discoveryApi: discoveryApiRef, oauthRequestApi: oauthRequestApiRef }, - factory: ({ discoveryApi, oauthRequestApi }) => - GithubAuth.create({ - discoveryApi, - oauthRequestApi, - }), -}); - -export const gitlabAuthApiFactory = createApiFactory({ - implements: gitlabAuthApiRef, - deps: { discoveryApi: discoveryApiRef, oauthRequestApi: oauthRequestApiRef }, - factory: ({ discoveryApi, oauthRequestApi }) => - GitlabAuth.create({ - discoveryApi, - oauthRequestApi, - }), -}); - -export const auth0AuthApiFactory = createApiFactory({ - implements: auth0AuthApiRef, - deps: { discoveryApi: discoveryApiRef, oauthRequestApi: oauthRequestApiRef }, - factory: ({ discoveryApi, oauthRequestApi }) => - Auth0Auth.create({ - discoveryApi, - oauthRequestApi, - }), -}); diff --git a/packages/dev-utils/src/devApp/render.tsx b/packages/dev-utils/src/devApp/render.tsx index cde39fdd05..f223fcd4e7 100644 --- a/packages/dev-utils/src/devApp/render.tsx +++ b/packages/dev-utils/src/devApp/render.tsx @@ -26,12 +26,10 @@ import { SidebarSpacer, ApiFactory, createPlugin, - ApiTestRegistry, - ApiHolder, AlertDisplay, OAuthRequestDialog, + AnyApiFactory, } from '@backstage/core'; -import * as defaultApiFactories from './apiFactories'; import SentimentDissatisfiedIcon from '@material-ui/icons/SentimentDissatisfied'; // TODO(rugvip): export proper plugin type from core that isn't the plugin class @@ -43,7 +41,7 @@ type BackstagePlugin = ReturnType; */ class DevAppBuilder { private readonly plugins = new Array(); - private readonly factories = new Array>(); + private readonly apis = new Array(); private readonly rootChildren = new Array(); /** @@ -57,10 +55,10 @@ class DevAppBuilder { /** * Register an API factory to add to the app */ - registerApiFactory( - factory: ApiFactory, + registerApi( + factory: ApiFactory, ): DevAppBuilder { - this.factories.push(factory); + this.apis.push(factory); return this; } @@ -79,7 +77,7 @@ class DevAppBuilder { */ build(): ComponentType<{}> { const app = createApp({ - apis: this.setupApiRegistry(this.factories), + apis: this.apis, plugins: this.plugins, }); @@ -170,30 +168,6 @@ class DevAppBuilder { ); } - // Set up an API registry that merges together default implementations with ones provided through config. - private setupApiRegistry( - providedFactories: ApiFactory[], - ): ApiHolder { - const providedApis = new Set( - providedFactories.map(factory => factory.implements), - ); - - // Exlude any default API factory that we receive a factory for in the config - const defaultFactories = Object.values(defaultApiFactories).filter( - factory => !providedApis.has(factory.implements), - ); - const allFactories = [...defaultFactories, ...providedFactories]; - - // Use a test registry with dependency injection so that the consumer - // can override APIs but still depend on the default implementations. - const registry = new ApiTestRegistry(); - for (const factory of allFactories) { - registry.register(factory); - } - - return registry; - } - private findPluginPaths(plugins: BackstagePlugin[]) { const paths = new Array(); diff --git a/plugins/graphiql/dev/index.tsx b/plugins/graphiql/dev/index.tsx index efcf19a89d..93b7b35334 100644 --- a/plugins/graphiql/dev/index.tsx +++ b/plugins/graphiql/dev/index.tsx @@ -20,7 +20,7 @@ import { plugin, GraphQLEndpoints, graphQlBrowseApiRef } from '../src'; createDevApp() .registerPlugin(plugin) - .registerApiFactory({ + .registerApi({ implements: graphQlBrowseApiRef, deps: { errorApi: errorApiRef, diff --git a/plugins/lighthouse/dev/index.tsx b/plugins/lighthouse/dev/index.tsx index 6496fb658a..6fa39577f2 100644 --- a/plugins/lighthouse/dev/index.tsx +++ b/plugins/lighthouse/dev/index.tsx @@ -20,7 +20,7 @@ import { lighthouseApiRef, LighthouseRestApi } from '../src'; createDevApp() .registerPlugin(plugin) - .registerApiFactory({ + .registerApi({ implements: lighthouseApiRef, deps: {}, factory: () => new LighthouseRestApi('http://localhost:3003'), diff --git a/plugins/techdocs/dev/index.tsx b/plugins/techdocs/dev/index.tsx index b415256fde..9902cf6526 100644 --- a/plugins/techdocs/dev/index.tsx +++ b/plugins/techdocs/dev/index.tsx @@ -20,7 +20,7 @@ import { TechDocsDevStorageApi } from './api'; import { techdocsStorageApiRef } from '../src'; createDevApp() - .registerApiFactory({ + .registerApi({ deps: {}, factory: () => new TechDocsDevStorageApi({ From a5741ff0aa4242ad7d3e9a5916ec82f4a85a825f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 4 Sep 2020 17:33:55 +0200 Subject: [PATCH 469/656] test-utils: switch to new auto DI api --- .../testUtils/apis/ErrorApi/MockErrorApi.ts | 13 +------------ .../apis/StorageApi/MockStorageApi.ts | 7 ------- .../src/testUtils/appWrappers.test.tsx | 3 --- .../test-utils/src/testUtils/appWrappers.tsx | 6 +++--- .../{mockApiRegistry.ts => mockApis.ts} | 18 +++++++++--------- 5 files changed, 13 insertions(+), 34 deletions(-) rename packages/test-utils/src/testUtils/{mockApiRegistry.ts => mockApis.ts} (70%) diff --git a/packages/test-utils/src/testUtils/apis/ErrorApi/MockErrorApi.ts b/packages/test-utils/src/testUtils/apis/ErrorApi/MockErrorApi.ts index 9b22a352e8..7bf50314d0 100644 --- a/packages/test-utils/src/testUtils/apis/ErrorApi/MockErrorApi.ts +++ b/packages/test-utils/src/testUtils/apis/ErrorApi/MockErrorApi.ts @@ -14,12 +14,7 @@ * limitations under the License. */ -import { - ErrorApi, - ErrorContext, - errorApiRef, - Observable, -} from '@backstage/core-api'; +import { ErrorApi, ErrorContext, Observable } from '@backstage/core-api'; type Options = { collect?: boolean; @@ -40,12 +35,6 @@ const nullObservable = { }; export class MockErrorApi implements ErrorApi { - static factory = { - implements: errorApiRef, - deps: {}, - factory: () => new MockErrorApi(), - }; - private readonly errors = new Array(); private readonly waiters = new Set(); diff --git a/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts b/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts index a3a4ef16d6..006b44a49c 100644 --- a/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts +++ b/packages/test-utils/src/testUtils/apis/StorageApi/MockStorageApi.ts @@ -17,7 +17,6 @@ import { Observable, StorageApi, - storageApiRef, StorageValueChange, } from '@backstage/core-api'; import ObservableImpl from 'zen-observable'; @@ -25,12 +24,6 @@ import ObservableImpl from 'zen-observable'; export type MockStorageBucket = { [key: string]: any }; export class MockStorageApi implements StorageApi { - static factory = { - implements: storageApiRef, - deps: {}, - factory: () => MockStorageApi.create(), - }; - private readonly namespace: string; private readonly data: MockStorageBucket; diff --git a/packages/test-utils/src/testUtils/appWrappers.test.tsx b/packages/test-utils/src/testUtils/appWrappers.test.tsx index 19c02c2158..464c547ecc 100644 --- a/packages/test-utils/src/testUtils/appWrappers.test.tsx +++ b/packages/test-utils/src/testUtils/appWrappers.test.tsx @@ -49,9 +49,6 @@ describe('wrapInTestApp', () => { expect.stringMatching( /^Warning: An update to %s inside a test was not wrapped in act\(...\)/, ), - expect.stringMatching( - /^Warning: An update to %s inside a test was not wrapped in act\(...\)/, - ), ]); }); diff --git a/packages/test-utils/src/testUtils/appWrappers.tsx b/packages/test-utils/src/testUtils/appWrappers.tsx index 2e3a73e346..182de1ef63 100644 --- a/packages/test-utils/src/testUtils/appWrappers.tsx +++ b/packages/test-utils/src/testUtils/appWrappers.tsx @@ -24,7 +24,7 @@ import privateExports, { } from '@backstage/core-api'; import { RenderResult } from '@testing-library/react'; import { renderWithEffects } from '@backstage/test-utils-core'; -import { createMockApiRegistry } from './mockApiRegistry'; +import { mockApis } from './mockApis'; const { PrivateAppImpl } = privateExports; @@ -58,10 +58,9 @@ export function wrapInTestApp( options: TestAppOptions = {}, ): ReactElement { const { routeEntries = ['/'] } = options; - const apis = createMockApiRegistry(); const app = new PrivateAppImpl({ - apis, + apis: [], components: { NotFoundErrorPage, BootErrorPage, @@ -80,6 +79,7 @@ export function wrapInTestApp( variant: 'light', }, ], + defaultApis: mockApis, }); let Wrapper: ComponentType; diff --git a/packages/test-utils/src/testUtils/mockApiRegistry.ts b/packages/test-utils/src/testUtils/mockApis.ts similarity index 70% rename from packages/test-utils/src/testUtils/mockApiRegistry.ts rename to packages/test-utils/src/testUtils/mockApis.ts index 15733ead88..e05a8e6cac 100644 --- a/packages/test-utils/src/testUtils/mockApiRegistry.ts +++ b/packages/test-utils/src/testUtils/mockApis.ts @@ -14,14 +14,14 @@ * limitations under the License. */ -import { ApiTestRegistry } from '@backstage/core-api'; +import { + storageApiRef, + errorApiRef, + createApiFactory, +} from '@backstage/core-api'; import { MockErrorApi, MockStorageApi } from './apis'; -export function createMockApiRegistry(): ApiTestRegistry { - const registry = new ApiTestRegistry(); - - registry.register(MockErrorApi.factory); - registry.register(MockStorageApi.factory); - - return registry; -} +export const mockApis = [ + createApiFactory(errorApiRef, new MockErrorApi()), + createApiFactory(storageApiRef, MockStorageApi.create()), +]; From c4f794aacbb64de10ead8951bb08e6cc73959640 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 4 Sep 2020 17:34:25 +0200 Subject: [PATCH 470/656] core-api: remove ApiTestRegistry --- .../core-api/src/apis/ApiTestRegistry.test.ts | 118 ------------------ packages/core-api/src/apis/ApiTestRegistry.ts | 90 ------------- packages/core-api/src/apis/index.ts | 1 - 3 files changed, 209 deletions(-) delete mode 100644 packages/core-api/src/apis/ApiTestRegistry.test.ts delete mode 100644 packages/core-api/src/apis/ApiTestRegistry.ts diff --git a/packages/core-api/src/apis/ApiTestRegistry.test.ts b/packages/core-api/src/apis/ApiTestRegistry.test.ts deleted file mode 100644 index a4fbf1b144..0000000000 --- a/packages/core-api/src/apis/ApiTestRegistry.test.ts +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { ApiTestRegistry } from './ApiTestRegistry'; -import { createApiRef } from './ApiRef'; - -describe('ApiTestRegistry', () => { - const aRef = createApiRef({ id: 'a', description: '' }); - const bRef = createApiRef({ id: 'b', description: '' }); - const cRef = createApiRef({ id: 'c', description: '' }); - - it('should be created', () => { - const registry = new ApiTestRegistry(); - expect(registry.get(aRef)).toBe(undefined); - expect(registry.get(bRef)).toBe(undefined); - expect(registry.get(cRef)).toBe(undefined); - }); - - it('should register a factory', () => { - const registry = new ApiTestRegistry(); - registry.register({ implements: aRef, deps: {}, factory: () => 3 }); - expect(registry.get(aRef)).toBe(3); - expect(registry.get(bRef)).toBe(undefined); - expect(registry.get(cRef)).toBe(undefined); - }); - - it('should register factories with dependencies', () => { - // 100% coverage + happy typescript = hasOwnProperty + this atrocity - const cDeps = Object.create( - { c: cRef }, - { a: { enumerable: true, value: aRef } }, - ); - cDeps.b = bRef; - - const registry = new ApiTestRegistry(); - registry.register({ implements: aRef, deps: {}, factory: () => 3 }); - registry.register({ - implements: bRef, - deps: { dep: aRef }, - factory: ({ dep }) => `hello ${dep}`, - }); - registry.register({ - implements: cRef, - deps: cDeps, - factory: ({ a, b }) => b.repeat(a), - }); - expect(registry.get(aRef)).toBe(3); - expect(registry.get(bRef)).toBe('hello 3'); - expect(registry.get(cRef)).toBe('hello 3hello 3hello 3'); - }); - - it('should not allow cyclic dependencies', () => { - const registry = new ApiTestRegistry(); - registry.register({ - implements: aRef, - deps: { b: bRef }, - factory: () => 1, - }); - registry.register({ - implements: bRef, - deps: { c: cRef }, - factory: () => 'b', - }); - registry.register({ - implements: cRef, - deps: { a: aRef }, - factory: () => 'c', - }); - expect(() => registry.get(aRef)).toThrow( - 'Circular dependency of api factory for apiRef{a}', - ); - expect(() => registry.get(bRef)).toThrow( - 'Circular dependency of api factory for apiRef{b}', - ); - expect(() => registry.get(cRef)).toThrow( - 'Circular dependency of api factory for apiRef{c}', - ); - }); - - it('should throw error if dependency is not available', () => { - const registry = new ApiTestRegistry(); - registry.register({ - implements: aRef, - deps: { b: bRef }, - factory: () => 1, - }); - expect(() => registry.get(aRef)).toThrow( - 'No API factory available for dependency apiRef{b} of dependent apiRef{a}', - ); - expect(registry.get(bRef)).toBe(undefined); - expect(registry.get(cRef)).toBe(undefined); - }); - - it('should only call factory func once', () => { - const registry = new ApiTestRegistry(); - const factory = jest.fn().mockReturnValue(2); - registry.register({ implements: aRef, deps: {}, factory }); - - expect(factory).toHaveBeenCalledTimes(0); - expect(registry.get(aRef)).toBe(2); - expect(factory).toHaveBeenCalledTimes(1); - expect(registry.get(aRef)).toBe(2); - expect(factory).toHaveBeenCalledTimes(1); - }); -}); diff --git a/packages/core-api/src/apis/ApiTestRegistry.ts b/packages/core-api/src/apis/ApiTestRegistry.ts deleted file mode 100644 index d41d959e99..0000000000 --- a/packages/core-api/src/apis/ApiTestRegistry.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { ApiRef } from './ApiRef'; -import { - TypesToApiRefs, - AnyApiRef, - ApiHolder, - ApiFactory, - AnyApiFactory, -} from './types'; - -export class ApiTestRegistry implements ApiHolder { - private readonly apis = new Map(); - private factories = new Map(); - - get(ref: ApiRef): T | undefined { - return this.load(ref); - } - - register( - factory: ApiFactory, - ): ApiTestRegistry { - this.factories.set(factory.implements, factory); - return this; - } - - private load(ref: ApiRef, loading: AnyApiRef[] = []): T | undefined { - const impl = this.apis.get(ref); - if (impl) { - return impl as T; - } - - const factory = this.factories.get(ref); - if (!factory) { - return undefined; - } - - if (loading.includes(factory.implements)) { - throw new Error( - `Circular dependency of api factory for ${factory.implements}`, - ); - } - - const deps = this.loadDeps(ref, factory.deps, [ - ...loading, - factory.implements, - ]); - const api = factory.factory(deps); - this.apis.set(ref, api); - return api as T; - } - - private loadDeps( - dependent: ApiRef, - apis: TypesToApiRefs, - loading: AnyApiRef[], - ): T { - const impls = {} as T; - - for (const key in apis) { - if (apis.hasOwnProperty(key)) { - const ref = apis[key]; - - const api = this.load(ref, loading); - if (!api) { - throw new Error( - `No API factory available for dependency ${ref} of dependent ${dependent}`, - ); - } - impls[key] = api; - } - } - - return impls; - } -} diff --git a/packages/core-api/src/apis/index.ts b/packages/core-api/src/apis/index.ts index c3689b6703..c856a13668 100644 --- a/packages/core-api/src/apis/index.ts +++ b/packages/core-api/src/apis/index.ts @@ -16,7 +16,6 @@ export { ApiProvider, useApi, useApiHolder } from './ApiProvider'; export { ApiRegistry } from './ApiRegistry'; -export { ApiTestRegistry } from './ApiTestRegistry'; export * from './ApiRef'; export * from './types'; export * from './helpers'; From beb9269841b49152588a2604414216738ea56e88 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 4 Sep 2020 17:40:57 +0200 Subject: [PATCH 471/656] core-api: docs for ApiFactoryRegistry and do not override same scope --- .../src/apis/ApiFactoryRegistry.test.ts | 4 ++++ .../core-api/src/apis/ApiFactoryRegistry.ts | 22 +++++++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/packages/core-api/src/apis/ApiFactoryRegistry.test.ts b/packages/core-api/src/apis/ApiFactoryRegistry.test.ts index 43370f41a7..8b4818ac53 100644 --- a/packages/core-api/src/apis/ApiFactoryRegistry.test.ts +++ b/packages/core-api/src/apis/ApiFactoryRegistry.test.ts @@ -42,12 +42,16 @@ describe('ApiFactoryRegistry', () => { const registry = new ApiFactoryRegistry(); expect(registry.register('default', aFactory1)).toBe(true); expect(registry.get(aRef)).toBe(aFactory1); + expect(registry.register('default', aFactory2)).toBe(false); + expect(registry.get(aRef)).toBe(aFactory1); expect(registry.register('app', aFactory2)).toBe(true); expect(registry.get(aRef)).toBe(aFactory2); expect(registry.register('default', aFactory1)).toBe(false); expect(registry.get(aRef)).toBe(aFactory2); expect(registry.register('static', aFactory1)).toBe(true); expect(registry.get(aRef)).toBe(aFactory1); + expect(registry.register('static', aFactory2)).toBe(false); + expect(registry.get(aRef)).toBe(aFactory2); expect(registry.register('app', aFactory2)).toBe(false); expect(registry.get(aRef)).toBe(aFactory1); expect(registry.getAllApis()).toEqual(new Set([aRef])); diff --git a/packages/core-api/src/apis/ApiFactoryRegistry.ts b/packages/core-api/src/apis/ApiFactoryRegistry.ts index 9d75944d8b..fa52249e25 100644 --- a/packages/core-api/src/apis/ApiFactoryRegistry.ts +++ b/packages/core-api/src/apis/ApiFactoryRegistry.ts @@ -34,24 +34,38 @@ enum ScopeLevels { } type FactoryTuple = { - level: number; + priority: number; factory: AnyApiFactory; }; +/** + * ApiFactoryRegistry is an ApiFactoryHolder implementation that enables + * registration of API Factories with different scope. + * + * Each scope has an assigned priority, where factories registered with + * higher priority scopes override ones with lower priority. + */ export class ApiFactoryRegistry implements ApiFactoryHolder { private readonly factories = new Map(); + /** + * Register a new API factory. Returns true if the factory was added + * to the registry. + * + * A factory will not be added to the registry if there is already + * an existing factory with the same or higher priority. + */ register( scope: ApiFactoryScope, factory: ApiFactory, ) { - const level = ScopeLevels[scope]; + const priority = ScopeLevels[scope]; const existing = this.factories.get(factory.implements); - if (existing && existing.level > level) { + if (existing && existing.priority > priority) { return false; } - this.factories.set(factory.implements, { level, factory }); + this.factories.set(factory.implements, { priority, factory }); return true; } From 38b67031023d2e718f960379ae3ae25426803196 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 4 Sep 2020 17:45:38 +0200 Subject: [PATCH 472/656] core-api: change ApiFactory.implements to .api --- packages/app/src/apis.ts | 4 ++-- .../src/apis/ApiFactoryRegistry.test.ts | 10 +++++----- .../core-api/src/apis/ApiFactoryRegistry.ts | 10 +++++----- .../core-api/src/apis/ApiResolver.test.ts | 20 +++++++++---------- packages/core-api/src/apis/ApiResolver.ts | 11 +++------- packages/core-api/src/apis/helpers.ts | 2 +- packages/core-api/src/apis/types.ts | 2 +- packages/core-api/src/app/App.tsx | 10 +++++----- packages/core/src/api-wrappers/defaultApis.ts | 20 +++++++++---------- plugins/catalog/src/plugin.ts | 2 +- plugins/circleci/dev/index.tsx | 4 ++-- plugins/circleci/src/plugin.ts | 2 +- plugins/graphiql/dev/index.tsx | 2 +- plugins/jenkins/src/plugin.ts | 2 +- plugins/lighthouse/dev/index.tsx | 2 +- plugins/lighthouse/src/plugin.ts | 2 +- plugins/rollbar/src/plugin.ts | 2 +- plugins/scaffolder/src/plugin.ts | 2 +- plugins/techdocs/dev/index.tsx | 2 +- plugins/techdocs/src/plugin.ts | 2 +- 20 files changed, 54 insertions(+), 59 deletions(-) diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index 12d3594921..7f57f6f970 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -40,7 +40,7 @@ import { export const apis = [ // TODO(Rugvip): migrate to use /api createApiFactory({ - implements: discoveryApiRef, + api: discoveryApiRef, deps: { configApi: configApiRef }, factory: ({ configApi }) => UrlPatternDiscovery.compile( @@ -48,7 +48,7 @@ export const apis = [ ), }), createApiFactory({ - implements: graphQlBrowseApiRef, + api: graphQlBrowseApiRef, deps: { errorApi: errorApiRef, githubAuthApi: githubAuthApiRef }, factory: ({ errorApi, githubAuthApi }) => GraphQLEndpoints.from([ diff --git a/packages/core-api/src/apis/ApiFactoryRegistry.test.ts b/packages/core-api/src/apis/ApiFactoryRegistry.test.ts index 8b4818ac53..9f44adaef3 100644 --- a/packages/core-api/src/apis/ApiFactoryRegistry.test.ts +++ b/packages/core-api/src/apis/ApiFactoryRegistry.test.ts @@ -18,12 +18,12 @@ import { ApiFactoryRegistry } from './ApiFactoryRegistry'; import { createApiRef } from './ApiRef'; const aRef = createApiRef({ id: 'a', description: '' }); -const aFactory1 = { implements: aRef, deps: {}, factory: () => 1 }; -const aFactory2 = { implements: aRef, deps: {}, factory: () => 2 }; +const aFactory1 = { api: aRef, deps: {}, factory: () => 1 }; +const aFactory2 = { api: aRef, deps: {}, factory: () => 2 }; const bRef = createApiRef({ id: 'b', description: '' }); -const bFactory = { implements: bRef, deps: {}, factory: () => 'x' }; +const bFactory = { api: bRef, deps: {}, factory: () => 'x' }; const cRef = createApiRef({ id: 'c', description: '' }); -const cFactory = { implements: cRef, deps: {}, factory: () => 'y' }; +const cFactory = { api: cRef, deps: {}, factory: () => 'y' }; describe('ApiFactoryRegistry', () => { it('should be empty when created', () => { @@ -51,7 +51,7 @@ describe('ApiFactoryRegistry', () => { expect(registry.register('static', aFactory1)).toBe(true); expect(registry.get(aRef)).toBe(aFactory1); expect(registry.register('static', aFactory2)).toBe(false); - expect(registry.get(aRef)).toBe(aFactory2); + expect(registry.get(aRef)).toBe(aFactory1); expect(registry.register('app', aFactory2)).toBe(false); expect(registry.get(aRef)).toBe(aFactory1); expect(registry.getAllApis()).toEqual(new Set([aRef])); diff --git a/packages/core-api/src/apis/ApiFactoryRegistry.ts b/packages/core-api/src/apis/ApiFactoryRegistry.ts index fa52249e25..0d36e6c550 100644 --- a/packages/core-api/src/apis/ApiFactoryRegistry.ts +++ b/packages/core-api/src/apis/ApiFactoryRegistry.ts @@ -27,7 +27,7 @@ type ApiFactoryScope = | 'app' // Factories registered in the app, overriding default ones | 'static'; // APIs that can't be overridden, e.g. config -enum ScopeLevels { +enum ScopePriority { default = 10, app = 50, static = 100, @@ -59,13 +59,13 @@ export class ApiFactoryRegistry implements ApiFactoryHolder { scope: ApiFactoryScope, factory: ApiFactory, ) { - const priority = ScopeLevels[scope]; - const existing = this.factories.get(factory.implements); - if (existing && existing.priority > priority) { + const priority = ScopePriority[scope]; + const existing = this.factories.get(factory.api); + if (existing && existing.priority >= priority) { return false; } - this.factories.set(factory.implements, { priority, factory }); + this.factories.set(factory.api, { priority, factory }); return true; } diff --git a/packages/core-api/src/apis/ApiResolver.test.ts b/packages/core-api/src/apis/ApiResolver.test.ts index ab4a571cd5..3cd40f289e 100644 --- a/packages/core-api/src/apis/ApiResolver.test.ts +++ b/packages/core-api/src/apis/ApiResolver.test.ts @@ -25,17 +25,17 @@ const cRef = createApiRef<{ x: string }>({ id: 'c', description: '' }); function createRegistry() { const registry = new ApiFactoryRegistry(); registry.register('default', { - implements: aRef, + api: aRef, deps: {}, factory: () => 1, }); registry.register('default', { - implements: bRef, + api: bRef, deps: {}, factory: () => 'b', }); registry.register('default', { - implements: cRef, + api: cRef, deps: { b: bRef }, factory: ({ b }) => ({ x: 'x', b }), }); @@ -45,17 +45,17 @@ function createRegistry() { function createLongCyclicRegistry() { const registry = new ApiFactoryRegistry(); registry.register('default', { - implements: aRef, + api: aRef, deps: { b: bRef }, factory: () => 1, }); registry.register('default', { - implements: bRef, + api: bRef, deps: { c: cRef }, factory: () => 'b', }); registry.register('default', { - implements: cRef, + api: cRef, deps: { a: aRef }, factory: () => ({ x: 'x' }), }); @@ -65,17 +65,17 @@ function createLongCyclicRegistry() { function createShortCyclicRegistry() { const registry = new ApiFactoryRegistry(); registry.register('default', { - implements: aRef, + api: aRef, deps: { a: aRef }, factory: () => 1, }); registry.register('default', { - implements: bRef, + api: bRef, deps: { c: cRef }, factory: () => 'b', }); registry.register('default', { - implements: cRef, + api: cRef, deps: { b: bRef }, factory: () => ({ x: 'x' }), }); @@ -162,7 +162,7 @@ describe('ApiResolver', () => { const registry = new ApiFactoryRegistry(); const factory = jest.fn().mockReturnValue(2); registry.register('default', { - implements: aRef, + api: aRef, deps: {}, factory, }); diff --git a/packages/core-api/src/apis/ApiResolver.ts b/packages/core-api/src/apis/ApiResolver.ts index 9f48a75783..cb65186a37 100644 --- a/packages/core-api/src/apis/ApiResolver.ts +++ b/packages/core-api/src/apis/ApiResolver.ts @@ -74,16 +74,11 @@ export class ApiResolver implements ApiHolder { return undefined; } - if (loading.includes(factory.implements)) { - throw new Error( - `Circular dependency of api factory for ${factory.implements}`, - ); + if (loading.includes(factory.api)) { + throw new Error(`Circular dependency of api factory for ${factory.api}`); } - const deps = this.loadDeps(ref, factory.deps, [ - ...loading, - factory.implements, - ]); + const deps = this.loadDeps(ref, factory.deps, [...loading, factory.api]); const api = factory.factory(deps); this.apis.set(ref, api); return api as T; diff --git a/packages/core-api/src/apis/helpers.ts b/packages/core-api/src/apis/helpers.ts index dda6c57fb0..7d616acd01 100644 --- a/packages/core-api/src/apis/helpers.ts +++ b/packages/core-api/src/apis/helpers.ts @@ -40,7 +40,7 @@ export function createApiFactory< ): ApiFactory { if ('id' in factory) { return { - implements: factory, + api: factory, deps: {} as TypesToApiRefs, factory: () => instance!, }; diff --git a/packages/core-api/src/apis/types.ts b/packages/core-api/src/apis/types.ts index 5b2956cfa1..61c229b18e 100644 --- a/packages/core-api/src/apis/types.ts +++ b/packages/core-api/src/apis/types.ts @@ -31,7 +31,7 @@ export type ApiHolder = { }; export type ApiFactory = { - implements: ApiRef; + api: ApiRef; deps: TypesToApiRefs; factory(deps: Deps): Api; }; diff --git a/packages/core-api/src/app/App.tsx b/packages/core-api/src/app/App.tsx index 1897a12d16..9dd2fb138f 100644 --- a/packages/core-api/src/app/App.tsx +++ b/packages/core-api/src/app/App.tsx @@ -298,12 +298,12 @@ export class PrivateAppImpl implements BackstageApp { const registry = new ApiFactoryRegistry(); registry.register('static', { - implements: appThemeApiRef, + api: appThemeApiRef, deps: {}, factory: () => AppThemeSelector.createWithStorage(this.themes), }); registry.register('static', { - implements: configApiRef, + api: configApiRef, deps: {}, factory: () => { if (!this.configApi) { @@ -315,7 +315,7 @@ export class PrivateAppImpl implements BackstageApp { }, }); registry.register('static', { - implements: identityApiRef, + api: identityApiRef, deps: {}, factory: () => this.identityApi, }); @@ -329,7 +329,7 @@ export class PrivateAppImpl implements BackstageApp { if (!registry.register('default', factory)) { throw new Error( `Plugin ${plugin.getId()} tried to register duplicate or forbidden API factory for ${ - factory.implements + factory.api }`, ); } @@ -339,7 +339,7 @@ export class PrivateAppImpl implements BackstageApp { for (const factory of this.apis) { if (!registry.register('app', factory)) { throw new Error( - `Duplicate or forbidden API factory for ${factory.implements} in app`, + `Duplicate or forbidden API factory for ${factory.api} in app`, ); } } diff --git a/packages/core/src/api-wrappers/defaultApis.ts b/packages/core/src/api-wrappers/defaultApis.ts index 82b60d31e6..a3f0cb0251 100644 --- a/packages/core/src/api-wrappers/defaultApis.ts +++ b/packages/core/src/api-wrappers/defaultApis.ts @@ -48,7 +48,7 @@ import { export const defaultApis = [ createApiFactory({ - implements: discoveryApiRef, + api: discoveryApiRef, deps: { configApi: configApiRef }, factory: ({ configApi }) => UrlPatternDiscovery.compile( @@ -57,20 +57,20 @@ export const defaultApis = [ }), createApiFactory(alertApiRef, new AlertApiForwarder()), createApiFactory({ - implements: errorApiRef, + api: errorApiRef, deps: { alertApi: alertApiRef }, factory: ({ alertApi }) => new ErrorAlerter(alertApi, new ErrorApiForwarder()), }), createApiFactory({ - implements: storageApiRef, + api: storageApiRef, deps: { errorApi: errorApiRef }, factory: ({ errorApi }) => WebStorage.create({ errorApi }), }), createApiFactory(featureFlagsApiRef, new FeatureFlags()), createApiFactory(oauthRequestApiRef, new OAuthRequestManager()), createApiFactory({ - implements: googleAuthApiRef, + api: googleAuthApiRef, deps: { discoveryApi: discoveryApiRef, oauthRequestApi: oauthRequestApiRef, @@ -79,7 +79,7 @@ export const defaultApis = [ GoogleAuth.create({ discoveryApi, oauthRequestApi }), }), createApiFactory({ - implements: microsoftAuthApiRef, + api: microsoftAuthApiRef, deps: { discoveryApi: discoveryApiRef, oauthRequestApi: oauthRequestApiRef, @@ -88,7 +88,7 @@ export const defaultApis = [ MicrosoftAuth.create({ discoveryApi, oauthRequestApi }), }), createApiFactory({ - implements: githubAuthApiRef, + api: githubAuthApiRef, deps: { discoveryApi: discoveryApiRef, oauthRequestApi: oauthRequestApiRef, @@ -97,7 +97,7 @@ export const defaultApis = [ GithubAuth.create({ discoveryApi, oauthRequestApi }), }), createApiFactory({ - implements: oktaAuthApiRef, + api: oktaAuthApiRef, deps: { discoveryApi: discoveryApiRef, oauthRequestApi: oauthRequestApiRef, @@ -106,7 +106,7 @@ export const defaultApis = [ OktaAuth.create({ discoveryApi, oauthRequestApi }), }), createApiFactory({ - implements: gitlabAuthApiRef, + api: gitlabAuthApiRef, deps: { discoveryApi: discoveryApiRef, oauthRequestApi: oauthRequestApiRef, @@ -115,7 +115,7 @@ export const defaultApis = [ GitlabAuth.create({ discoveryApi, oauthRequestApi }), }), createApiFactory({ - implements: auth0AuthApiRef, + api: auth0AuthApiRef, deps: { discoveryApi: discoveryApiRef, oauthRequestApi: oauthRequestApiRef, @@ -124,7 +124,7 @@ export const defaultApis = [ Auth0Auth.create({ discoveryApi, oauthRequestApi }), }), createApiFactory({ - implements: oauth2ApiRef, + api: oauth2ApiRef, deps: { discoveryApi: discoveryApiRef, oauthRequestApi: oauthRequestApiRef, diff --git a/plugins/catalog/src/plugin.ts b/plugins/catalog/src/plugin.ts index 61cdf5c95a..dfe12fd500 100644 --- a/plugins/catalog/src/plugin.ts +++ b/plugins/catalog/src/plugin.ts @@ -26,7 +26,7 @@ export const plugin = createPlugin({ id: 'catalog', apis: [ createApiFactory({ - implements: catalogApiRef, + api: catalogApiRef, deps: { discoveryApi: discoveryApiRef }, factory: ({ discoveryApi }) => new CatalogClient({ discoveryApi }), }), diff --git a/plugins/circleci/dev/index.tsx b/plugins/circleci/dev/index.tsx index ed7dd5de9c..4bf67d5cb2 100644 --- a/plugins/circleci/dev/index.tsx +++ b/plugins/circleci/dev/index.tsx @@ -20,9 +20,9 @@ import { circleCIApiRef, CircleCIApi } from '../src/api'; createDevApp() .registerPlugin(plugin) - .registerApiFactory({ + .registerApi({ + api: circleCIApiRef, deps: {}, factory: () => new CircleCIApi(), - implements: circleCIApiRef, }) .render(); diff --git a/plugins/circleci/src/plugin.ts b/plugins/circleci/src/plugin.ts index 06c6381c37..86be898366 100644 --- a/plugins/circleci/src/plugin.ts +++ b/plugins/circleci/src/plugin.ts @@ -23,7 +23,7 @@ export const plugin = createPlugin({ id: 'circleci', apis: [ createApiFactory({ - implements: circleCIApiRef, + api: circleCIApiRef, deps: { configApi: configApiRef }, factory: ({ configApi }) => new CircleCIApi( diff --git a/plugins/graphiql/dev/index.tsx b/plugins/graphiql/dev/index.tsx index 93b7b35334..b93995a5dc 100644 --- a/plugins/graphiql/dev/index.tsx +++ b/plugins/graphiql/dev/index.tsx @@ -21,7 +21,7 @@ import { plugin, GraphQLEndpoints, graphQlBrowseApiRef } from '../src'; createDevApp() .registerPlugin(plugin) .registerApi({ - implements: graphQlBrowseApiRef, + api: graphQlBrowseApiRef, deps: { errorApi: errorApiRef, githubAuthApi: githubAuthApiRef, diff --git a/plugins/jenkins/src/plugin.ts b/plugins/jenkins/src/plugin.ts index fe24e1b63d..4d1af322c4 100644 --- a/plugins/jenkins/src/plugin.ts +++ b/plugins/jenkins/src/plugin.ts @@ -32,7 +32,7 @@ export const plugin = createPlugin({ id: 'jenkins', apis: [ createApiFactory({ - implements: jenkinsApiRef, + api: jenkinsApiRef, deps: { configApi: configApiRef }, factory: ({ configApi }) => new JenkinsApi( diff --git a/plugins/lighthouse/dev/index.tsx b/plugins/lighthouse/dev/index.tsx index 6fa39577f2..bf761965f1 100644 --- a/plugins/lighthouse/dev/index.tsx +++ b/plugins/lighthouse/dev/index.tsx @@ -21,7 +21,7 @@ import { lighthouseApiRef, LighthouseRestApi } from '../src'; createDevApp() .registerPlugin(plugin) .registerApi({ - implements: lighthouseApiRef, + api: lighthouseApiRef, deps: {}, factory: () => new LighthouseRestApi('http://localhost:3003'), }) diff --git a/plugins/lighthouse/src/plugin.ts b/plugins/lighthouse/src/plugin.ts index 5700a9991f..677b5f682a 100644 --- a/plugins/lighthouse/src/plugin.ts +++ b/plugins/lighthouse/src/plugin.ts @@ -24,7 +24,7 @@ export const plugin = createPlugin({ id: 'lighthouse', apis: [ createApiFactory({ - implements: lighthouseApiRef, + api: lighthouseApiRef, deps: { configApi: configApiRef }, factory: ({ configApi }) => LighthouseRestApi.fromConfig(configApi), }), diff --git a/plugins/rollbar/src/plugin.ts b/plugins/rollbar/src/plugin.ts index 21432572e1..c3ca6173ff 100644 --- a/plugins/rollbar/src/plugin.ts +++ b/plugins/rollbar/src/plugin.ts @@ -29,7 +29,7 @@ export const plugin = createPlugin({ id: 'rollbar', apis: [ createApiFactory({ - implements: rollbarApiRef, + api: rollbarApiRef, deps: { discoveryApi: discoveryApiRef }, factory: ({ discoveryApi }) => new RollbarClient({ discoveryApi }), }), diff --git a/plugins/scaffolder/src/plugin.ts b/plugins/scaffolder/src/plugin.ts index 15ec749f2f..41f7a03249 100644 --- a/plugins/scaffolder/src/plugin.ts +++ b/plugins/scaffolder/src/plugin.ts @@ -28,7 +28,7 @@ export const plugin = createPlugin({ id: 'scaffolder', apis: [ createApiFactory({ - implements: scaffolderApiRef, + api: scaffolderApiRef, deps: { discoveryApi: discoveryApiRef }, factory: ({ discoveryApi }) => new ScaffolderApi({ discoveryApi }), }), diff --git a/plugins/techdocs/dev/index.tsx b/plugins/techdocs/dev/index.tsx index 9902cf6526..12974ef8b7 100644 --- a/plugins/techdocs/dev/index.tsx +++ b/plugins/techdocs/dev/index.tsx @@ -21,12 +21,12 @@ import { techdocsStorageApiRef } from '../src'; createDevApp() .registerApi({ + api: techdocsStorageApiRef, deps: {}, factory: () => new TechDocsDevStorageApi({ apiOrigin: 'http://localhost:3000/api', }), - implements: techdocsStorageApiRef, }) .registerPlugin(plugin) .render(); diff --git a/plugins/techdocs/src/plugin.ts b/plugins/techdocs/src/plugin.ts index 673089be75..d00fcac485 100644 --- a/plugins/techdocs/src/plugin.ts +++ b/plugins/techdocs/src/plugin.ts @@ -56,7 +56,7 @@ export const plugin = createPlugin({ id: 'techdocs', apis: [ createApiFactory({ - implements: techdocsStorageApiRef, + api: techdocsStorageApiRef, deps: { configApi: configApiRef }, factory: ({ configApi }) => new TechDocsStorageApi({ From b3770859eb87aba78b97f72bf6f436dfa6ae517e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Sep 2020 11:20:01 +0200 Subject: [PATCH 473/656] create-app: update apis.ts for auto DI --- .../default-app/packages/app/src/apis.ts | 86 +++---------------- 1 file changed, 12 insertions(+), 74 deletions(-) diff --git a/packages/create-app/templates/default-app/packages/app/src/apis.ts b/packages/create-app/templates/default-app/packages/app/src/apis.ts index ba4343801f..e0503e504f 100644 --- a/packages/create-app/templates/default-app/packages/app/src/apis.ts +++ b/packages/create-app/templates/default-app/packages/app/src/apis.ts @@ -1,79 +1,17 @@ import { - ApiRegistry, - alertApiRef, - errorApiRef, - AlertApiForwarder, - ConfigApi, - ErrorApiForwarder, - ErrorAlerter, discoveryApiRef, UrlPatternDiscovery, - oauthRequestApiRef, - OAuthRequestManager, - storageApiRef, - WebStorage, + createApiFactory, + configApiRef, } from '@backstage/core'; -import { - lighthouseApiRef, - LighthouseRestApi, -} from '@backstage/plugin-lighthouse'; - -import { - GithubActionsClient, - githubActionsApiRef, -} from '@backstage/plugin-github-actions'; - -import { - techdocsStorageApiRef, - TechDocsStorageApi, -} from '@backstage/plugin-techdocs'; - -import { catalogApiRef, CatalogClient } from '@backstage/plugin-catalog'; -import { CircleCIApi, circleCIApiRef } from '@backstage/plugin-circleci'; - -import { scaffolderApiRef, ScaffolderApi } from '@backstage/plugin-scaffolder'; - - - -export const apis = (config: ConfigApi) => { - // eslint-disable-next-line no-console - console.log(`Creating APIs for ${config.getString('app.title')}`); - - const backendUrl = config.getString('backend.baseUrl'); - const techdocsStorageUrl = config.getString('techdocs.storageUrl'); - - const builder = ApiRegistry.builder(); - - const discoveryApi = builder.add( - discoveryApiRef, - UrlPatternDiscovery.compile(`${backendUrl}/{{ pluginId }}`), - ); - const alertApi = builder.add(alertApiRef, new AlertApiForwarder()); - const errorApi = builder.add( - errorApiRef, - new ErrorAlerter(alertApi, new ErrorApiForwarder()), - ); - - builder.add(storageApiRef, WebStorage.create({ errorApi })); - builder.add(oauthRequestApiRef, new OAuthRequestManager()); - - builder.add(catalogApiRef, new CatalogClient({ discoveryApi })); - builder.add(githubActionsApiRef, new GithubActionsClient()); - - builder.add(lighthouseApiRef, new LighthouseRestApi('http://localhost:3003')); - - builder.add( - circleCIApiRef, - new CircleCIApi(`${backendUrl}/proxy/circleci/api`), - ); - - builder.add(scaffolderApiRef, new ScaffolderApi({ discoveryApi })); - - builder.add( - techdocsStorageApiRef, - new TechDocsStorageApi({ apiOrigin: techdocsStorageUrl }), - ); - - return builder.build(); -}; +export const apis = [ + createApiFactory({ + api: discoveryApiRef, + deps: { configApi: configApiRef }, + factory: ({ configApi }) => + UrlPatternDiscovery.compile( + `${configApi.getString('backend.baseUrl')}/{{ pluginId }}`, + ), + }), +]; From 0178f37706297d9778edd06af741bf311d7a98fb Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Sep 2020 15:58:21 +0200 Subject: [PATCH 474/656] dev-utils: added test for DevApp --- packages/dev-utils/src/devApp/render.test.tsx | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 packages/dev-utils/src/devApp/render.test.tsx diff --git a/packages/dev-utils/src/devApp/render.test.tsx b/packages/dev-utils/src/devApp/render.test.tsx new file mode 100644 index 0000000000..fbebf2039b --- /dev/null +++ b/packages/dev-utils/src/devApp/render.test.tsx @@ -0,0 +1,43 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { render } from '@testing-library/react'; +import { useApi, configApiRef } from '@backstage/core'; +import { createDevApp } from './render'; + +const anyEnv = (process.env = { ...process.env }) as any; + +describe('DevAppBuilder', () => { + it('should be able to render a component in a dev app', async () => { + anyEnv.APP_CONFIG = [ + { context: 'test', data: { app: { title: 'Test App' } } }, + ]; + + const MyComponent = () => { + const configApi = useApi(configApiRef); + return
My App: {configApi.getString('app.title')}
; + }; + + const DevApp = createDevApp() + .addRootChild() + .build(); + + const rendered = render(); + + expect(await rendered.findByText('My App: Test App')).toBeInTheDocument(); + }); +}); From d712d2050535b1c197f831443ea33f3f085b587c Mon Sep 17 00:00:00 2001 From: Kinga Sieminiak Date: Tue, 8 Sep 2020 11:43:48 +0200 Subject: [PATCH 475/656] Enable usage of oauth2 frontend provider --- packages/core-api/src/apis/definitions/auth.ts | 6 +++++- .../src/apis/implementations/auth/oauth2/OAuth2.ts | 12 +++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/core-api/src/apis/definitions/auth.ts b/packages/core-api/src/apis/definitions/auth.ts index 469414d3dc..1ff8c46dad 100644 --- a/packages/core-api/src/apis/definitions/auth.ts +++ b/packages/core-api/src/apis/definitions/auth.ts @@ -299,7 +299,11 @@ export const microsoftAuthApiRef = createApiRef< * Provides authentication for custom identity providers. */ export const oauth2ApiRef = createApiRef< - OAuthApi & OpenIdConnectApi & ProfileInfoApi & SessionStateApi + OAuthApi & + OpenIdConnectApi & + ProfileInfoApi & + SessionStateApi & + BackstageIdentityApi >({ id: 'core.auth.oauth2', description: 'Example of how to use oauth2 custom provider', diff --git a/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts b/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts index cf582b3a13..80a24cf9e1 100644 --- a/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts +++ b/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts @@ -42,6 +42,7 @@ type CreateOptions = { environment?: string; provider?: AuthProvider & { id: string }; + defaultScopes?: string[]; }; export type OAuth2Response = { @@ -70,6 +71,11 @@ class OAuth2 environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, + defaultScopes = [ + 'openid', + `${SCOPE_PREFIX}userinfo.email`, + `${SCOPE_PREFIX}userinfo.profile`, + ], }: CreateOptions) { const connector = new DefaultAuthConnector({ discoveryApi, @@ -93,11 +99,7 @@ class OAuth2 const sessionManager = new RefreshingAuthSessionManager({ connector, - defaultScopes: new Set([ - 'openid', - `${SCOPE_PREFIX}userinfo.email`, - `${SCOPE_PREFIX}userinfo.profile`, - ]), + defaultScopes: new Set(defaultScopes), sessionScopes: (session: OAuth2Session) => session.providerInfo.scopes, sessionShouldRefresh: (session: OAuth2Session) => { const expiresInSec = From 61d1f0267e64256ee30392291c203b0c7e26af4a Mon Sep 17 00:00:00 2001 From: Kinga Sieminiak Date: Tue, 8 Sep 2020 12:16:31 +0200 Subject: [PATCH 476/656] Keep 'defaultScopes' value as an empty array by default --- .../src/apis/implementations/auth/oauth2/OAuth2.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts b/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts index 80a24cf9e1..3f8ebce5ba 100644 --- a/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts +++ b/packages/core-api/src/apis/implementations/auth/oauth2/OAuth2.ts @@ -62,8 +62,6 @@ const DEFAULT_PROVIDER = { icon: OAuth2Icon, }; -const SCOPE_PREFIX = ''; - class OAuth2 implements OAuthApi, OpenIdConnectApi, ProfileInfoApi, SessionStateApi { static create({ @@ -71,11 +69,7 @@ class OAuth2 environment = 'development', provider = DEFAULT_PROVIDER, oauthRequestApi, - defaultScopes = [ - 'openid', - `${SCOPE_PREFIX}userinfo.email`, - `${SCOPE_PREFIX}userinfo.profile`, - ], + defaultScopes = [], }: CreateOptions) { const connector = new DefaultAuthConnector({ discoveryApi, From 0fa4c72a92d1e419fbad5df08d18b1cc66733d2d Mon Sep 17 00:00:00 2001 From: Omer Farooq <17722640+o-farooq@users.noreply.github.com> Date: Wed, 9 Sep 2020 00:25:46 +1200 Subject: [PATCH 477/656] revert yarn.lock upgrade Storybook to version 6 update storybook renderer layout docs: update create app command and link revert yarn.lock changes revert yarn.lock revert yarn --- docs/features/techdocs/getting-started.md | 2 +- microsite/blog/2020-04-30-how-to-quickly-set-up-backstage.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/features/techdocs/getting-started.md b/docs/features/techdocs/getting-started.md index 414b3baae8..6cc6f43e72 100644 --- a/docs/features/techdocs/getting-started.md +++ b/docs/features/techdocs/getting-started.md @@ -28,7 +28,7 @@ installed: To create a new Backstage application for TechDocs, run the following command: ```bash -npx @backstage/cli create-app +npx @backstage/create-app ``` You will then be prompted to enter a name for your application. Once that's diff --git a/microsite/blog/2020-04-30-how-to-quickly-set-up-backstage.md b/microsite/blog/2020-04-30-how-to-quickly-set-up-backstage.md index 65ee02f6a0..dff567eaf3 100644 --- a/microsite/blog/2020-04-30-how-to-quickly-set-up-backstage.md +++ b/microsite/blog/2020-04-30-how-to-quickly-set-up-backstage.md @@ -34,7 +34,7 @@ You get to take full advantage of a platform that we at Spotify have been using Just run the backstage-cli: ```bash -npx @backstage/cli create-app +npx @backstage/create-app ``` Name your app, and we will create everything you need: @@ -50,7 +50,7 @@ yarn start And you are good to go! 👠-Read the full documentation on how to [create an app](/docs/getting-started/create-an-app.md) on GitHub. +Read the full documentation on how to [create an app](/docs/getting-started/create-an-app) on GitHub. ## What do I get? (Let's get technical...) From 1b9673799f21eb9595857386832da663bc3490be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Tue, 8 Sep 2020 14:39:49 +0200 Subject: [PATCH 478/656] Remove Explore from sidebar (#2327) * Remove Explore from sidebar * Also in app --- packages/app/src/components/Root/Root.tsx | 2 -- .../templates/default-app/packages/app/src/sidebar.tsx | 2 -- 2 files changed, 4 deletions(-) diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx index ab95f623af..ae0d24fa5e 100644 --- a/packages/app/src/components/Root/Root.tsx +++ b/packages/app/src/components/Root/Root.tsx @@ -18,7 +18,6 @@ import React, { FC, useContext } from 'react'; import PropTypes from 'prop-types'; import { Link, makeStyles } from '@material-ui/core'; import HomeIcon from '@material-ui/icons/Home'; -import ExploreIcon from '@material-ui/icons/Explore'; import ExtensionIcon from '@material-ui/icons/Extension'; import BuildIcon from '@material-ui/icons/BuildRounded'; import RuleIcon from '@material-ui/icons/AssignmentTurnedIn'; @@ -91,7 +90,6 @@ const Root: FC<{}> = ({ children }) => ( {/* Global nav, not org-specific */} - diff --git a/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx index fa9a397751..9e343b86ac 100644 --- a/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx @@ -2,7 +2,6 @@ import React from 'react'; import HomeIcon from '@material-ui/icons/Home'; import LibraryBooks from '@material-ui/icons/LibraryBooks'; import CreateComponentIcon from '@material-ui/icons/AddCircleOutline'; -import ExploreIcon from '@material-ui/icons/Explore'; import BuildIcon from '@material-ui/icons/BuildRounded'; import RuleIcon from '@material-ui/icons/AssignmentTurnedIn'; import MapIcon from '@material-ui/icons/MyLocation'; @@ -23,7 +22,6 @@ export const AppSidebar = () => ( {/* Global nav, not org-specific */} - From ec87e8b53d2708d114fbdecc77981163a9814a10 Mon Sep 17 00:00:00 2001 From: Ilya Lyamkin <3854930+ilyamkin@users.noreply.github.com> Date: Tue, 8 Sep 2020 15:43:37 +0200 Subject: [PATCH 479/656] Allow paths with dots --- packages/cli/src/lib/bundler/server.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/lib/bundler/server.ts b/packages/cli/src/lib/bundler/server.ts index 4c4a424d08..e1fb560e22 100644 --- a/packages/cli/src/lib/bundler/server.ts +++ b/packages/cli/src/lib/bundler/server.ts @@ -42,7 +42,11 @@ export async function serveBundle(options: ServeOptions) { contentBase: paths.targetPublic, contentBasePublicPath: config.output?.publicPath, publicPath: config.output?.publicPath, - historyApiFallback: true, + 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', https: url.protocol === 'https:', From 6cdad09d3b9fb6dc2e94d0281a8af4e3f8bcdd73 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Sep 2020 16:34:15 +0200 Subject: [PATCH 480/656] core: fix InfoCard type troubles --- .../core/src/layout/InfoCard/InfoCard.tsx | 57 +++++++++---------- 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/packages/core/src/layout/InfoCard/InfoCard.tsx b/packages/core/src/layout/InfoCard/InfoCard.tsx index 983356dd4a..6914d396b1 100644 --- a/packages/core/src/layout/InfoCard/InfoCard.tsx +++ b/packages/core/src/layout/InfoCard/InfoCard.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import React, { FC, ReactNode } from 'react'; +import React, { ReactNode } from 'react'; import { Card, CardActions, @@ -23,7 +23,6 @@ import { CardHeaderProps, Divider, withStyles, - createStyles, makeStyles, } from '@material-ui/core'; import classNames from 'classnames'; @@ -31,37 +30,26 @@ import { ErrorBoundary } from '../ErrorBoundary'; import { BottomLink, BottomLinkProps } from '../BottomLink'; const useStyles = makeStyles(theme => ({ - header: { - padding: theme.spacing(2, 2, 2, 2.5), - }, noPadding: { padding: 0, '&:last-child': { paddingBottom: 0, }, }, + header: { + padding: theme.spacing(2, 2, 2, 2.5), + }, + headerTitle: { + fontWeight: 700, + }, + headerSubheader: { + paddingTop: theme.spacing(1), + }, + headerAvatar: {}, + headerAction: {}, + headerContent: {}, })); -const useBoldHeaderStyles = makeStyles(theme => - createStyles({ - title: { - fontWeight: 700, - }, - subheader: { - paddingTop: theme.spacing(1), - }, - root: {}, - avatar: {}, - action: {}, - content: {}, - }), -); - -const BoldHeader = ({ classes, ...props }: CardHeaderProps) => { - const styles = useBoldHeaderStyles({ classes }); - return ; -}; - const CardActionsTopRight = withStyles(theme => ({ root: { display: 'inline-block', @@ -137,6 +125,8 @@ const VARIANT_STYLES = { * ... */ type Props = { + title?: ReactNode; + subheader?: ReactNode; divider?: boolean; deepLink?: BottomLinkProps; slackChannel?: string; @@ -152,9 +142,9 @@ type Props = { actionsTopRight?: ReactNode; className?: string; noPadding?: boolean; -} & Pick; +}; -export const InfoCard: FC = ({ +export const InfoCard = ({ title, subheader, divider, @@ -170,7 +160,7 @@ export const InfoCard: FC = ({ actionsTopRight, className, noPadding, -}) => { +}: Props): JSX.Element => { const classes = useStyles(); /** @@ -201,8 +191,15 @@ export const InfoCard: FC = ({ {title && ( <> - Date: Tue, 8 Sep 2020 18:51:19 +0200 Subject: [PATCH 481/656] docs: update docs for utility apis to include auto DI --- docs/api/utility-apis.md | 177 ++++++++++++++++++++++++++++----------- 1 file changed, 126 insertions(+), 51 deletions(-) diff --git a/docs/api/utility-apis.md b/docs/api/utility-apis.md index 0e09da3f83..37cde87262 100644 --- a/docs/api/utility-apis.md +++ b/docs/api/utility-apis.md @@ -17,7 +17,7 @@ Utility APIs. While the `createPlugin` API is focused on the initialization plugins and the app, the Utility APIs provide ways for plugins to communicate during their entire life cycle. -## Usage +## Consuming APIs Each Utility API is tied to an `ApiRef` instance, which is a global singleton object without any additional state or functionality, its only purpose is to @@ -55,51 +55,112 @@ from any component inside Backstage, including the ones in `@backstage/core`. The only requirement is that they are beneath the `AppProvider` in the react tree. -## Registering Utility API Implementations +## Supplying APIs -The Backstage App is responsible for providing implementations for all Utility -APIs required by plugins. The example app in this repo registers its APIs inside -[src/apis.ts](/packages/app/src/apis.ts). Here's an example of how to wire up -the `ErrorApi` inside an app: +### API Factories + +APIs are registered in the form of `ApiFactories`, which encapsulate the process +of instantiating an API. It is a collection of three things: the `ApiRef` of the +API to instantiate, a list of all required dependencies, and a factory function +that returns a new API instance. + +For example, this is the default `ApiFactory` for the `ErrorApi`: ```ts -import { - ApiRegistry, - createApp, - alertApiRef, - errorApiRef, - AlertApiForwarder, - ErrorApiForwarder, - ErrorAlerter, - ConfigApi, -} from '@backstage/core'; - -const apis = (config: ConfigApi) => { - const builder = ApiRegistry.builder(); - - // The alert API is a self-contained implementation that shows alerts to the user. - const alertApi = builder.add(alertApiRef, new AlertApiForwarder()); - - // The error API uses the alert API to send error notifications to the user. - builder.add(errorApiRef, new ErrorAlerter(alertApi, new ErrorApiForwarder())); - return builder.build(); -}; - -const app = createApp({ - apis, - // ... other config +createApiFactory({ + api: errorApiRef, + deps: { alertApi: alertApiRef }, + factory: ({ alertApi }) => + new ErrorAlerter(alertApi, new ErrorApiForwarder()), }); ``` -The `ApiRegistry` is used to register all Utility APIs in the app and associate -them with `ApiRef`s. It implements the `ApiHolder` interface, which enables it -to provide an API implementation given an `ApiRef`. +In this example the `errorApiRef` is our API, which encapsulates the `ErrorApi` +type. The `alertApiRef` is our single dependency, which we give the name +`alertApi`, and is then passed on to the factory function, which returns an +implementation of the `ErrorApi`. -Note that our `ErrorApi` implementation depends on another Utility API, the -`AlertApi`. This is the method with which APIs can depend on other APIs, using -manual dependency injection at the initialization of the app. In general, if you -want to depend on another Utility API in an implementation of an API, you import -the type for that API and make it a constructor parameter. +The `createApiFactory` function is a thin wrapper that enables TypeScript type +inference. You may notice that there are no type annotations in the above +example, and that is because we're able to infer all types from the `ApiRef`s. +TypeScript will make sure that the return value of the `factory` function +matches the type embedded in `api`'s `ApiRef`, in this case the `ErrorApi`. It +will also match the types between the `deps` and the parameters of the `factory` +function, again using the type embedded within the `ApiRef`s. + +## Registering API Factories + +The responsibility for adding Utility APIs to a Backstage app lies in three +different locations: the Backstage core library, each plugin included in the +app, and the app itself. + +### Core APIs + +Starting with the Backstage core library, it provides implementation for all of +the core APIs. The core APIs are the ones exported by `@backstage/core`, such as +the `errorApiRef` and `configApiRef`. You can find a full list of them +[here](../reference/utility-apis/README.md). + +The core APIs are loaded for any app created with `createApp` from +`@backstage/core`, which means that there is no step that needs to be taken to +include these APIs in an app. + +### Plugin APIs + +In addition to the core APIs, plugins can define and export their own APIs. +While doing so they should usually also provide default implementations of their +own APIs, for example, the `catalog` plugin exports `catalogApiRef`, and also +supplies a default `ApiFactory` of that API using the `CatalogClient`. There is +one restriction to plugin-provided API Factories: plugins may not supply +factories for core APIs, trying to do so will cause the app to crash. + +Plugins supply their APIs through the `apis` option of `createPlugin`, for +example: + +```ts +export const plugin = createPlugin({ + id: 'techdocs', + apis: [ + createApiFactory({ + api: techdocsStorageApiRef, + deps: { configApi: configApiRef }, + factory({ configApi }) { + return new TechDocsStorageApi({ + apiOrigin: configApi.getString('techdocs.storageUrl'), + }); + }, + }), + ], +}); +``` + +### App APIs + +Lastly, the app itself is the final point where APIs can be added, and what has +the final say in what APIs will be loaded at runtime. The app may override the +factories for any of the core or plugin APIs, with the exception of the config, +app theme, and identity APIs. These are static APIs that are tied into the +`createApp` implementation, and therefore not possible to override. + +Overriding APIs is useful for apps that want to switch out behavior to tailor it +to their environment. In some cases plugins may also export multiple +implementations of the same API, where they each have their own different +requirements on for example backend storage and surrounding environment. + +Supplying APIs to the app works just like for plugins: + +```ts +const app = createApp({ + apis: [ + /* ApiFactories */ + ], + // ... other options +}); +``` + +A common pattern is to export a list of all APIs from `apis.ts`, next to +`App.tsx`. See the [example app in this repo](../../packages/app/src/apis.ts) +for an example. ## Custom implementations of Utility APIs @@ -127,19 +188,33 @@ implement the `ErrorApi`, as it is checked by the type embedded in the ## Defining custom Utility APIs -The pattern for plugins defining their own Utility APIs is not fully established -yet. The current way is for the plugin to export its own `ApiRef` and type for -the API, along with one or more implementations. It is then up to the app to -import, and register those APIs. See for example the -[lighthouse](/plugins/lighthouse/src/api.ts) or -[graphiql](/plugins/graphiql/src/lib/api/types.ts) plugins for examples of this. +Plugins are free to define their own Utility APIs. Simply define the TypeScript +interface for the API, and create an `ApiRef` using `createApiRef` exported from +`@backstage/core`. Also be sure to provide at least one implementation of the +API, and to declare a default factory for the API in `createPlugin`. -The goal is to make this process a bit smoother, but that requires work in other -parts of Backstage, like configuration management. So it remains as a TODO. If -you have more questions regarding this, or have an idea for an API that you want -to share outside your plugin, hit us up in -[GitHub issues](https://github.com/spotify/backstage/issues/new/choose) or the -[Backstage Discord server](https://discord.gg/EBHEGzX). +Custom Utility APIs can be either public or private, which it is up to the +plugin to choose. Private APIs do not expose an external API surface, and it's +therefore possible to make breaking changes to the API without affecting other +users of the plugin. If an API is made public however, it opens up for other +plugins to make use of the API, and it also makes it possible for users for your +plugin to override the API in the app. It is however important to maintain +backwards compatibility of public APIs, as you may otherwise break apps that are +using your plugin. + +To make an API public, simply export the `ApiRef` of the API, and any associated +types. To make an API private, just avoid exporting the `ApiRef`, but still be +sure to supply a default factory to `createPlugin`. + +Private APIs are useful for plugins that want to depend on other APIs outside of +React components, but not have to expose an entire API surface to maintain. When +using private APIs, it is fine to use the `typeof` of an implementing class as +the type parameter passed to `createApiRef`, while public APIs should always +define a separate TypeScript interface type. + +Plugins may depend on APIs from other plugins, both in React components and as +dependencies to API factories. Do however be sure to not cause circular +dependencies between plugins. ## Architecture From f2bb9be15f5ede3a9d7fdcc31ee3b54752b513b5 Mon Sep 17 00:00:00 2001 From: AlleyWei <64219471+AlleyWei@users.noreply.github.com> Date: Tue, 8 Sep 2020 14:57:15 -0400 Subject: [PATCH 482/656] Update index.js (#2332) --- microsite/pages/en/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/pages/en/index.js b/microsite/pages/en/index.js index 7a58ede25f..e233826224 100644 --- a/microsite/pages/en/index.js +++ b/microsite/pages/en/index.js @@ -297,7 +297,7 @@ class Index extends React.Component { /> - Backstage TechDocs (Coming Soon) + Backstage TechDocs Docs like code From cfdccbda2344fcdb17b7b2bce478b18e42c5c099 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Tue, 8 Sep 2020 21:12:17 +0200 Subject: [PATCH 483/656] Updating demo page (#2335) * Update demos.js * Update demos.js * Update demos.js * Update demos.js * Update demos.js Co-authored-by: AlleyWei <64219471+AlleyWei@users.noreply.github.com> --- microsite/pages/en/demos.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/microsite/pages/en/demos.js b/microsite/pages/en/demos.js index 9f9dcec819..0cb200892c 100644 --- a/microsite/pages/en/demos.js +++ b/microsite/pages/en/demos.js @@ -78,6 +78,39 @@ const Background = props => { + + + + Make documentation easy + + Documentation! Everyone needs it, no one wants to create it, and + no one can ever find it. Backstage follows a “docs like code†+ approach: you write documentation in Markdown files right + alongside your code. This makes documentation easier to create, + maintain, find — and, you know, actually use. This demo video + showcases Spotify’s internal version of TechDocs. Learn more about{' '} + + TechDocs + + . + + + Watch now + + + + + + + + From cdf7f07f756ec10c55dd09aaaff49fccebcd1fb9 Mon Sep 17 00:00:00 2001 From: Gary Niemen <65337273+garyniemen@users.noreply.github.com> Date: Tue, 8 Sep 2020 21:14:05 +0200 Subject: [PATCH 484/656] techdocs-blog (#2333) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * techdocs-blog * Remove extra heading Co-authored-by: Stefan Ã…lund --- .../blog/2020-09-08-announcing-tech-docs.md | 120 ++++++++++++++++++ .../assets/announcing-techdocs/discover1.png | Bin 0 -> 63966 bytes .../assets/announcing-techdocs/discover2.png | Bin 0 -> 56872 bytes .../announcing-techdocs/docs-in-backstage.png | Bin 0 -> 53879 bytes .../announcing-techdocs/feedback-loop1.png | Bin 0 -> 42103 bytes .../announcing-techdocs/feedback-loop2.png | Bin 0 -> 34396 bytes .../announcing-techdocs/github-issues.png | Bin 0 -> 26095 bytes .../assets/announcing-techdocs/metrics.png | Bin 0 -> 52455 bytes 8 files changed, 120 insertions(+) create mode 100644 microsite/blog/2020-09-08-announcing-tech-docs.md create mode 100644 microsite/blog/assets/announcing-techdocs/discover1.png create mode 100644 microsite/blog/assets/announcing-techdocs/discover2.png create mode 100644 microsite/blog/assets/announcing-techdocs/docs-in-backstage.png create mode 100644 microsite/blog/assets/announcing-techdocs/feedback-loop1.png create mode 100644 microsite/blog/assets/announcing-techdocs/feedback-loop2.png create mode 100644 microsite/blog/assets/announcing-techdocs/github-issues.png create mode 100644 microsite/blog/assets/announcing-techdocs/metrics.png diff --git a/microsite/blog/2020-09-08-announcing-tech-docs.md b/microsite/blog/2020-09-08-announcing-tech-docs.md new file mode 100644 index 0000000000..76c6a8539b --- /dev/null +++ b/microsite/blog/2020-09-08-announcing-tech-docs.md @@ -0,0 +1,120 @@ +--- +title: Announcing Tech Docs: Spotify’s docs-like-code for Backstage +author: Gary Niemen +authorURL: https://github.com/garyniemen +--- + +Since we [open sourced Backstage](https://backstage.io/blog/2020/03/16/announcing-backstage), one of the most requested features has been for a technical documentation plugin. Well, good news. The first open source version of TechDocs is here. Now let’s start collaborating and making it better, together. + + + +Internally, we call it TechDocs. It’s the most used plugin at Spotify by far — accounting for about 20% of our Backstage traffic (even though it is just one of 130+ plugins). Its popularity is evidence of something simple: We made documentation so easy to create, find, and use — people actually use it. + +We are quite sure the main reason for the success of TechDocs is our docs-like-code approach — engineers write their technical documentation in Markdown files that live together with the code. During CI, a documentation site is created using MkDocs, and all sites are rendered centrally in a Backstage plugin. On top of the static documentation, we incorporate additional metadata about the documentation site — such as owner, open GitHub Issues, Slack support channel, and Stack Overflow Enterprise tags. + +![available-templates](assets/announcing-techdocs/docs-in-backstage.png) + +Watch this video to see [Spotify’s internal version of TechDocs](https://backstage.io/demos) in action. + +But this is just one way to do it. Today we’re most excited for what the open version of TechDocs can become. + +## Okay, let’s start collaborating + +If you go to [GitHub](https://github.com/spotify/backstage/tree/master/plugins) now, you’ll find everything you need to start collaborating with us to build out the docs-like-code Backstage plugin — we’ll call it TechDocs in the open as well. + +You’ll find the code in [techdocs](https://github.com/spotify/backstage/tree/master/plugins/techdocs) (frontend) and [techdocs-backend](https://github.com/spotify/backstage/tree/master/plugins/techdocs-backend). (There are also two separate packages [techdocs-cli](https://github.com/spotify/backstage/tree/master/packages/techdocs-cli) and [techdocs-container](https://github.com/spotify/backstage/tree/master/packages/techdocs-container).) + +You’ll find issues to work on in the [issues queue](https://github.com/spotify/backstage/issues?q=is%3Aissue+is%3Aopen+label%3A%22docs-like-code%22+label%3A%22help+wanted%22), typically starting with TechDocs: and labeled with docs-like-code, some labeled good first issue. Feel free to add your own issues, of course. + +![available-templates](assets/announcing-techdocs/github-issues.png) + +What we have on GitHub so far is a first iteration of TechDocs that you can use end-to-end — in other words, from docs written in Markdown in GitHub to a published site on Backstage. + +More specifically, with this first iteration, you can: + +* Run TechDocs locally and read documentation. +* Configure your entity (e.g. service, website) so that Backstage builds your documentation and serves it in TechDocs. Documentation is displayed on the Docs tab in the Service Catalog and on its own page. +* Get documentation set up for free in your project when you create a new component out of one of the non-experimental templates (labeled with recommended). If you are looking for a standalone documentation project, use the docs-template. +* Choose your own storage solution for the documentation. +* Define your own API to interface with your documentation solution. + + +For a full overview, including getting started instructions, check out our [TechDocs Documentation](https://backstage.io/docs/features/techdocs/techdocs-overview). + +But before you go there, let me tell you a bit about the TechDocs story — and why we believe TechDocs is such a powerful yet simple solution for great documentation. + +## The TechDocs story + +Here is the TechDocs story. It’s not an uncommon one (we have learned from many other companies). + +About a year and a half ago, we conducted a company-wide productivity survey. The third largest problem according to all our engineers? Not being able to find the technical information they needed to do their work. And it’s not surprising. There was no standard way to produce and consume technical documentation, so teams were going their own way — using Confluence, Google Docs, README files, custom built websites, GitHub Pages, and so on and on. And those searching for information were left to hunt for it in all those different places until they found what they were looking for (if they ever did). Worse, if you did happen to find the documentation that you needed, there was no way to know whether the information was up-to-date or correct. In other words, there was no way to know whether you could trust what you found. We did have technical writers at the company, but they were mostly scattered across the company solving documentation problems within their own particular domain. + +So this is the fertile soil on which TechDocs was built. + +After a Hack Week implementation attracted interest from high up in the company, we formed a cross-functional team made up of technical writers and engineers with the mission to solve internal technical documentation at Spotify. And we started to build TechDocs. We went for a docs-like-code approach, fiercely optimizing for engineers and engineering workflows. We also went for an opinionated approach, telling everybody: This is the standard way to do technical documentation at Spotify. The sense was that engineers appreciated a documentation solution that was in line with their workflow and, after all the frustration of multiple tools, were relieved to be told “this is the way to do itâ€. + +For more information about this journey, take a look at my 20-minute talk from DevRelCon London from last December: [The Hero’s Journey: How we are solving internal technical documentation at Spotify](https://www.linkedin.com/posts/garyniemen_how-we-are-solving-internal-technical-documentation-activity-6646078605594030080-4L31). + +## Key problem areas that we are solving + +We have come a long way, fast — both in our implementation and in our thinking. Here are some of the key problem areas that we are addressing. Note that they are in various stages of implementation, and we won’t be able to release everything within our minimum plugin. In fact, see this as an appetite taster. What we hope is that we can build together. + +### Stuck to unstuck + +Very early on, we decided that the main problem we were trying to solve was to help engineers (when using technical documentation) go from stuck to unstuck, and fast. This became our guiding principle. Is what we are building helping engineers get unstuck faster? From this, it follows that we need to promote quality documentation on the one hand, and provide a high level of discoverability on the other. One without the other is not going to cut it. + +### Feedback loops + +What we want to build is a thriving community of technical documentation creators, contributors, and readers. We want this because, we believe, this is the way to drive up the quality of the documentation. More readers, more feedback, more doc updates. And driving up the quality of the corpus of technical documentation leads to trust which in turn leads to more engagement and, hence, more of a thriving community. + +To get this working, we recognised that we need to remove ‘friction from the system’ — we need to build in efficient feedback loops. For example, help engineers get their doc site up by providing documentation improvement hints and build information as close as possible to where they are already working. And for readers, make it easy to give feedback. And then for doc site owners, ensure that they are notified when there is feedback and incentivised to make the fix. + +![available-templates](assets/announcing-techdocs/feedback-loop1.png) + +![available-templates](assets/announcing-techdocs/feedback-loop2.png) + +### Trust + +How do I know whether to trust this piece of documentation? This is a question we want to be able to answer for those using technical documentation in Backstage. It’s not an easy nut to crack. It is almost, one could say, the hard problem of technical documentation. For example, some might say ‘last updated’ is a key factor. But what about stable, good quality documentation that has no need to be updated? What about page views? Yes, this is a good sign that the documentation is being found and viewed, but it doesn’t say anything about whether the documentation can be trusted. How about a button: Did this documentation help? This is good, but will people use it? Will we get enough data to show trust? We have lofty ambitions of one day providing a trust score on the doc site informed by a super-intelligent algorithm. But we are not there yet. For now, we have landed on surfacing when the documentation was last updated, top five contributors, the support channel, owning team, and number of open GitHub Issues. But going forward we are definitely up for solving the hard problem. We think there’s much more work to be done here and look forward to seeing ideas from the community. + +### Discoverability and search + +How to find stuff? That is another big question. As mentioned above, it’s all well and good having quality documentation, but it’s no use whatsoever if you can’t find it. If you know what you are looking for, then you can use a search engine. If you don’t know what you are looking for, then you are going to need more — like a well designed information architecture, a user friendly browse experience, and even intelligent suggestions based on your role and what you have searched for previously. + +In this problem area, we made use of Elasticsearch, the open source search engine that was already being used in Backstage, to implement documentation search across all documentation sites and per documentation site. In terms of discoverability, we implemented a documentation home page in Backstage that surfaces Spotify’s most important documents and uses metrics to list the company’s most used doc sites as well as the documentation equivalent of a “your daily mix†playlist. + +![available-templates](assets/announcing-techdocs/discover1.png) + +![available-templates](assets/announcing-techdocs/discover2.png) + +There is much more to do in the area of discoverability and search. + +### Use case variations + +The standard use case for TechDocs is: One component in Backstage equals one GitHub repository, equals one doc site. This use case comes in two flavours: the repository is a code repository with docs or a docs-only repository. Then, to meet the needs of one large part of the Spotify engineering organisation that uses monorepos (multi-component repositories), we added a third use case. We built an MkDocs plugin that enabled doc site creators to include documentation from doc folders in other parts of the repository. So this use case is: One main component in Backstage equals a monorepo with distributed documentation, equals one doc site. + +These three use cases satisfy most of the needs, but we have had plenty of requests for additional use cases, for example, the ability to create multiple doc sites from a multi-component repository and the ability to create one doc site from documentation in multiple repositories. + +### Metrics + +There are many good arguments for standardizing the way that technical documentation is produced and consumed. One of them is metrics. If we have one way of producing technical documentation (in our case, GitHub Enterprise) and one place where it shows up (in our case, Backstage), we are in a strong position to build up metrics that help all the various stakeholders — for example, us building TechDocs, teams creating documentation sites, and engineers trying to get unstuck. Just imagine how much harder this would be if technical documentation was produced and consumed in a plethora of places, such as Confluence, Google Docs, README files, custom web sites, and GitHub Pages. + +One thing we have recently completed is a Manage page in Backstage for doc site owners. Here teams can see all the documentation that they own, the number of GitHub Issues per doc site or page, and last updated. We have also built a large dashboard using the open source analytics software Redash to inform our own product development process. + +![available-templates](assets/announcing-techdocs/metrics.png) + +Again, there is a lot more that can be done in the area of metrics. Did I mention the trust score? + +### Code-like-docs + +Code-like-docs, what? Okay, it’s just my little play on words. This is what I mean. One request that we keep getting is to be able to have code in the documentation fetched from and in sync with code in GitHub. In this way, you can avoid code in the documentation going stale. MkDocs does have an extension for this — but it has some limitations. For example, the code has to be in the /docs folder with the Markdown files. We are working on developing a wider and more flexible solution. + +### Golden Paths + +At Spotify, we have the concept of [Golden Paths](https://engineering.atspotify.com/2020/08/17/how-we-use-golden-paths-to-solve-fragmentation-in-our-software-ecosystem/) — one for each engineering discipline. My favourite definition of Golden Path is that it is the “opinionated and supported pathâ€. Each Golden Path has an accompanying Golden Path tutorial that walks you through the opinionated and supported path. + +The Golden Path tutorials are Spotify’s most used and important documents and have shown themselves to be the most challenging to manage within a docs-like-code environment. One reason for this is that they are long, divided into many parts, and ownership is typically spread among many different teams. We have had to make use of GitHub codeowners to handle ownership and had to create datasets and data pipelines to be able to attach GitHub Issues to the specific parts or files that a team owns. Another challenge of the Golden Path tutorials is that parts are often dependent on other parts. We are just starting to look into how we can solve these dependency challenges in order to remove friction for engineers writing tutorial documentation. + +--- + +So that’s it for now. As you can see, we have come a long way AND there is much more to do. We are looking forward to continuing our docs-like-code journey out in the open with new, enthusiastic technical documentation friends. diff --git a/microsite/blog/assets/announcing-techdocs/discover1.png b/microsite/blog/assets/announcing-techdocs/discover1.png new file mode 100644 index 0000000000000000000000000000000000000000..af828104d79aa43fdc2c7bd680ccb8a23d101f92 GIT binary patch literal 63966 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 literal 0 HcmV?d00001 diff --git a/microsite/blog/assets/announcing-techdocs/discover2.png b/microsite/blog/assets/announcing-techdocs/discover2.png new file mode 100644 index 0000000000000000000000000000000000000000..11f6fe8347d71abf961212b0234a2703262c8ea5 GIT binary patch literal 56872 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 z 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 literal 0 HcmV?d00001 diff --git a/microsite/blog/assets/announcing-techdocs/docs-in-backstage.png b/microsite/blog/assets/announcing-techdocs/docs-in-backstage.png new file mode 100644 index 0000000000000000000000000000000000000000..9f4880b9118f4af2d2aa9febba10429bb2f7048d GIT binary patch literal 53879 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�^_&F`EGjkU7Q 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 literal 0 HcmV?d00001 diff --git a/microsite/blog/assets/announcing-techdocs/feedback-loop1.png b/microsite/blog/assets/announcing-techdocs/feedback-loop1.png new file mode 100644 index 0000000000000000000000000000000000000000..9733beb9e5a6b4c58f00c1f29040876fedcb5f89 GIT binary patch literal 42103 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 UV~yDo%-} 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

xYVECGbl$y_64YMJs*v;JL+(JOtfLy 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 literal 0 HcmV?d00001 diff --git a/microsite/blog/assets/announcing-techdocs/metrics.png b/microsite/blog/assets/announcing-techdocs/metrics.png new file mode 100644 index 0000000000000000000000000000000000000000..71c5f840a068f8cc72ba7fc704dad21659ad8d85 GIT binary patch literal 52455 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 Date: Tue, 8 Sep 2020 16:01:05 -0400 Subject: [PATCH 485/656] Update 2020-09-08-announcing-tech-docs.md --- microsite/blog/2020-09-08-announcing-tech-docs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/blog/2020-09-08-announcing-tech-docs.md b/microsite/blog/2020-09-08-announcing-tech-docs.md index 76c6a8539b..f4271d7204 100644 --- a/microsite/blog/2020-09-08-announcing-tech-docs.md +++ b/microsite/blog/2020-09-08-announcing-tech-docs.md @@ -1,5 +1,5 @@ --- -title: Announcing Tech Docs: Spotify’s docs-like-code for Backstage +title: Announcing TechDocs: Spotify’s docs-like-code for Backstage author: Gary Niemen authorURL: https://github.com/garyniemen --- From be0e619b1e6be6e04e013dcf4e5a8225845846d8 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Sep 2020 22:18:37 +0200 Subject: [PATCH 486/656] plugins/app-backend: publish package --- plugins/app-backend/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index e6c3dde7b6..f4080abc42 100644 --- a/plugins/app-backend/package.json +++ b/plugins/app-backend/package.json @@ -4,7 +4,7 @@ "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", - "private": true, + "private": false, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", From 07d4ad84d89c33a6b5a9d2a0097a74a9c2ba494a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Sep 2020 22:24:58 +0200 Subject: [PATCH 487/656] microsite: prettier --- .../blog/2020-09-08-announcing-tech-docs.md | 17 ++++++++--------- microsite/pages/en/index.js | 4 +--- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/microsite/blog/2020-09-08-announcing-tech-docs.md b/microsite/blog/2020-09-08-announcing-tech-docs.md index f4271d7204..7947e089f6 100644 --- a/microsite/blog/2020-09-08-announcing-tech-docs.md +++ b/microsite/blog/2020-09-08-announcing-tech-docs.md @@ -14,7 +14,7 @@ We are quite sure the main reason for the success of TechDocs is our docs-like-c ![available-templates](assets/announcing-techdocs/docs-in-backstage.png) -Watch this video to see [Spotify’s internal version of TechDocs](https://backstage.io/demos) in action. +Watch this video to see [Spotify’s internal version of TechDocs](https://backstage.io/demos) in action. But this is just one way to do it. Today we’re most excited for what the open version of TechDocs can become. @@ -32,12 +32,11 @@ What we have on GitHub so far is a first iteration of TechDocs that you can use More specifically, with this first iteration, you can: -* Run TechDocs locally and read documentation. -* Configure your entity (e.g. service, website) so that Backstage builds your documentation and serves it in TechDocs. Documentation is displayed on the Docs tab in the Service Catalog and on its own page. -* Get documentation set up for free in your project when you create a new component out of one of the non-experimental templates (labeled with recommended). If you are looking for a standalone documentation project, use the docs-template. -* Choose your own storage solution for the documentation. -* Define your own API to interface with your documentation solution. - +- Run TechDocs locally and read documentation. +- Configure your entity (e.g. service, website) so that Backstage builds your documentation and serves it in TechDocs. Documentation is displayed on the Docs tab in the Service Catalog and on its own page. +- Get documentation set up for free in your project when you create a new component out of one of the non-experimental templates (labeled with recommended). If you are looking for a standalone documentation project, use the docs-template. +- Choose your own storage solution for the documentation. +- Define your own API to interface with your documentation solution. For a full overview, including getting started instructions, check out our [TechDocs Documentation](https://backstage.io/docs/features/techdocs/techdocs-overview). @@ -59,7 +58,7 @@ For more information about this journey, take a look at my 20-minute talk from D We have come a long way, fast — both in our implementation and in our thinking. Here are some of the key problem areas that we are addressing. Note that they are in various stages of implementation, and we won’t be able to release everything within our minimum plugin. In fact, see this as an appetite taster. What we hope is that we can build together. -### Stuck to unstuck +### Stuck to unstuck Very early on, we decided that the main problem we were trying to solve was to help engineers (when using technical documentation) go from stuck to unstuck, and fast. This became our guiding principle. Is what we are building helping engineers get unstuck faster? From this, it follows that we need to promote quality documentation on the one hand, and provide a high level of discoverability on the other. One without the other is not going to cut it. @@ -86,7 +85,7 @@ In this problem area, we made use of Elasticsearch, the open source search engin ![available-templates](assets/announcing-techdocs/discover1.png) ![available-templates](assets/announcing-techdocs/discover2.png) - + There is much more to do in the area of discoverability and search. ### Use case variations diff --git a/microsite/pages/en/index.js b/microsite/pages/en/index.js index e233826224..2cc7ba6a11 100644 --- a/microsite/pages/en/index.js +++ b/microsite/pages/en/index.js @@ -296,9 +296,7 @@ class Index extends React.Component { src={`${baseUrl}animations/backstage-techdocs-icon-1.gif`} /> - - Backstage TechDocs - + Backstage TechDocs Docs like code Date: Wed, 9 Sep 2020 00:56:45 +0200 Subject: [PATCH 488/656] fix(register-component): pass through the catalog router ref --- packages/app/src/App.tsx | 13 +++- .../default-app/packages/app/src/App.tsx | 14 ++++- .../RegisterComponentPage.test.tsx | 16 ++++- .../RegisterComponentPage.tsx | 12 ++-- .../components/RegisterComponentPage/index.ts | 2 +- .../RegisterComponentResultDialog.test.tsx | 5 ++ .../RegisterComponentResultDialog.tsx | 61 ++++++++++++------- .../src/components/Router.tsx | 29 +++++++++ plugins/register-component/src/index.ts | 3 +- plugins/register-component/src/plugin.ts | 12 +--- 10 files changed, 124 insertions(+), 43 deletions(-) create mode 100644 plugins/register-component/src/components/Router.tsx diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 3d4f297e8e..5deced8212 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -19,6 +19,7 @@ import { AlertDisplay, OAuthRequestDialog, SignInPage, + createRouteRef, } from '@backstage/core'; import React, { FC } from 'react'; import Root from './components/Root'; @@ -30,6 +31,7 @@ import { Router as CatalogRouter } from '@backstage/plugin-catalog'; import { Router as DocsRouter } from '@backstage/plugin-techdocs'; import { Router as GraphiQLRouter } from '@backstage/plugin-graphiql'; import { Router as TechRadarRouter } from '@backstage/plugin-tech-radar'; +import { Router as RegisterComponentRouter } from '@backstage/plugin-register-component'; import { Route, Routes, Navigate } from 'react-router'; import { EntityPage } from './components/catalog/EntityPage'; @@ -55,11 +57,16 @@ const AppProvider = app.getProvider(); const AppRouter = app.getRouter(); const deprecatedAppRoutes = app.getRoutes(); +const catalogRouteRef = createRouteRef({ + path: '/catalog', + title: 'Service Catalog', +}); + const AppRoutes = () => ( } /> } /> @@ -68,6 +75,10 @@ const AppRoutes = () => ( element={} /> } /> + } + /> {...deprecatedAppRoutes} ); diff --git a/packages/create-app/templates/default-app/packages/app/src/App.tsx b/packages/create-app/templates/default-app/packages/app/src/App.tsx index 42eaeccc51..9449ac68a1 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.tsx @@ -4,6 +4,7 @@ import { AlertDisplay, OAuthRequestDialog, SidebarPage, + createRouteRef, } from '@backstage/core'; import { apis } from './apis'; import * as plugins from './plugins'; @@ -11,8 +12,9 @@ import { AppSidebar } from './sidebar'; import { Route, Routes, Navigate } from 'react-router'; import { Router as CatalogRouter } from '@backstage/plugin-catalog'; import { Router as DocsRouter } from '@backstage/plugin-techdocs'; - +import { Router as RegisterComponentRouter } from '@backstage/plugin-register-component'; import { Router as TechRadarRouter } from '@backstage/plugin-tech-radar'; + import { EntityPage } from './components/catalog/EntityPage'; const app = createApp({ @@ -24,6 +26,12 @@ const AppProvider = app.getProvider(); const AppRouter = app.getRouter(); const deprecatedAppRoutes = app.getRoutes(); +const catalogRouteRef = createRouteRef({ + path: '/catalog', + title: 'Service Catalog', +}); + + const App: FC<{}> = () => ( @@ -42,6 +50,10 @@ const App: FC<{}> = () => ( path="/tech-radar" element={} /> + } + /> {deprecatedAppRoutes} diff --git a/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.test.tsx b/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.test.tsx index 32213f04e4..32fa4a85c0 100644 --- a/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.test.tsx +++ b/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.test.tsx @@ -16,10 +16,15 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; -import RegisterComponentPage from './RegisterComponentPage'; +import { RegisterComponentPage } from './RegisterComponentPage'; import { ThemeProvider } from '@material-ui/core'; import { lightTheme } from '@backstage/theme'; -import { errorApiRef, ApiProvider, ApiRegistry } from '@backstage/core'; +import { + errorApiRef, + ApiProvider, + ApiRegistry, + createRouteRef, +} from '@backstage/core'; import { catalogApiRef } from '@backstage/plugin-catalog'; import { MemoryRouter } from 'react-router-dom'; @@ -45,7 +50,12 @@ const setup = () => ({ ])} > - + , diff --git a/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx b/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx index e61f904347..032a7d5257 100644 --- a/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx +++ b/plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import React, { FC, useState } from 'react'; +import React, { useState } from 'react'; import { Grid, makeStyles } from '@material-ui/core'; import { InfoCard, @@ -26,6 +26,7 @@ import { Header, SupportButton, ContentHeader, + RouteRef, } from '@backstage/core'; import RegisterComponentForm from '../RegisterComponentForm'; import { catalogApiRef } from '@backstage/plugin-catalog'; @@ -54,7 +55,11 @@ const FormStates = { } as const; type ValuesOf = T extends Record ? V : never; -const RegisterComponentPage: FC<{}> = () => { +export const RegisterComponentPage = ({ + catalogRouteRef, +}: { + catalogRouteRef: RouteRef; +}) => { const classes = useStyles(); const catalogApi = useApi(catalogApiRef); const [formState, setFormState] = useState>( @@ -130,10 +135,9 @@ const RegisterComponentPage: FC<{}> = () => { entities={result.data!.entities} onClose={() => setFormState(FormStates.Idle)} classes={{ paper: classes.dialogPaper }} + catalogRouteRef={catalogRouteRef} /> )} ); }; - -export default RegisterComponentPage; diff --git a/plugins/register-component/src/components/RegisterComponentPage/index.ts b/plugins/register-component/src/components/RegisterComponentPage/index.ts index e0757e0eee..8c325fe8b4 100644 --- a/plugins/register-component/src/components/RegisterComponentPage/index.ts +++ b/plugins/register-component/src/components/RegisterComponentPage/index.ts @@ -14,4 +14,4 @@ * limitations under the License. */ -export { default } from './RegisterComponentPage'; +export { RegisterComponentPage } from './RegisterComponentPage'; diff --git a/plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.test.tsx b/plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.test.tsx index 71933a0302..ae262ab866 100644 --- a/plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.test.tsx +++ b/plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.test.tsx @@ -20,6 +20,7 @@ import { cleanup, render } from '@testing-library/react'; import React, { ComponentProps } from 'react'; import { MemoryRouter } from 'react-router-dom'; import { RegisterComponentResultDialog } from './RegisterComponentResultDialog'; +import { createRouteRef } from '@backstage/core'; const setup = ( props?: Partial>, @@ -30,6 +31,10 @@ const setup = ( {}} entities={[]} + catalogRouteRef={createRouteRef({ + path: '/catalog', + title: 'Service Catalog', + })} {...props} /> diff --git a/plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.tsx b/plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.tsx index 15d0b9ced6..57b7fae9c3 100644 --- a/plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.tsx +++ b/plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import React, { FC } from 'react'; +import React from 'react'; import { Dialog, DialogTitle, @@ -28,25 +28,50 @@ import { Button, } from '@material-ui/core'; import { Entity } from '@backstage/catalog-model'; -import { StructuredMetadataTable } from '@backstage/core'; -import { generatePath } from 'react-router'; -import { - entityRoute, - rootRoute as catalogRootRoute, -} from '@backstage/plugin-catalog'; +import { StructuredMetadataTable, RouteRef } from '@backstage/core'; +import { generatePath, resolvePath } from 'react-router'; +import { entityRoute } from '@backstage/plugin-catalog'; import { Link as RouterLink } from 'react-router-dom'; type Props = { onClose: () => void; classes?: Record; entities: Entity[]; + catalogRouteRef: RouteRef; }; -export const RegisterComponentResultDialog: FC = ({ +const getEntityCatalogPath = ({ + entity, + catalogRouteRef, +}: { + entity: Entity; + catalogRouteRef: RouteRef; +}) => { + const optionalNamespaceAndName = [ + entity.metadata.namespace, + entity.metadata.name, + ] + .filter(Boolean) + .join(':'); + + const relativeEntityPathInsideCatalog = generatePath(entityRoute.path, { + optionalNamespaceAndName, + kind: entity.kind, + }); + + const resolvedAbsolutePath = resolvePath( + relativeEntityPathInsideCatalog, + catalogRouteRef.path, + )?.pathname; + return resolvedAbsolutePath; +}; + +export const RegisterComponentResultDialog = ({ onClose, classes, entities, -}) => ( + catalogRouteRef, +}: Props) => (

Component Registration Result @@ -55,17 +80,7 @@ export const RegisterComponentResultDialog: FC = ({ {entities.map((entity: any, index: number) => { - const entityPath = generatePath(entityRoute.path, { - optionalNamespaceAndName: [ - entity.metadata.namespace, - entity.metadata.name, - ] - .filter(Boolean) - .join(':'), - kind: entity.kind, - selectedTabId: 'overview', - }); - + const entityPath = getEntityCatalogPath({ entity, catalogRouteRef }); return ( = ({ - diff --git a/plugins/register-component/src/components/Router.tsx b/plugins/register-component/src/components/Router.tsx new file mode 100644 index 0000000000..eee7fd3806 --- /dev/null +++ b/plugins/register-component/src/components/Router.tsx @@ -0,0 +1,29 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { Route, Routes } from 'react-router'; +import { RegisterComponentPage } from './RegisterComponentPage'; +import { RouteRef } from '@backstage/core'; + +// As we don't know which path the catalog's router mounted on +// We need to inject this from the app +export const Router = ({ catalogRouteRef }: { catalogRouteRef: RouteRef }) => ( + + } + /> + +); diff --git a/plugins/register-component/src/index.ts b/plugins/register-component/src/index.ts index 5b20cb0158..ff7857cacd 100644 --- a/plugins/register-component/src/index.ts +++ b/plugins/register-component/src/index.ts @@ -14,4 +14,5 @@ * limitations under the License. */ -export { plugin, rootRoute } from './plugin'; +export { plugin } from './plugin'; +export { Router } from './components/Router'; diff --git a/plugins/register-component/src/plugin.ts b/plugins/register-component/src/plugin.ts index 9c73688a70..17f99917c8 100644 --- a/plugins/register-component/src/plugin.ts +++ b/plugins/register-component/src/plugin.ts @@ -14,18 +14,8 @@ * limitations under the License. */ -import { createPlugin, createRouteRef } from '@backstage/core'; -import RegisterComponentPage from './components/RegisterComponentPage'; - -export const rootRoute = createRouteRef({ - icon: () => null, - path: '/register-component', - title: 'Register component', -}); +import { createPlugin } from '@backstage/core'; export const plugin = createPlugin({ id: 'register-component', - register({ router }) { - router.addRoute(rootRoute, RegisterComponentPage); - }, }); From b5eea5387fc4789687a6e6734f3903d9fd9f3a9b Mon Sep 17 00:00:00 2001 From: AlleyWei <64219471+AlleyWei@users.noreply.github.com> Date: Wed, 9 Sep 2020 02:32:41 -0400 Subject: [PATCH 489/656] Update 2020-09-08-announcing-tech-docs.md (#2344) --- microsite/blog/2020-09-08-announcing-tech-docs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/blog/2020-09-08-announcing-tech-docs.md b/microsite/blog/2020-09-08-announcing-tech-docs.md index 7947e089f6..c30f47e8be 100644 --- a/microsite/blog/2020-09-08-announcing-tech-docs.md +++ b/microsite/blog/2020-09-08-announcing-tech-docs.md @@ -1,5 +1,5 @@ --- -title: Announcing TechDocs: Spotify’s docs-like-code for Backstage +title: Announcing TechDocs: Spotify’s docs-like-code plugin for Backstage author: Gary Niemen authorURL: https://github.com/garyniemen --- From f88d8873a828a86595a50f261af8b5d584686628 Mon Sep 17 00:00:00 2001 From: alandovskis <61091411+alandovskis@users.noreply.github.com> Date: Wed, 9 Sep 2020 02:52:36 -0400 Subject: [PATCH 490/656] Display Warning if TechDocs Annotation is Missing (#2319) * Display warning if TechDocs annotation is missing. * TechDocs: Add link to Getting Started when annotation is missing. --- plugins/techdocs/src/Router.tsx | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/plugins/techdocs/src/Router.tsx b/plugins/techdocs/src/Router.tsx index 45daa3f3d9..6dc0dd02ad 100644 --- a/plugins/techdocs/src/Router.tsx +++ b/plugins/techdocs/src/Router.tsx @@ -15,8 +15,9 @@ */ import React from 'react'; -import { Route, Routes } from 'react-router-dom'; import { Entity } from '@backstage/catalog-model'; +import { Route, Routes } from 'react-router-dom'; +import { WarningPanel } from '@backstage/core'; import { rootRouteRef, @@ -27,6 +28,8 @@ import { TechDocsHome } from './reader/components/TechDocsHome'; import { TechDocsPage } from './reader/components/TechDocsPage'; import { EntityPageDocs } from './EntityPageDocs'; +const TECHDOCS_ANNOTATION = 'backstage.io/techdocs-ref'; + export const Router = () => { return ( @@ -37,6 +40,20 @@ export const Router = () => { }; export const EmbeddedDocsRouter = ({ entity }: { entity: Entity }) => { + const projectId = entity.metadata.annotations?.[TECHDOCS_ANNOTATION]; + + if (!projectId) { + return ( + +
{TECHDOCS_ANNOTATION}
annotation is missing on the entity. +
+
+ Getting Started + + + ); + } + return ( Date: Wed, 9 Sep 2020 10:28:28 +0200 Subject: [PATCH 491/656] Use blue color from figma in theme --- packages/theme/src/themes.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/theme/src/themes.ts b/packages/theme/src/themes.ts index eddd6a4ede..73d6c13859 100644 --- a/packages/theme/src/themes.ts +++ b/packages/theme/src/themes.ts @@ -15,7 +15,7 @@ */ import { createTheme } from './baseTheme'; -import { blue, yellow } from '@material-ui/core/colors'; +import { yellow } from '@material-ui/core/colors'; export const lightTheme = createTheme({ palette: { @@ -39,7 +39,7 @@ export const lightTheme = createTheme({ }, }, primary: { - main: blue[500], + main: '#2E77D0', }, banner: { info: '#2E77D0', @@ -95,7 +95,7 @@ export const darkTheme = createTheme({ }, }, primary: { - main: blue[500], + main: '#2E77D0', }, banner: { info: '#2E77D0', From 82d329555c16af46db9b4e5cd2f44a3cc006a52e Mon Sep 17 00:00:00 2001 From: Jacob Valdemar Date: Wed, 9 Sep 2020 10:41:04 +0200 Subject: [PATCH 492/656] Add config param to Github in deafultProcessor (#2348) --- plugins/catalog-backend/src/ingestion/LocationReaders.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/catalog-backend/src/ingestion/LocationReaders.ts b/plugins/catalog-backend/src/ingestion/LocationReaders.ts index bddef6b4de..a86e073af9 100644 --- a/plugins/catalog-backend/src/ingestion/LocationReaders.ts +++ b/plugins/catalog-backend/src/ingestion/LocationReaders.ts @@ -77,7 +77,7 @@ export class LocationReaders implements LocationReader { return [ StaticLocationProcessor.fromConfig(config), new FileReaderProcessor(), - new GithubReaderProcessor(), + new GithubReaderProcessor(config), new GithubApiReaderProcessor(config), new GitlabApiReaderProcessor(config), new GitlabReaderProcessor(), From c84bfb5ca63cefde079926137e26543c63b7fdc3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 9 Sep 2020 10:45:56 +0200 Subject: [PATCH 493/656] docs: sync api reference docs --- docs/reference/utility-apis/AlertApi.md | 10 +- docs/reference/utility-apis/AppThemeApi.md | 16 ++-- .../utility-apis/BackstageIdentityApi.md | 10 +- docs/reference/utility-apis/Config.md | 26 ++++-- docs/reference/utility-apis/DiscoveryApi.md | 24 +++++ docs/reference/utility-apis/ErrorApi.md | 12 +-- .../reference/utility-apis/FeatureFlagsApi.md | 2 +- docs/reference/utility-apis/IdentityApi.md | 4 +- docs/reference/utility-apis/OAuthApi.md | 8 +- .../reference/utility-apis/OAuthRequestApi.md | 16 ++-- .../utility-apis/OpenIdConnectApi.md | 8 +- docs/reference/utility-apis/ProfileInfoApi.md | 10 +- docs/reference/utility-apis/README.md | 91 +++++++++++++------ .../reference/utility-apis/SessionStateApi.md | 14 ++- docs/reference/utility-apis/StorageApi.md | 12 +-- 15 files changed, 172 insertions(+), 91 deletions(-) create mode 100644 docs/reference/utility-apis/DiscoveryApi.md diff --git a/docs/reference/utility-apis/AlertApi.md b/docs/reference/utility-apis/AlertApi.md index 3490c1900e..d000a6d6a2 100644 --- a/docs/reference/utility-apis/AlertApi.md +++ b/docs/reference/utility-apis/AlertApi.md @@ -1,7 +1,7 @@ # AlertApi The AlertApi type is defined at -[packages/core-api/src/apis/definitions/AlertApi.ts:29](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/AlertApi.ts#L29). +[packages/core-api/src/apis/definitions/AlertApi.ts:29](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/AlertApi.ts#L29). The following Utility API implements this type: [alertApiRef](./README.md#alert) @@ -38,7 +38,7 @@ export type AlertMessage = { Defined at -[packages/core-api/src/apis/definitions/AlertApi.ts:19](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/AlertApi.ts#L19). +[packages/core-api/src/apis/definitions/AlertApi.ts:19](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/AlertApi.ts#L19). Referenced by: [post](#post), [alert\$](#alert). @@ -67,7 +67,7 @@ export type Observable<T> = { Defined at -[packages/core-api/src/types.ts:53](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L53). +[packages/core-api/src/types.ts:53](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L53). Referenced by: [alert\$](#alert). @@ -86,7 +86,7 @@ export type Observer<T> = { Defined at -[packages/core-api/src/types.ts:24](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L24). +[packages/core-api/src/types.ts:24](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L24). Referenced by: [Observable](#observable). @@ -109,6 +109,6 @@ export type Subscription = { Defined at -[packages/core-api/src/types.ts:33](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L33). +[packages/core-api/src/types.ts:33](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L33). Referenced by: [Observable](#observable). diff --git a/docs/reference/utility-apis/AppThemeApi.md b/docs/reference/utility-apis/AppThemeApi.md index eda1bafef0..e7d5296ceb 100644 --- a/docs/reference/utility-apis/AppThemeApi.md +++ b/docs/reference/utility-apis/AppThemeApi.md @@ -1,7 +1,7 @@ # AppThemeApi The AppThemeApi type is defined at -[packages/core-api/src/apis/definitions/AppThemeApi.ts:50](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/AppThemeApi.ts#L50). +[packages/core-api/src/apis/definitions/AppThemeApi.ts:50](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/AppThemeApi.ts#L50). The following Utility API implements this type: [appThemeApiRef](./README.md#apptheme) @@ -76,7 +76,7 @@ export type AppTheme = { Defined at -[packages/core-api/src/apis/definitions/AppThemeApi.ts:24](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/AppThemeApi.ts#L24). +[packages/core-api/src/apis/definitions/AppThemeApi.ts:24](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/AppThemeApi.ts#L24). Referenced by: [getInstalledThemes](#getinstalledthemes). @@ -87,7 +87,7 @@ export type BackstagePalette = Palette & Palette Defined at -[packages/theme/src/types.ts:67](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/theme/src/types.ts#L67). +[packages/theme/src/types.ts:70](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/theme/src/types.ts#L70). Referenced by: [BackstageTheme](#backstagetheme). @@ -100,7 +100,7 @@ export interface BackstageTheme extends Theme { Defined at -[packages/theme/src/types.ts:70](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/theme/src/types.ts#L70). +[packages/theme/src/types.ts:73](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/theme/src/types.ts#L73). Referenced by: [AppTheme](#apptheme). @@ -129,7 +129,7 @@ export type Observable<T> = { Defined at -[packages/core-api/src/types.ts:53](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L53). +[packages/core-api/src/types.ts:53](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L53). Referenced by: [activeThemeId\$](#activethemeid). @@ -148,7 +148,7 @@ export type Observer<T> = { Defined at -[packages/core-api/src/types.ts:24](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L24). +[packages/core-api/src/types.ts:24](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L24). Referenced by: [Observable](#observable). @@ -204,7 +204,7 @@ type PaletteAdditions = { Defined at -[packages/theme/src/types.ts:23](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/theme/src/types.ts#L23). +[packages/theme/src/types.ts:23](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/theme/src/types.ts#L23). Referenced by: [BackstagePalette](#backstagepalette). @@ -227,6 +227,6 @@ export type Subscription = { Defined at -[packages/core-api/src/types.ts:33](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L33). +[packages/core-api/src/types.ts:33](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L33). Referenced by: [Observable](#observable). diff --git a/docs/reference/utility-apis/BackstageIdentityApi.md b/docs/reference/utility-apis/BackstageIdentityApi.md index f75918a8b3..87318ecff5 100644 --- a/docs/reference/utility-apis/BackstageIdentityApi.md +++ b/docs/reference/utility-apis/BackstageIdentityApi.md @@ -1,16 +1,20 @@ # BackstageIdentityApi The BackstageIdentityApi type is defined at -[packages/core-api/src/apis/definitions/auth.ts:144](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L144). +[packages/core-api/src/apis/definitions/auth.ts:144](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L144). The following Utility APIs implement this type: +- [auth0AuthApiRef](./README.md#auth0auth) + - [githubAuthApiRef](./README.md#githubauth) - [gitlabAuthApiRef](./README.md#gitlabauth) - [googleAuthApiRef](./README.md#googleauth) +- [microsoftAuthApiRef](./README.md#microsoftauth) + - [oktaAuthApiRef](./README.md#oktaauth) ## Members @@ -62,7 +66,7 @@ export type AuthRequestOptions = { Defined at -[packages/core-api/src/apis/definitions/auth.ts:40](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L40). +[packages/core-api/src/apis/definitions/auth.ts:40](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L40). Referenced by: [getBackstageIdentity](#getbackstageidentity). @@ -83,6 +87,6 @@ export type BackstageIdentity = { Defined at -[packages/core-api/src/apis/definitions/auth.ts:157](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L157). +[packages/core-api/src/apis/definitions/auth.ts:157](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L157). Referenced by: [getBackstageIdentity](#getbackstageidentity). diff --git a/docs/reference/utility-apis/Config.md b/docs/reference/utility-apis/Config.md index c0264489fc..9374fb9962 100644 --- a/docs/reference/utility-apis/Config.md +++ b/docs/reference/utility-apis/Config.md @@ -1,13 +1,19 @@ # Config The Config type is defined at -[packages/config/src/types.ts:32](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/config/src/types.ts#L32). +[packages/config/src/types.ts:32](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/config/src/types.ts#L32). The following Utility API implements this type: [configApiRef](./README.md#config) ## Members +### has() + +
+has(key: string): boolean
+
+ ### keys()
@@ -17,13 +23,13 @@ keys(): string[]
 ### get()
 
 
-get(key: string): JsonValue
+get(key?: string): JsonValue
 
### getOptional()
-getOptional(key: string): JsonValue | undefined
+getOptional(key?: string): JsonValue | undefined
 
### getConfig() @@ -106,10 +112,12 @@ These types are part of the API declaration, but may not be unique to this API.
 export type Config = {
+  has(key: string): boolean;
+
   keys(): string[];
 
-  get(key: string): JsonValue;
-  getOptional(key: string): JsonValue | undefined;
+  get(key?: string): JsonValue;
+  getOptional(key?: string): JsonValue | undefined;
 
   getConfig(key: string): Config;
   getOptionalConfig(key: string): Config | undefined;
@@ -132,7 +140,7 @@ export type Config = {
 
Defined at -[packages/config/src/types.ts:32](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/config/src/types.ts#L32). +[packages/config/src/types.ts:32](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/config/src/types.ts#L32). Referenced by: [getConfig](#getconfig), [getOptionalConfig](#getoptionalconfig), [getConfigArray](#getconfigarray), @@ -145,7 +153,7 @@ export type JsonArray = JsonValue[]
Defined at -[packages/config/src/types.ts:18](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/config/src/types.ts#L18). +[packages/config/src/types.ts:18](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/config/src/types.ts#L18). Referenced by: [JsonValue](#jsonvalue). @@ -156,7 +164,7 @@ export type JsonObject = { [key in string]?: JsonValue Defined at -[packages/config/src/types.ts:17](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/config/src/types.ts#L17). +[packages/config/src/types.ts:17](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/config/src/types.ts#L17). Referenced by: [JsonValue](#jsonvalue). @@ -173,7 +181,7 @@ export type JsonValue = Defined at -[packages/config/src/types.ts:19](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/config/src/types.ts#L19). +[packages/config/src/types.ts:19](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/config/src/types.ts#L19). Referenced by: [get](#get), [getOptional](#getoptional), [JsonObject](#jsonobject), [JsonArray](#jsonarray), [Config](#config). diff --git a/docs/reference/utility-apis/DiscoveryApi.md b/docs/reference/utility-apis/DiscoveryApi.md new file mode 100644 index 0000000000..39902789cd --- /dev/null +++ b/docs/reference/utility-apis/DiscoveryApi.md @@ -0,0 +1,24 @@ +# DiscoveryApi + +The DiscoveryApi type is defined at +[packages/core-api/src/apis/definitions/DiscoveryApi.ts:30](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/DiscoveryApi.ts#L30). + +The following Utility API implements this type: +[discoveryApiRef](./README.md#discovery) + +## Members + +### getBaseUrl() + +Returns the HTTP base backend URL for a given plugin, without a trailing slash. + +This method must always be called just before making a request. as opposed to +fetching the URL when constructing an API client. That is to ensure that more +flexible routing patterns can be supported. + +For example, asking for the URL for `auth` may return something like +`https://backstage.example.com/api/auth` + +
+getBaseUrl(pluginId: string): Promise<string>
+
diff --git a/docs/reference/utility-apis/ErrorApi.md b/docs/reference/utility-apis/ErrorApi.md index a630e65592..c05f060ec3 100644 --- a/docs/reference/utility-apis/ErrorApi.md +++ b/docs/reference/utility-apis/ErrorApi.md @@ -1,7 +1,7 @@ # ErrorApi The ErrorApi type is defined at -[packages/core-api/src/apis/definitions/ErrorApi.ts:53](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/ErrorApi.ts#L53). +[packages/core-api/src/apis/definitions/ErrorApi.ts:53](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/ErrorApi.ts#L53). The following Utility API implements this type: [errorApiRef](./README.md#error) @@ -41,7 +41,7 @@ type Error = { Defined at -[packages/core-api/src/apis/definitions/ErrorApi.ts:24](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/ErrorApi.ts#L24). +[packages/core-api/src/apis/definitions/ErrorApi.ts:24](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/ErrorApi.ts#L24). Referenced by: [post](#post), [error\$](#error). @@ -58,7 +58,7 @@ export type ErrorContext = { Defined at -[packages/core-api/src/apis/definitions/ErrorApi.ts:33](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/ErrorApi.ts#L33). +[packages/core-api/src/apis/definitions/ErrorApi.ts:33](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/ErrorApi.ts#L33). Referenced by: [post](#post), [error\$](#error). @@ -87,7 +87,7 @@ export type Observable<T> = { Defined at -[packages/core-api/src/types.ts:53](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L53). +[packages/core-api/src/types.ts:53](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L53). Referenced by: [error\$](#error). @@ -106,7 +106,7 @@ export type Observer<T> = { Defined at -[packages/core-api/src/types.ts:24](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L24). +[packages/core-api/src/types.ts:24](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L24). Referenced by: [Observable](#observable). @@ -129,6 +129,6 @@ export type Subscription = { Defined at -[packages/core-api/src/types.ts:33](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L33). +[packages/core-api/src/types.ts:33](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L33). Referenced by: [Observable](#observable). diff --git a/docs/reference/utility-apis/FeatureFlagsApi.md b/docs/reference/utility-apis/FeatureFlagsApi.md index 16e30a1c60..5efdb176a4 100644 --- a/docs/reference/utility-apis/FeatureFlagsApi.md +++ b/docs/reference/utility-apis/FeatureFlagsApi.md @@ -1,7 +1,7 @@ # FeatureFlagsApi The FeatureFlagsApi type is defined at -[packages/core-api/src/apis/definitions/FeatureFlagsApi.ts:41](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/FeatureFlagsApi.ts#L41). +[packages/core-api/src/apis/definitions/FeatureFlagsApi.ts:41](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/FeatureFlagsApi.ts#L41). The following Utility API implements this type: [featureFlagsApiRef](./README.md#featureflags) diff --git a/docs/reference/utility-apis/IdentityApi.md b/docs/reference/utility-apis/IdentityApi.md index f26ad4b6b3..4e37ad5300 100644 --- a/docs/reference/utility-apis/IdentityApi.md +++ b/docs/reference/utility-apis/IdentityApi.md @@ -1,7 +1,7 @@ # IdentityApi The IdentityApi type is defined at -[packages/core-api/src/apis/definitions/IdentityApi.ts:22](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/IdentityApi.ts#L22). +[packages/core-api/src/apis/definitions/IdentityApi.ts:22](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/IdentityApi.ts#L22). The following Utility API implements this type: [identityApiRef](./README.md#identity) @@ -76,6 +76,6 @@ export type ProfileInfo = { Defined at -[packages/core-api/src/apis/definitions/auth.ts:172](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L172). +[packages/core-api/src/apis/definitions/auth.ts:172](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L172). Referenced by: [getProfile](#getprofile). diff --git a/docs/reference/utility-apis/OAuthApi.md b/docs/reference/utility-apis/OAuthApi.md index 766124ccb4..e73d5f645f 100644 --- a/docs/reference/utility-apis/OAuthApi.md +++ b/docs/reference/utility-apis/OAuthApi.md @@ -1,7 +1,7 @@ # OAuthApi The OAuthApi type is defined at -[packages/core-api/src/apis/definitions/auth.ts:67](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L67). +[packages/core-api/src/apis/definitions/auth.ts:67](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L67). The following Utility APIs implement this type: @@ -11,6 +11,8 @@ The following Utility APIs implement this type: - [googleAuthApiRef](./README.md#googleauth) +- [microsoftAuthApiRef](./README.md#microsoftauth) + - [oauth2ApiRef](./README.md#oauth2) - [oktaAuthApiRef](./README.md#oktaauth) @@ -88,7 +90,7 @@ export type AuthRequestOptions = { Defined at -[packages/core-api/src/apis/definitions/auth.ts:40](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L40). +[packages/core-api/src/apis/definitions/auth.ts:40](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L40). Referenced by: [getAccessToken](#getaccesstoken). @@ -114,6 +116,6 @@ export type OAuthScope = string | string[] Defined at -[packages/core-api/src/apis/definitions/auth.ts:38](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L38). +[packages/core-api/src/apis/definitions/auth.ts:38](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L38). Referenced by: [getAccessToken](#getaccesstoken). diff --git a/docs/reference/utility-apis/OAuthRequestApi.md b/docs/reference/utility-apis/OAuthRequestApi.md index b3e0d0d979..c6b9e09189 100644 --- a/docs/reference/utility-apis/OAuthRequestApi.md +++ b/docs/reference/utility-apis/OAuthRequestApi.md @@ -1,7 +1,7 @@ # OAuthRequestApi The OAuthRequestApi type is defined at -[packages/core-api/src/apis/definitions/OAuthRequestApi.ts:99](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/OAuthRequestApi.ts#L99). +[packages/core-api/src/apis/definitions/OAuthRequestApi.ts:99](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/OAuthRequestApi.ts#L99). The following Utility API implements this type: [oauthRequestApiRef](./README.md#oauthrequest) @@ -72,7 +72,7 @@ export type AuthProvider = { Defined at -[packages/core-api/src/apis/definitions/OAuthRequestApi.ts:27](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/OAuthRequestApi.ts#L27). +[packages/core-api/src/apis/definitions/OAuthRequestApi.ts:27](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/OAuthRequestApi.ts#L27). Referenced by: [AuthRequesterOptions](#authrequesteroptions), [PendingAuthRequest](#pendingauthrequest). @@ -96,7 +96,7 @@ export type AuthRequester<AuthResponse> = ( Defined at -[packages/core-api/src/apis/definitions/OAuthRequestApi.ts:66](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/OAuthRequestApi.ts#L66). +[packages/core-api/src/apis/definitions/OAuthRequestApi.ts:66](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/OAuthRequestApi.ts#L66). Referenced by: [createAuthRequester](#createauthrequester). @@ -121,7 +121,7 @@ export type AuthRequesterOptions<AuthResponse> = { Defined at -[packages/core-api/src/apis/definitions/OAuthRequestApi.ts:43](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/OAuthRequestApi.ts#L43). +[packages/core-api/src/apis/definitions/OAuthRequestApi.ts:43](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/OAuthRequestApi.ts#L43). Referenced by: [createAuthRequester](#createauthrequester). @@ -150,7 +150,7 @@ export type Observable<T> = { Defined at -[packages/core-api/src/types.ts:53](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L53). +[packages/core-api/src/types.ts:53](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L53). Referenced by: [authRequest\$](#authrequest). @@ -169,7 +169,7 @@ export type Observer<T> = { Defined at -[packages/core-api/src/types.ts:24](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L24). +[packages/core-api/src/types.ts:24](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L24). Referenced by: [Observable](#observable). @@ -204,7 +204,7 @@ export type PendingAuthRequest = { Defined at -[packages/core-api/src/apis/definitions/OAuthRequestApi.ts:77](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/OAuthRequestApi.ts#L77). +[packages/core-api/src/apis/definitions/OAuthRequestApi.ts:77](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/OAuthRequestApi.ts#L77). Referenced by: [authRequest\$](#authrequest). @@ -227,6 +227,6 @@ export type Subscription = { Defined at -[packages/core-api/src/types.ts:33](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L33). +[packages/core-api/src/types.ts:33](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L33). Referenced by: [Observable](#observable). diff --git a/docs/reference/utility-apis/OpenIdConnectApi.md b/docs/reference/utility-apis/OpenIdConnectApi.md index 7bc571ecb9..41a3247af6 100644 --- a/docs/reference/utility-apis/OpenIdConnectApi.md +++ b/docs/reference/utility-apis/OpenIdConnectApi.md @@ -1,12 +1,16 @@ # OpenIdConnectApi The OpenIdConnectApi type is defined at -[packages/core-api/src/apis/definitions/auth.ts:104](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L104). +[packages/core-api/src/apis/definitions/auth.ts:104](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L104). The following Utility APIs implement this type: +- [auth0AuthApiRef](./README.md#auth0auth) + - [googleAuthApiRef](./README.md#googleauth) +- [microsoftAuthApiRef](./README.md#microsoftauth) + - [oauth2ApiRef](./README.md#oauth2) - [oktaAuthApiRef](./README.md#oktaauth) @@ -70,6 +74,6 @@ export type AuthRequestOptions = { Defined at -[packages/core-api/src/apis/definitions/auth.ts:40](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L40). +[packages/core-api/src/apis/definitions/auth.ts:40](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L40). Referenced by: [getIdToken](#getidtoken). diff --git a/docs/reference/utility-apis/ProfileInfoApi.md b/docs/reference/utility-apis/ProfileInfoApi.md index 68b0dea194..09c0f88f83 100644 --- a/docs/reference/utility-apis/ProfileInfoApi.md +++ b/docs/reference/utility-apis/ProfileInfoApi.md @@ -1,16 +1,20 @@ # ProfileInfoApi The ProfileInfoApi type is defined at -[packages/core-api/src/apis/definitions/auth.ts:127](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L127). +[packages/core-api/src/apis/definitions/auth.ts:127](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L127). The following Utility APIs implement this type: +- [auth0AuthApiRef](./README.md#auth0auth) + - [githubAuthApiRef](./README.md#githubauth) - [gitlabAuthApiRef](./README.md#gitlabauth) - [googleAuthApiRef](./README.md#googleauth) +- [microsoftAuthApiRef](./README.md#microsoftauth) + - [oauth2ApiRef](./README.md#oauth2) - [oktaAuthApiRef](./README.md#oktaauth) @@ -61,7 +65,7 @@ export type AuthRequestOptions = { Defined at -[packages/core-api/src/apis/definitions/auth.ts:40](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L40). +[packages/core-api/src/apis/definitions/auth.ts:40](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L40). Referenced by: [getProfile](#getprofile). @@ -89,6 +93,6 @@ export type ProfileInfo = { Defined at -[packages/core-api/src/apis/definitions/auth.ts:172](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L172). +[packages/core-api/src/apis/definitions/auth.ts:172](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L172). Referenced by: [getProfile](#getprofile). diff --git a/docs/reference/utility-apis/README.md b/docs/reference/utility-apis/README.md index 521628fd33..cfdc3b6ef8 100644 --- a/docs/reference/utility-apis/README.md +++ b/docs/reference/utility-apis/README.md @@ -1,59 +1,77 @@ ---- -id: README -title: Utility API References ---- +# Backstage Core Utility APIs The following is a list of all Utility APIs defined by `@backstage/core`. They are available to use by plugins and components, and can be accessed using the `useApi` hook, also provided by `@backstage/core`. For more information, see https://github.com/spotify/backstage/blob/master/docs/api/utility-apis.md. -## alert +### alert Used to report alerts and forward them to the app Implemented type: [AlertApi](./AlertApi.md) ApiRef: -[alertApiRef](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/AlertApi.ts#L41) +[alertApiRef](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/AlertApi.ts#L41) -## appTheme +### appTheme API Used to configure the app theme, and enumerate options Implemented type: [AppThemeApi](./AppThemeApi.md) ApiRef: -[appThemeApiRef](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/AppThemeApi.ts#L74) +[appThemeApiRef](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/AppThemeApi.ts#L74) -## config +### auth0Auth + +Provides authentication towards Auth0 APIs + +Implemented types: [OpenIdConnectApi](./OpenIdConnectApi.md), +[ProfileInfoApi](./ProfileInfoApi.md), +[BackstageIdentityApi](./BackstageIdentityApi.md), +[SessionStateApi](./SessionStateApi.md) + +ApiRef: +[auth0AuthApiRef](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L273) + +### config Used to access runtime configuration Implemented type: [Config](./Config.md) ApiRef: -[configApiRef](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/ConfigApi.ts#L22) +[configApiRef](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/ConfigApi.ts#L22) -## error +### discovery + +Provides service discovery of backend plugins + +Implemented type: [DiscoveryApi](./DiscoveryApi.md) + +ApiRef: +[discoveryApiRef](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/DiscoveryApi.ts#L44) + +### error Used to report errors and forward them to the app Implemented type: [ErrorApi](./ErrorApi.md) ApiRef: -[errorApiRef](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/ErrorApi.ts#L65) +[errorApiRef](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/ErrorApi.ts#L65) -## featureFlags +### featureFlags Used to toggle functionality in features across Backstage Implemented type: [FeatureFlagsApi](./FeatureFlagsApi.md) ApiRef: -[featureFlagsApiRef](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/FeatureFlagsApi.ts#L58) +[featureFlagsApiRef](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/FeatureFlagsApi.ts#L58) -## githubAuth +### githubAuth Provides authentication towards GitHub APIs @@ -63,9 +81,9 @@ Implemented types: [OAuthApi](./OAuthApi.md), [SessionStateApi](./SessionStateApi.md) ApiRef: -[githubAuthApiRef](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L230) +[githubAuthApiRef](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L230) -## gitlabAuth +### gitlabAuth Provides authentication towards GitLab APIs @@ -75,9 +93,9 @@ Implemented types: [OAuthApi](./OAuthApi.md), [SessionStateApi](./SessionStateApi.md) ApiRef: -[gitlabAuthApiRef](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L260) +[gitlabAuthApiRef](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L260) -## googleAuth +### googleAuth Provides authentication towards Google APIs and identities @@ -88,18 +106,31 @@ Implemented types: [OAuthApi](./OAuthApi.md), [SessionStateApi](./SessionStateApi.md) ApiRef: -[googleAuthApiRef](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L213) +[googleAuthApiRef](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L213) -## identity +### identity Provides access to the identity of the signed in user Implemented type: [IdentityApi](./IdentityApi.md) ApiRef: -[identityApiRef](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/IdentityApi.ts#L54) +[identityApiRef](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/IdentityApi.ts#L54) -## oauth2 +### microsoftAuth + +Provides authentication towards Microsoft APIs and identities + +Implemented types: [OAuthApi](./OAuthApi.md), +[OpenIdConnectApi](./OpenIdConnectApi.md), +[ProfileInfoApi](./ProfileInfoApi.md), +[BackstageIdentityApi](./BackstageIdentityApi.md), +[SessionStateApi](./SessionStateApi.md) + +ApiRef: +[microsoftAuthApiRef](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L287) + +### oauth2 Example of how to use oauth2 custom provider @@ -108,18 +139,18 @@ Implemented types: [OAuthApi](./OAuthApi.md), [ProfileInfoApi](./ProfileInfoApi.md), [SessionStateApi](./SessionStateApi.md) ApiRef: -[oauth2ApiRef](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L270) +[oauth2ApiRef](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L301) -## oauthRequest +### oauthRequest An API for implementing unified OAuth flows in Backstage Implemented type: [OAuthRequestApi](./OAuthRequestApi.md) ApiRef: -[oauthRequestApiRef](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/OAuthRequestApi.ts#L130) +[oauthRequestApiRef](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/OAuthRequestApi.ts#L130) -## oktaAuth +### oktaAuth Provides authentication towards Okta APIs @@ -130,13 +161,13 @@ Implemented types: [OAuthApi](./OAuthApi.md), [SessionStateApi](./SessionStateApi.md) ApiRef: -[oktaAuthApiRef](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L243) +[oktaAuthApiRef](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L243) -## storage +### storage Provides the ability to store data which is unique to the user Implemented type: [StorageApi](./StorageApi.md) ApiRef: -[storageApiRef](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/StorageApi.ts#L68) +[storageApiRef](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/StorageApi.ts#L68) diff --git a/docs/reference/utility-apis/SessionStateApi.md b/docs/reference/utility-apis/SessionStateApi.md index 44d329304a..c1821f2381 100644 --- a/docs/reference/utility-apis/SessionStateApi.md +++ b/docs/reference/utility-apis/SessionStateApi.md @@ -1,16 +1,20 @@ # SessionStateApi The SessionStateApi type is defined at -[packages/core-api/src/apis/definitions/auth.ts:201](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L201). +[packages/core-api/src/apis/definitions/auth.ts:201](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L201). The following Utility APIs implement this type: +- [auth0AuthApiRef](./README.md#auth0auth) + - [githubAuthApiRef](./README.md#githubauth) - [gitlabAuthApiRef](./README.md#gitlabauth) - [googleAuthApiRef](./README.md#googleauth) +- [microsoftAuthApiRef](./README.md#microsoftauth) + - [oauth2ApiRef](./README.md#oauth2) - [oktaAuthApiRef](./README.md#oktaauth) @@ -52,7 +56,7 @@ export type Observable<T> = { Defined at -[packages/core-api/src/types.ts:53](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L53). +[packages/core-api/src/types.ts:53](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L53). Referenced by: [sessionState\$](#sessionstate). @@ -71,7 +75,7 @@ export type Observer<T> = { Defined at -[packages/core-api/src/types.ts:24](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L24). +[packages/core-api/src/types.ts:24](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L24). Referenced by: [Observable](#observable). @@ -87,7 +91,7 @@ export enum SessionState { Defined at -[packages/core-api/src/apis/definitions/auth.ts:192](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/auth.ts#L192). +[packages/core-api/src/apis/definitions/auth.ts:192](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/auth.ts#L192). Referenced by: [sessionState\$](#sessionstate). @@ -110,6 +114,6 @@ export type Subscription = { Defined at -[packages/core-api/src/types.ts:33](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L33). +[packages/core-api/src/types.ts:33](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L33). Referenced by: [Observable](#observable). diff --git a/docs/reference/utility-apis/StorageApi.md b/docs/reference/utility-apis/StorageApi.md index 5bc871e7bf..bee52935da 100644 --- a/docs/reference/utility-apis/StorageApi.md +++ b/docs/reference/utility-apis/StorageApi.md @@ -1,7 +1,7 @@ # StorageApi The StorageApi type is defined at -[packages/core-api/src/apis/definitions/StorageApi.ts:31](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/StorageApi.ts#L31). +[packages/core-api/src/apis/definitions/StorageApi.ts:31](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/StorageApi.ts#L31). The following Utility API implements this type: [storageApiRef](./README.md#storage) @@ -79,7 +79,7 @@ export type Observable<T> = { Defined at -[packages/core-api/src/types.ts:53](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L53). +[packages/core-api/src/types.ts:53](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L53). Referenced by: [observe\$](#observe), [StorageApi](#storageapi). @@ -98,7 +98,7 @@ export type Observer<T> = { Defined at -[packages/core-api/src/types.ts:24](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L24). +[packages/core-api/src/types.ts:24](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L24). Referenced by: [Observable](#observable). @@ -144,7 +144,7 @@ export interface StorageApi { Defined at -[packages/core-api/src/apis/definitions/StorageApi.ts:31](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/StorageApi.ts#L31). +[packages/core-api/src/apis/definitions/StorageApi.ts:31](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/StorageApi.ts#L31). Referenced by: [forBucket](#forbucket). @@ -158,7 +158,7 @@ export type StorageValueChange<T = any> = { Defined at -[packages/core-api/src/apis/definitions/StorageApi.ts:21](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/apis/definitions/StorageApi.ts#L21). +[packages/core-api/src/apis/definitions/StorageApi.ts:21](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/apis/definitions/StorageApi.ts#L21). Referenced by: [observe\$](#observe), [StorageApi](#storageapi). @@ -181,6 +181,6 @@ export type Subscription = { Defined at -[packages/core-api/src/types.ts:33](https://github.com/spotify/backstage/blob/f8780ff32509d0326bc513791ea60846d7614b34/packages/core-api/src/types.ts#L33). +[packages/core-api/src/types.ts:33](https://github.com/spotify/backstage/blob/82d329555c16af46db9b4e5cd2f44a3cc006a52e/packages/core-api/src/types.ts#L33). Referenced by: [Observable](#observable). From 7e07d2907d3852bed4c3bfad18a1a33b3f39e97b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 9 Sep 2020 10:48:09 +0200 Subject: [PATCH 494/656] fix(scaffolder): avoid missing key prop console warning --- .../components/WarningPanel/WarningPanel.tsx | 7 ++++--- .../ScaffolderPage/ScaffolderPage.tsx | 20 ++++++++++--------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/packages/core/src/components/WarningPanel/WarningPanel.tsx b/packages/core/src/components/WarningPanel/WarningPanel.tsx index ab0927fc4c..ae4d2bff02 100644 --- a/packages/core/src/components/WarningPanel/WarningPanel.tsx +++ b/packages/core/src/components/WarningPanel/WarningPanel.tsx @@ -14,10 +14,10 @@ * limitations under the License. */ -import React, { FC } from 'react'; -import { Typography, makeStyles } from '@material-ui/core'; import { BackstageTheme } from '@backstage/theme'; +import { makeStyles, Typography } from '@material-ui/core'; import ErrorOutline from '@material-ui/icons/ErrorOutline'; +import React from 'react'; const useErrorOutlineStyles = makeStyles(theme => ({ root: { @@ -60,9 +60,10 @@ const useStyles = makeStyles(theme => ({ type Props = { message?: React.ReactNode; title?: string; + children?: React.ReactNode; }; -export const WarningPanel: FC = props => { +export const WarningPanel = (props: Props) => { const classes = useStyles(props); const { title, message, children } = props; return ( diff --git a/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx b/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx index 6f8bf0d550..b5bdaaef4a 100644 --- a/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx +++ b/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx @@ -26,9 +26,10 @@ import { Progress, SupportButton, useApi, + WarningPanel, } from '@backstage/core'; import { catalogApiRef } from '@backstage/plugin-catalog'; -import { Button, Grid, Typography, Link } from '@material-ui/core'; +import { Button, Grid, Link, Typography } from '@material-ui/core'; import React, { useEffect } from 'react'; import { Link as RouterLink } from 'react-router-dom'; import useStaleWhileRevalidate from 'swr'; @@ -46,7 +47,8 @@ const getTemplateCardProps = ( tags: (template.metadata?.tags as string[]) ?? [], }; }; -export const ScaffolderPage: React.FC<{}> = () => { + +export const ScaffolderPage = () => { const catalogApi = useApi(catalogApiRef); const errorApi = useApi(errorApiRef); @@ -66,23 +68,23 @@ export const ScaffolderPage: React.FC<{}> = () => { return (
- Create a new component + Create a New Component } subtitle="Create new software components using standard templates" /> - + Create new software components using standard templates. Different @@ -101,16 +103,16 @@ export const ScaffolderPage: React.FC<{}> = () => { )} {error && ( - + Oops! Something went wrong loading the templates: {error.message} - + )} {templates && templates?.length > 0 && templates.map(template => { return ( - + ); From 0a24df743f8f544dba4ac3cec87cc26233f60d7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 9 Sep 2020 11:12:37 +0200 Subject: [PATCH 495/656] chore: bump mui to the create-app resolved version, to lose Accordion warnings --- CHANGELOG.md | 5 + packages/app/package.json | 2 +- .../templates/default-plugin/package.json.hbs | 2 +- packages/core-api/package.json | 2 +- packages/core/package.json | 2 +- .../default-app/packages/app/package.json.hbs | 2 +- packages/dev-utils/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/theme/package.json | 2 +- plugins/api-docs/package.json | 2 +- plugins/catalog/package.json | 2 +- plugins/circleci/package.json | 2 +- .../lib/ActionOutput/ActionOutput.tsx | 30 +- plugins/explore/package.json | 2 +- plugins/gcp-projects/package.json | 2 +- plugins/github-actions/package.json | 2 +- .../WorkflowRunDetails/WorkflowRunDetails.tsx | 74 ++-- plugins/gitops-profiles/package.json | 2 +- plugins/graphiql/package.json | 2 +- plugins/jenkins/package.json | 2 +- .../lib/ActionOutput/ActionOutput.tsx | 26 +- plugins/lighthouse/package.json | 2 +- plugins/newrelic/package.json | 2 +- plugins/register-component/package.json | 2 +- plugins/rollbar/package.json | 2 +- plugins/scaffolder/package.json | 2 +- .../src/components/JobStage/JobStage.tsx | 19 +- plugins/sentry/package.json | 2 +- plugins/tech-radar/package.json | 2 +- plugins/techdocs/package.json | 2 +- plugins/welcome/package.json | 2 +- yarn.lock | 375 +++--------------- 32 files changed, 163 insertions(+), 418 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 20ae9a414d..9f9235172b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,11 @@ If you encounter issues while upgrading to a newer version, don't hesitate to re > Collect changes for the next release below +- Material-UI: Bumped to 4.11.0, which is the version that create-app will + resolve to, because we wanted to get the renaming of ExpansionPanel to + Accordion into place. This gets rid of a lot of console deprecation warnings + in newly scaffolded apps. + - The backend plugin [service builder](https://github.com/spotify/backstage/blob/master/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts) no longer adds `express.json()` automatically to all routes. While convenient diff --git a/packages/app/package.json b/packages/app/package.json index 77f5ab4432..bf0f340a40 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -27,7 +27,7 @@ "@backstage/plugin-welcome": "^0.1.1-alpha.21", "@backstage/test-utils": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@octokit/rest": "^18.0.0", "@roadiehq/backstage-plugin-github-pull-requests": "0.3.0", diff --git a/packages/cli/templates/default-plugin/package.json.hbs b/packages/cli/templates/default-plugin/package.json.hbs index 38d4e41b5b..dbfb639b16 100644 --- a/packages/cli/templates/default-plugin/package.json.hbs +++ b/packages/cli/templates/default-plugin/package.json.hbs @@ -23,7 +23,7 @@ "dependencies": { "@backstage/core": "^{{backstageVersion}}", "@backstage/theme": "^{{backstageVersion}}", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "react": "^16.13.1", diff --git a/packages/core-api/package.json b/packages/core-api/package.json index a5e23796cd..191394e536 100644 --- a/packages/core-api/package.json +++ b/packages/core-api/package.json @@ -31,7 +31,7 @@ "dependencies": { "@backstage/config": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@types/react": "^16.9", "prop-types": "^15.7.2", diff --git a/packages/core/package.json b/packages/core/package.json index d6731aca9a..7e9932bdc1 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -32,7 +32,7 @@ "@backstage/config": "^0.1.1-alpha.21", "@backstage/core-api": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "@types/react": "^16.9", diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index a52810b31c..a057826ba4 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -4,7 +4,7 @@ "private": true, "bundled": true, "dependencies": { - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@backstage/cli": "^{{version}}", "@backstage/core": "^{{version}}", diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index c917130cbd..fe7272bf04 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -33,7 +33,7 @@ "@backstage/core": "^0.1.1-alpha.21", "@backstage/test-utils": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index d28b66a9ed..8567af8c14 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -33,7 +33,7 @@ "@backstage/core-api": "^0.1.1-alpha.21", "@backstage/test-utils-core": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^10.4.1", "@testing-library/user-event": "^12.0.7", diff --git a/packages/theme/package.json b/packages/theme/package.json index e946482f32..436455633b 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -28,7 +28,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@material-ui/core": "^4.9.1" + "@material-ui/core": "^4.11.0" }, "devDependencies": { "@backstage/cli": "^0.1.1-alpha.21" diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index b22cb6fd63..a913316925 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -26,7 +26,7 @@ "@backstage/theme": "^0.1.1-alpha.21", "@kyma-project/asyncapi-react": "^0.11.0", "@material-icons/font": "^1.0.2", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "react": "^16.13.1", diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 5f17fc2a80..d32033d4fc 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -29,7 +29,7 @@ "@backstage/plugin-sentry": "^0.1.1-alpha.21", "@backstage/plugin-techdocs": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "moment": "^2.26.0", diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index f86563ea7a..7c8f36d370 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -25,7 +25,7 @@ "@backstage/catalog-model": "^0.1.1-alpha.21", "@backstage/plugin-catalog": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "circleci-api": "^4.0.0", diff --git a/plugins/circleci/src/components/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx b/plugins/circleci/src/components/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx index dd526c1b5f..2a059f7e02 100644 --- a/plugins/circleci/src/components/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx +++ b/plugins/circleci/src/components/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx @@ -13,18 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React, { useEffect, useState, FC, Suspense } from 'react'; + import { - ExpansionPanel, - ExpansionPanelSummary, - Typography, - ExpansionPanelDetails, + Accordion, + AccordionDetails, + AccordionSummary, LinearProgress, + Typography, } from '@material-ui/core'; -import moment from 'moment'; -import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import { makeStyles } from '@material-ui/core/styles'; +import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import { BuildStepAction } from 'circleci-api'; +import moment from 'moment'; +import React, { FC, Suspense, useEffect, useState } from 'react'; const LazyLog = React.lazy(() => import('react-lazylog/build/LazyLog')); moment.relativeTimeThreshold('ss', 0); @@ -66,11 +67,8 @@ export const ActionOutput: FC<{ ) .humanize(); return ( - - + } aria-controls={`panel-${name}-content`} id={`panel-${name}-header`} @@ -81,8 +79,8 @@ export const ActionOutput: FC<{ {name} ({timeElapsed}) - - + + {messages.length === 0 ? ( 'Nothing here...' ) : ( @@ -92,7 +90,7 @@ export const ActionOutput: FC<{
)} - - + + ); }; diff --git a/plugins/explore/package.json b/plugins/explore/package.json index 1a4a44b9cd..f302f4080c 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -23,7 +23,7 @@ "dependencies": { "@backstage/core": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "classnames": "^2.2.6", diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index 55ed362876..cdc4bb507d 100644 --- a/plugins/gcp-projects/package.json +++ b/plugins/gcp-projects/package.json @@ -23,7 +23,7 @@ "dependencies": { "@backstage/core": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "react": "^16.13.1", diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index e4f09976eb..1d2f7aad45 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -27,7 +27,7 @@ "@backstage/core-api": "^0.1.1-alpha.21", "@backstage/plugin-catalog": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "@octokit/rest": "^18.0.0", diff --git a/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx b/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx index d8e3b02524..a8ceb717da 100644 --- a/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx +++ b/plugins/github-actions/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx @@ -13,37 +13,38 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React from 'react'; -import { useWorkflowRunsDetails } from './useWorkflowRunsDetails'; -import { useWorkflowRunJobs } from './useWorkflowRunJobs'; -import { useProjectName } from '../useProjectName'; -import { - makeStyles, - Box, - TableRow, - TableCell, - ListItemText, - ExpansionPanel, - ExpansionPanelSummary, - Typography, - ExpansionPanelDetails, - TableContainer, - Table, - Paper, - TableBody, - LinearProgress, - CircularProgress, - Theme, - Breadcrumbs, - Link as MaterialLink, -} from '@material-ui/core'; -import { Jobs, Job, Step } from '../../api'; -import moment from 'moment'; -import { WorkflowRunStatus } from '../WorkflowRunStatus'; -import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; -import ExternalLinkIcon from '@material-ui/icons/Launch'; + import { Entity } from '@backstage/catalog-model'; import { Link } from '@backstage/core'; +import { + Accordion, + AccordionDetails, + AccordionSummary, + Box, + Breadcrumbs, + CircularProgress, + LinearProgress, + Link as MaterialLink, + ListItemText, + makeStyles, + Paper, + Table, + TableBody, + TableCell, + TableContainer, + TableRow, + Theme, + Typography, +} from '@material-ui/core'; +import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; +import ExternalLinkIcon from '@material-ui/icons/Launch'; +import moment from 'moment'; +import React from 'react'; +import { Job, Jobs, Step } from '../../api'; +import { useProjectName } from '../useProjectName'; +import { WorkflowRunStatus } from '../WorkflowRunStatus'; +import { useWorkflowRunJobs } from './useWorkflowRunJobs'; +import { useWorkflowRunsDetails } from './useWorkflowRunsDetails'; const useStyles = makeStyles(theme => ({ root: { @@ -113,11 +114,8 @@ const StepView = ({ step }: { step: Step }) => { const JobListItem = ({ job, className }: { job: Job; className: string }) => { const classes = useStyles(); return ( - - + } aria-controls={`panel-${name}-content`} id={`panel-${name}-header`} @@ -128,8 +126,8 @@ const JobListItem = ({ job, className }: { job: Job; className: string }) => { {job.name} ({getElapsedTime(job.started_at, job.completed_at)}) - - + +
{job.steps.map((step: Step) => ( @@ -137,8 +135,8 @@ const JobListItem = ({ job, className }: { job: Job; className: string }) => { ))}
- - + + ); }; diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index dc32a4df14..62dacb5e91 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -23,7 +23,7 @@ "dependencies": { "@backstage/core": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "react": "^16.13.1", diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index cc1a0a7204..b4d0b685da 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -33,7 +33,7 @@ "dependencies": { "@backstage/core": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "graphiql": "^1.0.0-alpha.10", diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index da1754749f..0d532f8c45 100644 --- a/plugins/jenkins/package.json +++ b/plugins/jenkins/package.json @@ -24,7 +24,7 @@ "@backstage/catalog-model": "^0.1.1-alpha.21", "@backstage/core": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "jenkins": "^0.28.0", diff --git a/plugins/jenkins/src/pages/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx b/plugins/jenkins/src/pages/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx index 1143121a98..a9b73f6f0b 100644 --- a/plugins/jenkins/src/pages/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx +++ b/plugins/jenkins/src/pages/BuildWithStepsPage/lib/ActionOutput/ActionOutput.tsx @@ -13,15 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React, { useEffect, FC } from 'react'; + import { - ExpansionPanel, - ExpansionPanelSummary, + Accordion, + AccordionDetails, + AccordionSummary, Typography, - ExpansionPanelDetails, } from '@material-ui/core'; -import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import { makeStyles } from '@material-ui/core/styles'; +import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; +import React, { FC, useEffect } from 'react'; const useStyles = makeStyles({ expansionPanelDetails: { @@ -45,11 +46,8 @@ export const ActionOutput: FC<{ useEffect(() => {}, [url]); return ( - - + } aria-controls={`panel-${name}-content`} id={`panel-${name}-header`} @@ -58,10 +56,10 @@ export const ActionOutput: FC<{ }} > {name} - - + + Nothing here... - - + + ); }; diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 647215f7f8..24a106e53d 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -24,7 +24,7 @@ "@backstage/config": "^0.1.1-alpha.21", "@backstage/core": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "react": "^16.13.1", diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index 84f066edae..9c9d609c04 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -23,7 +23,7 @@ "dependencies": { "@backstage/core": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "react": "^16.13.1", diff --git a/plugins/register-component/package.json b/plugins/register-component/package.json index 0064d50aaa..3dda51c3d5 100644 --- a/plugins/register-component/package.json +++ b/plugins/register-component/package.json @@ -25,7 +25,7 @@ "@backstage/core": "^0.1.1-alpha.21", "@backstage/plugin-catalog": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "react": "^16.13.1", diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index 1708dc31ce..ae9d0c5bc5 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -25,7 +25,7 @@ "@backstage/core": "^0.1.1-alpha.21", "@backstage/plugin-catalog": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "lodash": "^4.17.15", diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 7497cbe024..2efc2c270a 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -25,7 +25,7 @@ "@backstage/core": "^0.1.1-alpha.21", "@backstage/plugin-catalog": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "@rjsf/core": "^2.1.0", diff --git a/plugins/scaffolder/src/components/JobStage/JobStage.tsx b/plugins/scaffolder/src/components/JobStage/JobStage.tsx index 1e9adafb18..1db2bd528a 100644 --- a/plugins/scaffolder/src/components/JobStage/JobStage.tsx +++ b/plugins/scaffolder/src/components/JobStage/JobStage.tsx @@ -13,11 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { + Accordion, + AccordionDetails, + AccordionSummary, Box, - ExpansionPanel, - ExpansionPanelDetails, - ExpansionPanelSummary, LinearProgress, Typography, } from '@material-ui/core'; @@ -98,7 +99,7 @@ export const JobStage = ({ endedAt, startedAt, name, log, status }: Props) => { : null; return ( - { expanded={expanded} onChange={(_, newState) => setExpanded(newState)} > - } aria-controls={`panel-${name}-content`} id={`panel-${name}-header`} @@ -119,8 +120,8 @@ export const JobStage = ({ endedAt, startedAt, name, log, status }: Props) => { {name} {timeElapsed && `(${timeElapsed})`} - - + + {log.length === 0 ? ( No logs available for this step ) : ( @@ -130,7 +131,7 @@ export const JobStage = ({ endedAt, startedAt, name, log, status }: Props) => {
)} - - + + ); }; diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index 294d7159bf..e3b900ca8d 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -24,7 +24,7 @@ "@backstage/catalog-model": "^0.1.1-alpha.21", "@backstage/core": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "@types/react": "^16.9", diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index f5639c7581..fc29d9c836 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -24,7 +24,7 @@ "@backstage/core": "^0.1.1-alpha.21", "@backstage/test-utils": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "color": "^3.1.2", diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 2d63c9dd53..a3471c8142 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -28,7 +28,7 @@ "@backstage/plugin-catalog": "^0.1.1-alpha.21", "@backstage/test-utils": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "@types/react": "^16.9", diff --git a/plugins/welcome/package.json b/plugins/welcome/package.json index 2d754a51a6..a0dae6859d 100644 --- a/plugins/welcome/package.json +++ b/plugins/welcome/package.json @@ -23,7 +23,7 @@ "dependencies": { "@backstage/core": "^0.1.1-alpha.21", "@backstage/theme": "^0.1.1-alpha.21", - "@material-ui/core": "^4.9.1", + "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "react": "^16.13.1", diff --git a/yarn.lock b/yarn.lock index 72391dcef2..acda227e55 100644 --- a/yarn.lock +++ b/yarn.lock @@ -375,7 +375,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.0", "@babel/parser@^7.11.1", "@babel/parser@^7.7.5": +"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.0", "@babel/parser@^7.11.1": version "7.11.3" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz#9e1eae46738bcd08e23e867bab43e7b95299a8f9" integrity sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA== @@ -660,14 +660,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoping@^7.10.4": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz#b81b8aafefbfe68f0f65f7ef397b9ece68a6037d" - integrity sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-block-scoping@^7.8.3": +"@babel/plugin-transform-block-scoping@^7.10.4", "@babel/plugin-transform-block-scoping@^7.8.3": version "7.11.1" resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" integrity sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew== @@ -969,81 +962,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/preset-env@^7.9.5": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796" - integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg== - dependencies: - "@babel/compat-data" "^7.11.0" - "@babel/helper-compilation-targets" "^7.10.4" - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-proposal-async-generator-functions" "^7.10.4" - "@babel/plugin-proposal-class-properties" "^7.10.4" - "@babel/plugin-proposal-dynamic-import" "^7.10.4" - "@babel/plugin-proposal-export-namespace-from" "^7.10.4" - "@babel/plugin-proposal-json-strings" "^7.10.4" - "@babel/plugin-proposal-logical-assignment-operators" "^7.11.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" - "@babel/plugin-proposal-numeric-separator" "^7.10.4" - "@babel/plugin-proposal-object-rest-spread" "^7.11.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" - "@babel/plugin-proposal-optional-chaining" "^7.11.0" - "@babel/plugin-proposal-private-methods" "^7.10.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-class-properties" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.10.4" - "@babel/plugin-transform-arrow-functions" "^7.10.4" - "@babel/plugin-transform-async-to-generator" "^7.10.4" - "@babel/plugin-transform-block-scoped-functions" "^7.10.4" - "@babel/plugin-transform-block-scoping" "^7.10.4" - "@babel/plugin-transform-classes" "^7.10.4" - "@babel/plugin-transform-computed-properties" "^7.10.4" - "@babel/plugin-transform-destructuring" "^7.10.4" - "@babel/plugin-transform-dotall-regex" "^7.10.4" - "@babel/plugin-transform-duplicate-keys" "^7.10.4" - "@babel/plugin-transform-exponentiation-operator" "^7.10.4" - "@babel/plugin-transform-for-of" "^7.10.4" - "@babel/plugin-transform-function-name" "^7.10.4" - "@babel/plugin-transform-literals" "^7.10.4" - "@babel/plugin-transform-member-expression-literals" "^7.10.4" - "@babel/plugin-transform-modules-amd" "^7.10.4" - "@babel/plugin-transform-modules-commonjs" "^7.10.4" - "@babel/plugin-transform-modules-systemjs" "^7.10.4" - "@babel/plugin-transform-modules-umd" "^7.10.4" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" - "@babel/plugin-transform-new-target" "^7.10.4" - "@babel/plugin-transform-object-super" "^7.10.4" - "@babel/plugin-transform-parameters" "^7.10.4" - "@babel/plugin-transform-property-literals" "^7.10.4" - "@babel/plugin-transform-regenerator" "^7.10.4" - "@babel/plugin-transform-reserved-words" "^7.10.4" - "@babel/plugin-transform-shorthand-properties" "^7.10.4" - "@babel/plugin-transform-spread" "^7.11.0" - "@babel/plugin-transform-sticky-regex" "^7.10.4" - "@babel/plugin-transform-template-literals" "^7.10.4" - "@babel/plugin-transform-typeof-symbol" "^7.10.4" - "@babel/plugin-transform-unicode-escapes" "^7.10.4" - "@babel/plugin-transform-unicode-regex" "^7.10.4" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.11.0" - browserslist "^4.12.0" - core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/preset-env@^7.9.6": +"@babel/preset-env@^7.9.5", "@babel/preset-env@^7.9.6": version "7.11.5" resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.5.tgz#18cb4b9379e3e92ffea92c07471a99a2914e4272" integrity sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA== @@ -1191,7 +1110,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.10.4", "@babel/template@^7.3.3", "@babel/template@^7.7.4": +"@babel/template@^7.10.4", "@babel/template@^7.3.3": version "7.10.4" resolved "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== @@ -1200,7 +1119,7 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0", "@babel/traverse@^7.7.4": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0": version "7.11.0" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== @@ -1215,16 +1134,7 @@ globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.9.5": - version "7.11.0" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" - integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - -"@babel/types@^7.11.5": +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.9.5": version "7.11.5" resolved "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== @@ -2568,23 +2478,23 @@ resolved "https://registry.npmjs.org/@material-icons/font/-/font-1.0.3.tgz#f722e5a69a03f20ef47d015cb69420bebeeaabe5" integrity sha512-aIRd0Z9b/HJ/O24KOaP7dNsXypMnXhpWrpLVYvQB/JesVqXYSbioYND200sR+C14a0LSCp+qWnWCnSXmN1hWGw== -"@material-ui/core@^4.9.1": - version "4.9.7" - resolved "https://registry.npmjs.org/@material-ui/core/-/core-4.9.7.tgz#0c1caf123278770f34c5d8e9ecd9e1314f87a621" - integrity sha512-RTRibZgq572GHEskMAG4sP+bt3P3XyIkv3pOTR8grZAW2rSUd6JoGZLRM4S2HkuO7wS7cAU5SpU2s1EsmTgWog== +"@material-ui/core@^4.11.0", "@material-ui/core@^4.9.1": + version "4.11.0" + resolved "https://registry.npmjs.org/@material-ui/core/-/core-4.11.0.tgz#b69b26e4553c9e53f2bfaf1053e216a0af9be15a" + integrity sha512-bYo9uIub8wGhZySHqLQ833zi4ZML+XCBE1XwJ8EuUVSpTWWG57Pm+YugQToJNFsEyiKFhPh8DPD0bgupz8n01g== dependencies: "@babel/runtime" "^7.4.4" - "@material-ui/styles" "^4.9.6" - "@material-ui/system" "^4.9.6" - "@material-ui/types" "^5.0.0" - "@material-ui/utils" "^4.9.6" + "@material-ui/styles" "^4.10.0" + "@material-ui/system" "^4.9.14" + "@material-ui/types" "^5.1.0" + "@material-ui/utils" "^4.10.2" "@types/react-transition-group" "^4.2.0" - clsx "^1.0.2" + clsx "^1.0.4" hoist-non-react-statics "^3.3.2" - popper.js "^1.14.1" + popper.js "1.16.1-lts" prop-types "^15.7.2" react-is "^16.8.0" - react-transition-group "^4.3.0" + react-transition-group "^4.4.0" "@material-ui/icons@^4.9.1": version "4.9.1" @@ -2616,16 +2526,16 @@ react-transition-group "^4.0.0" rifm "^0.7.0" -"@material-ui/styles@^4.9.6": - version "4.9.6" - resolved "https://registry.npmjs.org/@material-ui/styles/-/styles-4.9.6.tgz#924a30bf7c9b91af9c8f19c12c8573b8a4ecd085" - integrity sha512-ijgwStEkw1OZ6gCz18hkjycpr/3lKs1hYPi88O/AUn4vMuuGEGAIrqKVFq/lADmZUNF3DOFIk8LDkp7zmjPxtA== +"@material-ui/styles@^4.10.0": + version "4.10.0" + resolved "https://registry.npmjs.org/@material-ui/styles/-/styles-4.10.0.tgz#2406dc23aa358217aa8cc772e6237bd7f0544071" + integrity sha512-XPwiVTpd3rlnbfrgtEJ1eJJdFCXZkHxy8TrdieaTvwxNYj42VnnCyFzxYeNW9Lhj4V1oD8YtQ6S5Gie7bZDf7Q== dependencies: "@babel/runtime" "^7.4.4" "@emotion/hash" "^0.8.0" - "@material-ui/types" "^5.0.0" + "@material-ui/types" "^5.1.0" "@material-ui/utils" "^4.9.6" - clsx "^1.0.2" + clsx "^1.0.4" csstype "^2.5.2" hoist-non-react-statics "^3.3.2" jss "^10.0.3" @@ -2638,24 +2548,25 @@ jss-plugin-vendor-prefixer "^10.0.3" prop-types "^15.7.2" -"@material-ui/system@^4.9.6": - version "4.9.6" - resolved "https://registry.npmjs.org/@material-ui/system/-/system-4.9.6.tgz#fd060540224da4d1740da8ca6e7af288e217717e" - integrity sha512-QtfoAePyqXoZ2HUVSwGb1Ro0kucMCvVjbI0CdYIR21t0Opgfm1Oer6ni9P5lfeXA39xSt0wCierw37j+YES48Q== +"@material-ui/system@^4.9.14": + version "4.9.14" + resolved "https://registry.npmjs.org/@material-ui/system/-/system-4.9.14.tgz#4b00c48b569340cefb2036d0596b93ac6c587a5f" + integrity sha512-oQbaqfSnNlEkXEziDcJDDIy8pbvwUmZXWNqlmIwDqr/ZdCK8FuV3f4nxikUh7hvClKV2gnQ9djh5CZFTHkZj3w== dependencies: "@babel/runtime" "^7.4.4" "@material-ui/utils" "^4.9.6" + csstype "^2.5.2" prop-types "^15.7.2" -"@material-ui/types@^5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@material-ui/types/-/types-5.0.0.tgz#26d6259dc6b39f4c2e1e9aceff7a11e031941741" - integrity sha512-UeH2BuKkwDndtMSS0qgx1kCzSMw+ydtj0xx/XbFtxNSTlXydKwzs5gVW5ZKsFlAkwoOOQ9TIsyoCC8hq18tOwg== +"@material-ui/types@^5.1.0": + version "5.1.0" + resolved "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz#efa1c7a0b0eaa4c7c87ac0390445f0f88b0d88f2" + integrity sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A== -"@material-ui/utils@^4.7.1", "@material-ui/utils@^4.9.6": - version "4.9.6" - resolved "https://registry.npmjs.org/@material-ui/utils/-/utils-4.9.6.tgz#5f1f9f6e4df9c8b6a263293b68c94834248ff157" - integrity sha512-gqlBn0JPPTUZeAktn1rgMcy9Iczrr74ecx31tyZLVGdBGGzsxzM6PP6zeS7FuoLS6vG4hoZP7hWnOoHtkR0Kvw== +"@material-ui/utils@^4.10.2", "@material-ui/utils@^4.7.1", "@material-ui/utils@^4.9.6": + version "4.10.2" + resolved "https://registry.npmjs.org/@material-ui/utils/-/utils-4.10.2.tgz#3fd5470ca61b7341f1e0468ac8f29a70bf6df321" + integrity sha512-eg29v74P7W5r6a4tWWDAAfZldXIzfyO1am2fIsC39hdUUHm/33k6pGOKPbgDjg/U/4ifmgAePy/1OjkKN6rFRw== dependencies: "@babel/runtime" "^7.4.4" prop-types "^15.7.2" @@ -3965,7 +3876,7 @@ resolved "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.0.tgz#14264692a9d6e2fa4db3df5e56e94b5e25647ac0" integrity sha512-iIgQNzCm0v7QMhhe4Jjn9uRh+I6GoPmt03CbEtwx3ao8/EfoQcmgtqH4vQ5Db/lxiIGaWDv6nwvunuh0RyX0+A== -"@types/babel__core@^7.0.0": +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": version "7.1.9" resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz#77e59d438522a6fb898fa43dc3455c6e72f3963d" integrity sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw== @@ -3976,17 +3887,6 @@ "@types/babel__template" "*" "@types/babel__traverse" "*" -"@types/babel__core@^7.1.7": - version "7.1.7" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89" - integrity sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - "@types/babel__generator@*": version "7.6.1" resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" @@ -4183,11 +4083,6 @@ resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== -"@types/events@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== - "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.5": version "4.17.9" resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.9.tgz#2d7b34dcfd25ec663c25c85d76608f8b249667f1" @@ -4236,7 +4131,7 @@ resolved "https://registry.npmjs.org/@types/glob-base/-/glob-base-0.3.0.tgz#a581d688347e10e50dd7c17d6f2880a10354319d" integrity sha1-pYHWiDR+EOUN18F9byiAoQNUMZ0= -"@types/glob@*": +"@types/glob@*", "@types/glob@^7.1.1": version "7.1.3" resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== @@ -4244,15 +4139,6 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== - dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" - "@types/google-protobuf@^3.7.2": version "3.7.3" resolved "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.7.3.tgz#429512e541bbd777f2c867692e6335ee08d1f6d4" @@ -5415,12 +5301,7 @@ ajv-errors@^1.0.0: resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.4.1" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== - -ajv-keywords@^3.5.2: +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== @@ -5445,7 +5326,7 @@ ajv@^5.0.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -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.5.5, ajv@^6.7.0: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.1, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.5.5, ajv@^6.7.0: version "6.12.4" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== @@ -7205,22 +7086,7 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.2.2, chokidar@^3.3.0, chokidar@^3.3.1: - version "3.4.1" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1" - integrity sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.4.0" - optionalDependencies: - fsevents "~2.1.2" - -chokidar@^3.4.1: +chokidar@^3.2.2, chokidar@^3.3.0, chokidar@^3.3.1, chokidar@^3.4.1: version "3.4.2" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== @@ -9267,16 +9133,7 @@ endent@^2.0.1: fast-json-parse "^1.0.3" objectorarray "^1.0.4" -enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" - integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -enhanced-resolve@^4.3.0: +enhanced-resolve@^4.0.0, enhanced-resolve@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== @@ -11551,7 +11408,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.2.1, html-webpack-plugin@^4.3.0: version "4.4.1" resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.4.1.tgz#61ab85aa1a84ba181443345ebaead51abbb84149" integrity sha512-nEtdEIsIGXdXGG7MjTTZlmhqhpHU9pJFc1OYxcP36c5/ZKP6b0BJMww2QTvJGQYA9aMxUnjDujpZdYcVOXiBCQ== @@ -11566,21 +11423,6 @@ html-webpack-plugin@^4.2.1: tapable "^1.1.3" util.promisify "1.0.0" -html-webpack-plugin@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.3.0.tgz#53bf8f6d696c4637d5b656d3d9863d89ce8174fd" - integrity sha512-C0fzKN8yQoVLTelcJxZfJCE+aAvQiY2VUf3UuKrR4a9k5UMWYOtpDLsaXwATbcVCnI05hUS7L9ULQHWLZhyi3w== - dependencies: - "@types/html-minifier-terser" "^5.0.0" - "@types/tapable" "^1.0.5" - "@types/webpack" "^4.41.8" - html-minifier-terser "^5.0.1" - loader-utils "^1.2.3" - lodash "^4.17.15" - pretty-error "^2.1.1" - tapable "^1.1.3" - util.promisify "1.0.0" - html2canvas@1.0.0-alpha.12: version "1.0.0-alpha.12" resolved "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz#3b1992e3c9b3f56063c35fd620494f37eba88513" @@ -12593,12 +12435,7 @@ is-wsl@^1.1.0: resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -is-wsl@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" - integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== - -is-wsl@^2.2.0: +is-wsl@^2.1.1, is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== @@ -12664,20 +12501,7 @@ istanbul-lib-coverage@^3.0.0: resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== -istanbul-lib-instrument@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz#61f13ac2c96cfefb076fe7131156cc05907874e6" - integrity sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg== - dependencies: - "@babel/core" "^7.7.5" - "@babel/parser" "^7.7.5" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-instrument@^4.0.3: +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== @@ -14723,14 +14547,6 @@ minizlib@^1.2.1: dependencies: minipass "^2.9.0" -minizlib@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz#fd52c645301ef09a63a2c209697c294c6ce02cf3" - integrity sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - minizlib@^2.1.1: version "2.1.2" resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -15625,15 +15441,7 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -open@^7.0.2: - version "7.0.3" - resolved "https://registry.npmjs.org/open/-/open-7.0.3.tgz#db551a1af9c7ab4c7af664139930826138531c48" - integrity sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -open@^7.0.3: +open@^7.0.2, open@^7.0.3: version "7.2.1" resolved "https://registry.npmjs.org/open/-/open-7.2.1.tgz#07b0ade11a43f2a8ce718480bdf3d7563a095195" integrity sha512-xbYCJib4spUdmcs0g/2mK1nKo/jO2T7INClWd/beL7PFkXRWgr8B23ssDHX/USPn2M2IjDR5UdpYs6I67SnTSA== @@ -16551,7 +16359,12 @@ polished@^3.4.4: dependencies: "@babel/runtime" "^7.9.2" -popper.js@^1.14.1, popper.js@^1.14.4, popper.js@^1.14.7: +popper.js@1.16.1-lts: + version "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== + +popper.js@^1.14.4, popper.js@^1.14.7: version "1.16.1" resolved "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== @@ -17920,10 +17733,10 @@ react-textarea-autosize@^8.1.1: use-composed-ref "^1.0.0" use-latest "^1.0.0" -react-transition-group@^4.0.0, react-transition-group@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.3.0.tgz#fea832e386cf8796c58b61874a3319704f5ce683" - integrity sha512-1qRV1ZuVSdxPlPf4O8t7inxUGpdyO5zG9IoNfJxSO0ImU2A1YWkEQvFPuIPZmMLkg5hYs7vv5mMOyfgSkvAwvw== +react-transition-group@^4.0.0, react-transition-group@^4.4.0: + version "4.4.1" + resolved "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz#63868f9325a38ea5ee9535d828327f85773345c9" + integrity sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw== dependencies: "@babel/runtime" "^7.5.5" dom-helpers "^5.0.1" @@ -18894,16 +18707,7 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.6.5, schema-utils@^2.6.6, 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@^2.7.1: +schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0, schema-utils@^2.7.1: version "2.7.1" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== @@ -20287,19 +20091,7 @@ tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: safe-buffer "^5.1.2" yallist "^3.0.3" -tar@^6.0.1: - version "6.0.2" - resolved "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz#5df17813468a6264ff14f766886c622b84ae2f39" - integrity sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.0" - mkdirp "^1.0.3" - yallist "^4.0.0" - -tar@^6.0.2: +tar@^6.0.1, tar@^6.0.2: version "6.0.5" resolved "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== @@ -20397,16 +20189,7 @@ terser-webpack-plugin@^3.0.0: terser "^4.8.0" webpack-sources "^1.4.3" -terser@^4.1.2, terser@^4.6.3: - version "4.6.7" - resolved "https://registry.npmjs.org/terser/-/terser-4.6.7.tgz#478d7f9394ec1907f0e488c5f6a6a9a2bad55e72" - integrity sha512-fmr7M1f7DBly5cX2+rFDvmGBAaaZyPrHYK4mMdHEDAdNTqXSZgSOfqsfGq2HqPGT/1V0foZZuCZFx8CHKgAk3g== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^4.8.0: +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" integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== @@ -21520,15 +21303,6 @@ watchpack-chokidar2@^2.0.0: dependencies: chokidar "^2.1.8" -watchpack@^1.6.1: - version "1.6.1" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2" - integrity sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA== - dependencies: - chokidar "^2.1.8" - graceful-fs "^4.1.2" - neo-async "^2.5.0" - watchpack@^1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" @@ -21679,36 +21453,7 @@ webpack-virtual-modules@^0.2.2: dependencies: debug "^3.0.0" -webpack@^4.41.6: - version "4.43.0" - resolved "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" - integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.6.1" - webpack-sources "^1.4.1" - -webpack@^4.43.0: +webpack@^4.41.6, webpack@^4.43.0: version "4.44.1" resolved "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz#17e69fff9f321b8f117d1fda714edfc0b939cc21" integrity sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ== From 6093ef9bd999653a0eeb002eacec25063dea2f3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20=C3=85lund?= Date: Wed, 9 Sep 2020 11:39:16 +0200 Subject: [PATCH 496/656] [microsite] Update wording for TechDocs (#2346) * Update index.js * Prettier Co-authored-by: AlleyWei <64219471+AlleyWei@users.noreply.github.com> --- microsite/pages/en/index.js | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/microsite/pages/en/index.js b/microsite/pages/en/index.js index 2cc7ba6a11..f595032bd0 100644 --- a/microsite/pages/en/index.js +++ b/microsite/pages/en/index.js @@ -371,19 +371,11 @@ class Index extends React.Component { - Subscribe to our newsletter - - TechDocs is our most used feature at Spotify. Be the first to know - when{' '} - - the open source version - {' '} - ships. - + Learn more about TechDocs - Subscribe + Docs From caa58002aab60ab9184339a11f0a8fe87ecbfde0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20Ram=C3=ADrez?= Date: Wed, 9 Sep 2020 11:40:00 +0200 Subject: [PATCH 497/656] minor typo --- docs/architecture-decisions/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/architecture-decisions/index.md b/docs/architecture-decisions/index.md index 91d2c668d7..0e9ff21812 100644 --- a/docs/architecture-decisions/index.md +++ b/docs/architecture-decisions/index.md @@ -4,7 +4,7 @@ title: Architecture Decision Records (ADR) sidebar_label: Overview --- -The substantial architecture decisions made in the Backstage project lives here. +The substantial architecture decisions made in the Backstage project live here. For more information about ADRs, when to write them, and why, please see [this blog post](https://engineering.atspotify.com/2020/04/14/when-should-i-write-an-architecture-decision-record/). From 3405c34d4c26ce6781ab140560af4bd3c874b975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 9 Sep 2020 11:53:43 +0200 Subject: [PATCH 498/656] fix(microsite): fixup graphiql plugin info --- microsite/data/plugins/graphiql.yaml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/microsite/data/plugins/graphiql.yaml b/microsite/data/plugins/graphiql.yaml index 6c95d1b175..e997360b04 100644 --- a/microsite/data/plugins/graphiql.yaml +++ b/microsite/data/plugins/graphiql.yaml @@ -3,12 +3,10 @@ title: GraphiQL author: Spotify authorUrl: https://github.com/spotify category: Debugging -description: Integrates GraphiQL as a tool to browse GraphiQL endpoints inside Backstage. -documentation: https://github.com/spotify/backstage/tree/master/plugins/lighthouse +description: Integrates GraphiQL as a tool to browse GraphQL API endpoints inside Backstage. +documentation: https://github.com/spotify/backstage/tree/master/plugins/graphiql iconUrl: https://upload.wikimedia.org/wikipedia/commons/thumb/1/17/GraphQL_Logo.svg/1024px-GraphQL_Logo.svg.png npmPackageName: '@backstage/plugin-graphiql' tags: - graphql - - github - - gitlab - - api + - graphiql From d32a911c438be1d84d0b3a8d69ef94072ed675a5 Mon Sep 17 00:00:00 2001 From: Marcus Eide Date: Wed, 9 Sep 2020 11:45:27 +0200 Subject: [PATCH 499/656] Refactor to new routing api --- packages/app/src/App.tsx | 3 ++ plugins/lighthouse/src/Router.tsx | 30 +++++++++++++++++++ .../components/AuditList/AuditListTable.tsx | 6 ++-- .../src/components/AuditList/index.tsx | 9 +++--- .../src/components/AuditView/index.tsx | 11 +++---- .../src/components/CreateAudit/index.tsx | 4 +-- plugins/lighthouse/src/index.ts | 1 + plugins/lighthouse/src/plugin.ts | 30 +++++++++++++------ 8 files changed, 70 insertions(+), 24 deletions(-) create mode 100644 plugins/lighthouse/src/Router.tsx diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 3d4f297e8e..97acb6cecb 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -30,6 +30,7 @@ import { Router as CatalogRouter } from '@backstage/plugin-catalog'; import { Router as DocsRouter } from '@backstage/plugin-techdocs'; import { Router as GraphiQLRouter } from '@backstage/plugin-graphiql'; import { Router as TechRadarRouter } from '@backstage/plugin-tech-radar'; +import { Router as LighthouseRouter } from '@backstage/plugin-lighthouse'; import { Route, Routes, Navigate } from 'react-router'; import { EntityPage } from './components/catalog/EntityPage'; @@ -68,6 +69,8 @@ const AppRoutes = () => ( element={} /> } /> + } /> + {...deprecatedAppRoutes} ); diff --git a/plugins/lighthouse/src/Router.tsx b/plugins/lighthouse/src/Router.tsx new file mode 100644 index 0000000000..46843504fd --- /dev/null +++ b/plugins/lighthouse/src/Router.tsx @@ -0,0 +1,30 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { Routes, Route } from 'react-router-dom'; +import { rootRouteRef, viewAuditRouteRef, createAuditRouteRef } from './plugin'; +import AuditList from './components/AuditList'; +import AuditView from './components/AuditView'; +import CreateAudit from './components/CreateAudit'; + +export const Router = () => ( + + } /> + } /> + } /> + +); diff --git a/plugins/lighthouse/src/components/AuditList/AuditListTable.tsx b/plugins/lighthouse/src/components/AuditList/AuditListTable.tsx index e52805000a..92d61439a2 100644 --- a/plugins/lighthouse/src/components/AuditList/AuditListTable.tsx +++ b/plugins/lighthouse/src/components/AuditList/AuditListTable.tsx @@ -23,7 +23,7 @@ import { CATEGORY_LABELS, buildSparklinesDataForItem, } from '../../utils'; -import { Link } from '@material-ui/core'; +import { Link } from 'react-router-dom'; import AuditStatusIcon from '../AuditStatusIcon'; const columns: TableColumn[] = [ @@ -94,9 +94,7 @@ export const AuditListTable: FC<{ items: Website[] }> = ({ items }) => { return { websiteUrl: ( - - {website.url} - + {website.url} ), ...trendlines, lastReport: ( diff --git a/plugins/lighthouse/src/components/AuditList/index.tsx b/plugins/lighthouse/src/components/AuditList/index.tsx index c83ce9f641..992af855d3 100644 --- a/plugins/lighthouse/src/components/AuditList/index.tsx +++ b/plugins/lighthouse/src/components/AuditList/index.tsx @@ -16,8 +16,8 @@ import React, { useState, useMemo, FC, ReactNode } from 'react'; import { useLocalStorage, useAsync } from 'react-use'; -import { useNavigate } from 'react-router-dom'; -import { Grid, Button } from '@material-ui/core'; +import { useNavigate, Link } from 'react-router-dom'; +import { Grid, Button, Typography } from '@material-ui/core'; import Alert from '@material-ui/lab/Alert'; import Pagination from '@material-ui/lab/Pagination'; import { @@ -37,6 +37,7 @@ import { useQuery } from '../../utils'; import LighthouseSupportButton from '../SupportButton'; import LighthouseIntro, { LIGHTHOUSE_INTRO_LOCAL_STORAGE } from '../Intro'; import AuditListTable from './AuditListTable'; +import { createAuditRouteRef } from '../../plugin'; export const LIMIT = 10; @@ -77,7 +78,7 @@ const AuditList: FC<{}> = () => { page={page} count={pageCount} onChange={(_event: Event, newPage: number) => { - navigate(`/lighthouse?page=${newPage}`); + navigate(`?page=${newPage}`); }} /> )} @@ -111,7 +112,7 @@ const AuditList: FC<{}> = () => { diff --git a/plugins/lighthouse/src/components/AuditView/index.tsx b/plugins/lighthouse/src/components/AuditView/index.tsx index 12606482bf..17b152c89b 100644 --- a/plugins/lighthouse/src/components/AuditView/index.tsx +++ b/plugins/lighthouse/src/components/AuditView/index.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ import React, { useState, useEffect, ReactNode, FC } from 'react'; -import { Link, useParams } from 'react-router-dom'; +import { Link, generatePath, useParams, useNavigate } from 'react-router-dom'; import { useAsync } from 'react-use'; import { makeStyles, @@ -75,7 +75,7 @@ const AuditLinkList: FC = ({ button component={Link} replace - to={`/lighthouse/audit/${audit.id}`} + to={`audit/${audit.id}`} > @@ -116,6 +116,7 @@ const ConnectedAuditView: FC<{}> = () => { const lighthouseApi = useApi(lighthouseApiRef); const params = useParams() as { id: string }; const classes = useStyles(); + const navigate = useNavigate(); const { loading, error, value: nextValue } = useAsync( async () => await lighthouseApi.getWebsiteForAuditId(params.id), @@ -154,7 +155,7 @@ const ConnectedAuditView: FC<{}> = () => { ); } - let createAuditButtonUrl = '/lighthouse/create-audit'; + let createAuditButtonUrl = 'create-audit'; if (value?.url) { createAuditButtonUrl += `?url=${encodeURIComponent(value.url)}`; } @@ -176,9 +177,9 @@ const ConnectedAuditView: FC<{}> = () => { diff --git a/plugins/lighthouse/src/components/CreateAudit/index.tsx b/plugins/lighthouse/src/components/CreateAudit/index.tsx index a699e148c8..36bd97485a 100644 --- a/plugins/lighthouse/src/components/CreateAudit/index.tsx +++ b/plugins/lighthouse/src/components/CreateAudit/index.tsx @@ -78,7 +78,7 @@ const CreateAudit: FC<{}> = () => { }, }, }); - navigate('/lighthouse'); + navigate('..'); } catch (err) { errorApi.post(err); } finally { @@ -154,7 +154,7 @@ const CreateAudit: FC<{}> = () => {
); diff --git a/packages/core/src/components/ProgressBars/HorizontalProgress.stories.tsx b/packages/core/src/components/ProgressBars/HorizontalProgress.stories.tsx deleted file mode 100644 index c4492986b6..0000000000 --- a/packages/core/src/components/ProgressBars/HorizontalProgress.stories.tsx +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { LinearGauge } from './LinearGauge'; - -const containerStyle = { width: 300 }; - -export default { - title: 'LinearGauge', - component: LinearGauge, -}; - -export const Default = () => ( -
- -
-); - -export const MediumProgress = () => ( -
- -
-); - -export const LowProgress = () => ( -
- -
-); diff --git a/packages/core/src/components/ProgressBars/LinearGauge.tsx b/packages/core/src/components/ProgressBars/LinearGauge.tsx index 5ea15fcbe4..73163b345f 100644 --- a/packages/core/src/components/ProgressBars/LinearGauge.tsx +++ b/packages/core/src/components/ProgressBars/LinearGauge.tsx @@ -19,7 +19,7 @@ import { Tooltip, useTheme } from '@material-ui/core'; // @ts-ignore import { Line } from 'rc-progress'; import { BackstageTheme } from '@backstage/theme'; -import { getProgressColor } from './CircleGauge'; +import { getProgressColor } from './GaugeProgress'; type Props = { /** diff --git a/packages/core/src/components/ProgressBars/ProgressCard.stories.tsx b/packages/core/src/components/ProgressBars/ProgressCard.stories.tsx deleted file mode 100644 index d39f88ac10..0000000000 --- a/packages/core/src/components/ProgressBars/ProgressCard.stories.tsx +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { ProgressCard } from './GaugeCard'; -import { Grid } from '@material-ui/core'; - -const linkInfo = { title: 'Go to XYZ Location', link: '#' }; - -export default { - title: 'Progress Card', - component: ProgressCard, -}; - -export const Default = () => ( - - - - - - - - - - - -); - -export const Subhead = () => ( - - - - - - - - - - - -); - -export const LinkInFooter = () => ( - - - - - - - - - - - -); diff --git a/packages/core/src/components/ProgressBars/ProgressCard.test.jsx b/packages/core/src/components/ProgressBars/ProgressCard.test.jsx deleted file mode 100644 index 8568077a92..0000000000 --- a/packages/core/src/components/ProgressBars/ProgressCard.test.jsx +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2020 Spotify AB - * - * 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 { render } from '@testing-library/react'; -import { wrapInTestApp } from '@backstage/test-utils'; - -import { ProgressCard } from './ProgressCard'; - -const minProps = { title: 'Tingle upgrade', progress: 0.12 }; - -describe('', () => { - it('renders without exploding', () => { - const { getByText } = render(wrapInTestApp()); - expect(getByText(/Tingle.*/)).toBeInTheDocument(); - }); - - it('renders progress and title', () => { - const { getByText } = render(wrapInTestApp()); - expect(getByText(/Tingle.*/)).toBeInTheDocument(); - expect(getByText(/12%.*/)).toBeInTheDocument(); - }); - - it('does not render deepLink', () => { - const { queryByText } = render( - wrapInTestApp(), - ); - expect(queryByText('View more')).not.toBeInTheDocument(); - }); - - it('handles invalid numbers', () => { - const badProps = { title: 'Tingle upgrade', progress: 'hejjo' }; - const { getByText } = render(wrapInTestApp()); - expect(getByText(/N\/A.*/)).toBeInTheDocument(); - }); -}); diff --git a/packages/core/src/components/ProgressBars/index.ts b/packages/core/src/components/ProgressBars/index.ts index 41583704f5..c7131c8831 100644 --- a/packages/core/src/components/ProgressBars/index.ts +++ b/packages/core/src/components/ProgressBars/index.ts @@ -15,5 +15,5 @@ */ export { GaugeCard } from './GaugeCard'; -export { CircleGauge } from './CircleGauge'; +export { GaugeProgress } from './GaugeProgress'; export { LinearGauge } from './LinearGauge'; From 47b17514e39cb5db7b20dfbaa8314be1ad8a1ff5 Mon Sep 17 00:00:00 2001 From: Rajiv Ranjan Singh Date: Tue, 15 Sep 2020 21:48:43 +0530 Subject: [PATCH 609/656] updated components import --- .../src/components/ProgressBars/.DS_Store | Bin 0 -> 6148 bytes .../ProgressBars/GaugeCard.stories.tsx | 76 +++++++++++++ .../ProgressBars/GaugeCard.test.jsx | 47 ++++++++ .../ProgressBars/GaugeProgress.test.jsx | 68 +++++++++++ .../components/ProgressBars/GaugeProgress.tsx | 106 ++++++++++++++++++ .../ProgressBars/LinearGauge.stories.tsx | 43 +++++++ 6 files changed, 340 insertions(+) create mode 100644 packages/core/src/components/ProgressBars/.DS_Store create mode 100644 packages/core/src/components/ProgressBars/GaugeCard.stories.tsx create mode 100644 packages/core/src/components/ProgressBars/GaugeCard.test.jsx create mode 100644 packages/core/src/components/ProgressBars/GaugeProgress.test.jsx create mode 100644 packages/core/src/components/ProgressBars/GaugeProgress.tsx create mode 100644 packages/core/src/components/ProgressBars/LinearGauge.stories.tsx diff --git a/packages/core/src/components/ProgressBars/.DS_Store b/packages/core/src/components/ProgressBars/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 ( + + + + + + + + + + + +); + +export const Subhead = () => ( + + + + + + + + + + + +); + +export const LinkInFooter = () => ( + + + + + + + + + + + +); diff --git a/packages/core/src/components/ProgressBars/GaugeCard.test.jsx b/packages/core/src/components/ProgressBars/GaugeCard.test.jsx new file mode 100644 index 0000000000..27ef0bb188 --- /dev/null +++ b/packages/core/src/components/ProgressBars/GaugeCard.test.jsx @@ -0,0 +1,47 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { render } from '@testing-library/react'; +import { wrapInTestApp } from '@backstage/test-utils'; + +import { GaugeCard } from './GaugeCard'; + +const minProps = { title: 'Tingle upgrade', progress: 0.12 }; + +describe('', () => { + it('renders without exploding', () => { + const { getByText } = render(wrapInTestApp()); + expect(getByText(/Tingle.*/)).toBeInTheDocument(); + }); + + it('renders progress and title', () => { + const { getByText } = render(wrapInTestApp()); + expect(getByText(/Tingle.*/)).toBeInTheDocument(); + expect(getByText(/12%.*/)).toBeInTheDocument(); + }); + + it('does not render deepLink', () => { + const { queryByText } = render(wrapInTestApp()); + expect(queryByText('View more')).not.toBeInTheDocument(); + }); + + it('handles invalid numbers', () => { + const badProps = { title: 'Tingle upgrade', progress: 'hejjo' }; + const { getByText } = render(wrapInTestApp()); + expect(getByText(/N\/A.*/)).toBeInTheDocument(); + }); +}); diff --git a/packages/core/src/components/ProgressBars/GaugeProgress.test.jsx b/packages/core/src/components/ProgressBars/GaugeProgress.test.jsx new file mode 100644 index 0000000000..778abdf12c --- /dev/null +++ b/packages/core/src/components/ProgressBars/GaugeProgress.test.jsx @@ -0,0 +1,68 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { render } from '@testing-library/react'; +import { wrapInTestApp } from '@backstage/test-utils'; +import { GaugeProgress, getProgressColor } from './GaugeProgress'; + +describe('', () => { + it('renders without exploding', () => { + const { getByText } = render( + wrapInTestApp(), + ); + getByText('10%'); + }); + it('handles fractional prop', () => { + const { getByText } = render( + wrapInTestApp(), + ); + getByText('10%'); + }); + + it('handles max prop', () => { + const { getByText } = render( + wrapInTestApp(), + ); + getByText('1%'); + }); + + it('handles unit prop', () => { + const { getByText } = render( + wrapInTestApp(), + ); + getByText('10m'); + }); + + const ok = '#111'; + const warning = '#222'; + const error = '#333'; + const palette = { status: { ok, warning, error } }; + + it('colors the progress correctly', () => { + expect(getProgressColor(palette)).toBe('#ddd'); + expect(getProgressColor(palette, 10)).toBe(error); + expect(getProgressColor(palette, 50)).toBe(warning); + expect(getProgressColor(palette, 90)).toBe(ok); + }); + + it('colors the inverse progress correctly', () => { + expect(getProgressColor(palette)).toBe('#ddd'); + expect(getProgressColor(palette, 10, true)).toBe(ok); + expect(getProgressColor(palette, 50, true)).toBe(warning); + expect(getProgressColor(palette, 90, true)).toBe(error); + }); +}); diff --git a/packages/core/src/components/ProgressBars/GaugeProgress.tsx b/packages/core/src/components/ProgressBars/GaugeProgress.tsx new file mode 100644 index 0000000000..14776ed431 --- /dev/null +++ b/packages/core/src/components/ProgressBars/GaugeProgress.tsx @@ -0,0 +1,106 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { makeStyles, useTheme } from '@material-ui/core'; +import { BackstageTheme } from '@backstage/theme'; +import { Circle } from 'rc-progress'; +import React, { FC } from 'react'; + +const useStyles = makeStyles(theme => ({ + root: { + position: 'relative', + lineHeight: 0, + }, + overlay: { + position: 'absolute', + top: '50%', + left: '50%', + transform: 'translate(-50%, -60%)', + fontSize: 45, + fontWeight: 'bold', + color: theme.palette.textContrast, + }, + circle: { + width: '80%', + transform: 'translate(10%, 0)', + }, + colorUnknown: {}, +})); + +type Props = { + value: number; + fractional?: boolean; + inverse?: boolean; + unit?: string; + max?: number; +}; + +const defaultProps = { + fractional: true, + inverse: false, + unit: '%', + max: 100, +}; + +export function getProgressColor( + palette: BackstageTheme['palette'], + value: number, + inverse?: boolean, + max?: number, +) { + if (isNaN(value)) { + return '#ddd'; + } + + const actualMax = max ? max : defaultProps.max; + const actualValue = inverse ? actualMax - value : value; + + if (actualValue < actualMax / 3) { + return palette.status.error; + } else if (actualValue < actualMax * (2 / 3)) { + return palette.status.warning; + } + + return palette.status.ok; +} + +export const GaugeProgress: FC = props => { + const classes = useStyles(props); + const theme = useTheme(); + const { value, fractional, inverse, unit, max } = { + ...defaultProps, + ...props, + }; + + const asPercentage = fractional ? Math.round(value * max) : value; + const asActual = max !== 100 ? Math.round(value) : asPercentage; + + return ( +
+ +
+ {isNaN(value) ? 'N/A' : `${asActual}${unit}`} +
+
+ ); +}; diff --git a/packages/core/src/components/ProgressBars/LinearGauge.stories.tsx b/packages/core/src/components/ProgressBars/LinearGauge.stories.tsx new file mode 100644 index 0000000000..c4492986b6 --- /dev/null +++ b/packages/core/src/components/ProgressBars/LinearGauge.stories.tsx @@ -0,0 +1,43 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { LinearGauge } from './LinearGauge'; + +const containerStyle = { width: 300 }; + +export default { + title: 'LinearGauge', + component: LinearGauge, +}; + +export const Default = () => ( +
+ +
+); + +export const MediumProgress = () => ( +
+ +
+); + +export const LowProgress = () => ( +
+ +
+); From a07f0e94faba631838101e5d7a6487e2f265e05d Mon Sep 17 00:00:00 2001 From: Rajiv Ranjan Singh Date: Tue, 15 Sep 2020 22:12:21 +0530 Subject: [PATCH 610/656] updated components import --- packages/core/src/layout/Page/Page.stories.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/src/layout/Page/Page.stories.tsx b/packages/core/src/layout/Page/Page.stories.tsx index aec99967dc..7bd57738cf 100644 --- a/packages/core/src/layout/Page/Page.stories.tsx +++ b/packages/core/src/layout/Page/Page.stories.tsx @@ -30,7 +30,7 @@ import { Table, StatusOK, TableColumn, - ProgressCard, + GaugeCard, TrendLine, } from '../../components'; import { Box, Typography, Link, Chip, Grid } from '@material-ui/core'; @@ -120,14 +120,14 @@ const DataGrid = () => ( direction="row" > - - Date: Tue, 15 Sep 2020 22:14:31 +0530 Subject: [PATCH 611/656] Delete .DS_Store --- .../core/src/components/ProgressBars/.DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 packages/core/src/components/ProgressBars/.DS_Store diff --git a/packages/core/src/components/ProgressBars/.DS_Store b/packages/core/src/components/ProgressBars/.DS_Store deleted file mode 100644 index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 Date: Tue, 15 Sep 2020 22:08:47 +0200 Subject: [PATCH 612/656] cli: fix for css being treated as images in build Reported on Discord: https://discordapp.com/channels/687207715902193673/687235481154617364/755424027236892823 --- packages/cli/src/lib/builder/config.ts | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/packages/cli/src/lib/builder/config.ts b/packages/cli/src/lib/builder/config.ts index e91fc32633..afcedaae59 100644 --- a/packages/cli/src/lib/builder/config.ts +++ b/packages/cli/src/lib/builder/config.ts @@ -94,14 +94,7 @@ export const makeConfigs = async ( postcss(), imageFiles({ exclude: /\.icon\.svg$/, - include: [ - /\.css$/, - /\.svg$/, - /\.png$/, - /\.gif$/, - /\.jpg$/, - /\.jpeg$/, - ], + include: [/\.svg$/, /\.png$/, /\.gif$/, /\.jpg$/, /\.jpeg$/], }), json(), yaml(), From 4c0c0bfd509244ccea0ea1720991a675cb86d03a Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Fri, 11 Sep 2020 09:28:07 -0400 Subject: [PATCH 613/656] Add the ability to configure repository visibility via config --- packages/backend/src/plugins/scaffolder.ts | 19 +- .../scaffolder/stages/publish/github.test.ts | 318 ++++++++++-------- .../src/scaffolder/stages/publish/github.ts | 31 +- 3 files changed, 219 insertions(+), 149 deletions(-) diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts index a9e5f185ec..abbcdae1ae 100644 --- a/packages/backend/src/plugins/scaffolder.ts +++ b/packages/backend/src/plugins/scaffolder.ts @@ -23,12 +23,16 @@ import { GithubPublisher, CreateReactAppTemplater, Templaters, + RepoVisilityOptions, } from '@backstage/plugin-scaffolder-backend'; import { Octokit } from '@octokit/rest'; import type { PluginEnvironment } from '../types'; import Docker from 'dockerode'; -export default async function createPlugin({ logger }: PluginEnvironment) { +export default async function createPlugin({ + logger, + config, +}: PluginEnvironment) { const cookiecutterTemplater = new CookieCutter(); const craTemplater = new CreateReactAppTemplater(); const templaters = new Templaters(); @@ -42,8 +46,17 @@ export default async function createPlugin({ logger }: PluginEnvironment) { preparers.register('file', filePreparer); preparers.register('github', githubPreparer); - const githubClient = new Octokit({ auth: process.env.GITHUB_ACCESS_TOKEN }); - const publisher = new GithubPublisher({ client: githubClient }); + const githubToken = config.getString('scaffolder.github.token'); + const repoVisibility = config.getString( + 'scaffolder.github.visibility', + ) as RepoVisilityOptions; + + const githubClient = new Octokit({ auth: githubToken }); + const publisher = new GithubPublisher({ + client: githubClient, + token: githubToken, + repoVisibility, + }); const dockerClient = new Docker(); return await createRouter({ diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts index 718c01438c..dd1152d3d5 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts @@ -53,14 +53,78 @@ const { }; describe('GitHub Publisher', () => { - const publisher = new GithubPublisher({ client: new Octokit() }); - beforeEach(() => { jest.clearAllMocks(); }); - describe('publish: createRemoteInGithub', () => { - it('should use octokit to create a repo in an organisation if the organisation property is set', async () => { + describe('with public repo visibility', () => { + const publisher = new GithubPublisher({ + client: new Octokit(), + token: 'abc', + repoVisibility: 'public', + }); + + describe('publish: createRemoteInGithub', () => { + it('should use octokit to create a repo in an organisation if the organisation property is set', async () => { + mockGithubClient.repos.createInOrg.mockResolvedValue({ + data: { + clone_url: 'mockclone', + }, + } as OctokitResponse); + + await publisher.publish({ + values: { + storePath: 'blam/test', + owner: 'bob', + }, + directory: '/tmp/test', + }); + + expect(mockGithubClient.repos.createInOrg).toHaveBeenCalledWith({ + org: 'blam', + name: 'test', + private: false, + visibility: 'public', + }); + }); + + it('should use octokit to create a repo in the authed user if the organisation property is not set', async () => { + mockGithubClient.repos.createForAuthenticatedUser.mockResolvedValue({ + data: { + clone_url: 'mockclone', + }, + } as OctokitResponse); + mockGithubClient.users.getByUsername.mockResolvedValue({ + data: { + type: 'User', + }, + } as OctokitResponse); + + await publisher.publish({ + values: { + storePath: 'blam/test', + owner: 'bob', + }, + directory: '/tmp/test', + }); + + expect( + mockGithubClient.repos.createForAuthenticatedUser, + ).toHaveBeenCalledWith({ + name: 'test', + }); + }); + }); + + describe('publish: createGitDirectory', () => { + const values = { + isOrg: true, + storePath: 'blam/test', + owner: 'lols', + }; + + const mockDir = '/tmp/test/dir'; + mockGithubClient.repos.createInOrg.mockResolvedValue({ data: { clone_url: 'mockclone', @@ -72,8 +136,116 @@ describe('GitHub Publisher', () => { }, } as OctokitResponse); + it('should call init on the repo with the directory', async () => { + await publisher.publish({ + values, + directory: mockDir, + }); + + expect(Repository.init).toHaveBeenCalledWith(mockDir, 0); + }); + + it('should call refresh index on the index and write the new files', async () => { + await publisher.publish({ + values, + directory: mockDir, + }); + + expect(mockRepo.refreshIndex).toHaveBeenCalled(); + }); + + it('should call add all files and write', async () => { + await publisher.publish({ + values, + directory: mockDir, + }); + + expect(mockIndex.addAll).toHaveBeenCalled(); + expect(mockIndex.write).toHaveBeenCalled(); + expect(mockIndex.writeTree).toHaveBeenCalled(); + }); + + it('should create a commit with on head with the right name and commiter', async () => { + const mockSignature = { mockSignature: 'bloblly' }; + Signature.now.mockReturnValue(mockSignature); + + await publisher.publish({ + values, + directory: mockDir, + }); + + expect(Signature.now).toHaveBeenCalledTimes(2); + expect(Signature.now).toHaveBeenCalledWith( + 'Scaffolder', + 'scaffolder@backstage.io', + ); + + expect(mockRepo.createCommit).toHaveBeenCalledWith( + 'HEAD', + mockSignature, + mockSignature, + 'initial commit', + 'mockoid', + [], + ); + }); + + it('creates a remote with the repo and remote', async () => { + await publisher.publish({ + values, + directory: mockDir, + }); + + expect(Remote.create).toHaveBeenCalledWith( + mockRepo, + 'origin', + 'mockclone', + ); + }); + + it('shoud push to the remote repo', async () => { + await publisher.publish({ + values, + directory: mockDir, + }); + + const [remotes, { callbacks }] = mockRemote.push.mock + .calls[0] as NodeGit.PushOptions[]; + + expect(remotes).toEqual(['refs/heads/master:refs/heads/master']); + + callbacks?.credentials?.(); + + expect(Cred.userpassPlaintextNew).toHaveBeenCalledWith( + 'abc', + 'x-oauth-basic', + ); + }); + }); + }); + + describe('with internal repo visibility', () => { + const publisher = new GithubPublisher({ + client: new Octokit(), + token: 'abc', + repoVisibility: 'internal', + }); + + it('creates a repo in an organisation with internal visibility', async () => { + mockGithubClient.repos.createInOrg.mockResolvedValue({ + data: { + clone_url: 'mockclone', + }, + } as OctokitResponse); + mockGithubClient.users.getByUsername.mockResolvedValue({ + data: { + type: 'Organization', + }, + } as OctokitResponse); + await publisher.publish({ values: { + isOrg: true, storePath: 'blam/test', owner: 'bob', }, @@ -83,143 +255,9 @@ describe('GitHub Publisher', () => { expect(mockGithubClient.repos.createInOrg).toHaveBeenCalledWith({ org: 'blam', name: 'test', + private: true, + visibility: 'internal', }); }); - - it('should use octokit to create a repo in the authed user if the organisation property is not set', async () => { - mockGithubClient.repos.createForAuthenticatedUser.mockResolvedValue({ - data: { - clone_url: 'mockclone', - }, - } as OctokitResponse); - mockGithubClient.users.getByUsername.mockResolvedValue({ - data: { - type: 'User', - }, - } as OctokitResponse); - - await publisher.publish({ - values: { - storePath: 'blam/test', - owner: 'bob', - }, - directory: '/tmp/test', - }); - - expect( - mockGithubClient.repos.createForAuthenticatedUser, - ).toHaveBeenCalledWith({ - name: 'test', - }); - }); - }); - - describe('publish: createGitDirectory', () => { - const values = { - isOrg: true, - storePath: 'blam/test', - owner: 'lols', - }; - - const mockDir = '/tmp/test/dir'; - - mockGithubClient.repos.createInOrg.mockResolvedValue({ - data: { - clone_url: 'mockclone', - }, - } as OctokitResponse); - mockGithubClient.users.getByUsername.mockResolvedValue({ - data: { - type: 'Organization', - }, - } as OctokitResponse); - - it('should call init on the repo with the directory', async () => { - await publisher.publish({ - values, - directory: mockDir, - }); - - expect(Repository.init).toHaveBeenCalledWith(mockDir, 0); - }); - - it('should call refresh index on the index and write the new files', async () => { - await publisher.publish({ - values, - directory: mockDir, - }); - - expect(mockRepo.refreshIndex).toHaveBeenCalled(); - }); - - it('should call add all files and write', async () => { - await publisher.publish({ - values, - directory: mockDir, - }); - - expect(mockIndex.addAll).toHaveBeenCalled(); - expect(mockIndex.write).toHaveBeenCalled(); - expect(mockIndex.writeTree).toHaveBeenCalled(); - }); - - it('should create a commit with on head with the right name and commiter', async () => { - const mockSignature = { mockSignature: 'bloblly' }; - Signature.now.mockReturnValue(mockSignature); - - await publisher.publish({ - values, - directory: mockDir, - }); - - expect(Signature.now).toHaveBeenCalledTimes(2); - expect(Signature.now).toHaveBeenCalledWith( - 'Scaffolder', - 'scaffolder@backstage.io', - ); - - expect(mockRepo.createCommit).toHaveBeenCalledWith( - 'HEAD', - mockSignature, - mockSignature, - 'initial commit', - 'mockoid', - [], - ); - }); - - it('creates a remote with the repo and remote', async () => { - await publisher.publish({ - values, - directory: mockDir, - }); - - expect(Remote.create).toHaveBeenCalledWith( - mockRepo, - 'origin', - 'mockclone', - ); - }); - - it('shoud push to the remote repo', async () => { - await publisher.publish({ - values, - directory: mockDir, - }); - - const [remotes, { callbacks }] = mockRemote.push.mock - .calls[0] as NodeGit.PushOptions[]; - - expect(remotes).toEqual(['refs/heads/master:refs/heads/master']); - - process.env.GITHUb_ACCESS_TOKEN = 'blob'; - - callbacks?.credentials?.(); - - expect(Cred.userpassPlaintextNew).toHaveBeenCalledWith( - process.env.GITHUB_ACCESS_TOKEN, - 'x-oauth-basic', - ); - }); }); }); diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts index f3306e3662..22a46ddf1b 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts @@ -21,10 +21,27 @@ import { JsonValue } from '@backstage/config'; import { RequiredTemplateValues } from '../templater'; import { Repository, Remote, Signature, Cred } from 'nodegit'; +export type RepoVisilityOptions = 'private' | 'internal' | 'public'; + +interface GithubPublisherParams { + client: Octokit; + token: string; + repoVisibility: RepoVisilityOptions; +} + export class GithubPublisher implements PublisherBase { private client: Octokit; - constructor({ client }: { client: Octokit }) { + private token: string; + private repoVisibility: RepoVisilityOptions; + + constructor({ + client, + token, + repoVisibility = 'public', + }: GithubPublisherParams) { this.client = client; + this.token = token; + this.repoVisibility = repoVisibility; } async publish({ @@ -49,7 +66,12 @@ export class GithubPublisher implements PublisherBase { const repoCreationPromise = user.data.type === 'Organization' - ? this.client.repos.createInOrg({ name, org: owner }) + ? this.client.repos.createInOrg({ + name, + org: owner, + private: this.repoVisibility !== 'public', + visibility: this.repoVisibility, + }) : this.client.repos.createForAuthenticatedUser({ name }); const { data } = await repoCreationPromise; @@ -76,10 +98,7 @@ export class GithubPublisher implements PublisherBase { await remoteRepo.push(['refs/heads/master:refs/heads/master'], { callbacks: { credentials: () => { - return Cred.userpassPlaintextNew( - process.env.GITHUB_ACCESS_TOKEN as string, - 'x-oauth-basic', - ); + return Cred.userpassPlaintextNew(this.token, 'x-oauth-basic'); }, }, }); From 6ea4ac7b17e2ab6643e25873bcfb22906eb71d0a Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Fri, 11 Sep 2020 10:11:11 -0400 Subject: [PATCH 614/656] Add config for scaffolder to create-app's app-config.yaml --- .../create-app/templates/default-app/app-config.yaml.hbs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/create-app/templates/default-app/app-config.yaml.hbs b/packages/create-app/templates/default-app/app-config.yaml.hbs index 7b86b4f50e..7282b732b4 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -47,6 +47,13 @@ lighthouse: auth: providers: {} +scaffolder: + github: + token: + $secret: + env: GITHUB_ACCESS_TOKEN + visibility: public # or 'internal' or 'private' + catalog: locations: # Backstage example components From a7d5ade5a16599e5797d03b9dec3bd42d9716dc9 Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Tue, 15 Sep 2020 16:31:35 -0400 Subject: [PATCH 615/656] Merge GitHub scaffolding instructions --- .../software-templates/installation.md | 40 ++++++++++++++----- .../backend/src/plugins/scaffolder.ts | 19 +++++++-- 2 files changed, 47 insertions(+), 12 deletions(-) diff --git a/docs/features/software-templates/installation.md b/docs/features/software-templates/installation.md index eea78e3571..14bdc1318d 100644 --- a/docs/features/software-templates/installation.md +++ b/docs/features/software-templates/installation.md @@ -90,17 +90,19 @@ import { GithubPublisher, CreateReactAppTemplater, Templaters, + RepoVisilityOptions, } from '@backstage/plugin-scaffolder-backend'; import { Octokit } from '@octokit/rest'; import type { PluginEnvironment } from '../types'; import Docker from 'dockerode'; -export default async function createPlugin({ logger }: PluginEnvironment) { +export default async function createPlugin({ + logger, + config, +}: PluginEnvironment) { const cookiecutterTemplater = new CookieCutter(); const craTemplater = new CreateReactAppTemplater(); const templaters = new Templaters(); - - // Register default templaters templaters.register('cookiecutter', cookiecutterTemplater); templaters.register('cra', craTemplater); @@ -108,13 +110,20 @@ export default async function createPlugin({ logger }: PluginEnvironment) { const githubPreparer = new GithubPreparer(); const preparers = new Preparers(); - // Register default preparers preparers.register('file', filePreparer); preparers.register('github', githubPreparer); - // Create GitHub client with your access token from environment variables - const githubClient = new Octokit({ auth: process.env.GITHUB_ACCESS_TOKEN }); - const publisher = new GithubPublisher({ client: githubClient }); + const githubToken = config.getString('scaffolder.github.token'); + const repoVisibility = config.getString( + 'scaffolder.github.visibility', + ) as RepoVisilityOptions; + + const githubClient = new Octokit({ auth: githubToken }); + const publisher = new GithubPublisher({ + client: githubClient, + token: githubToken, + repoVisibility, + }); const dockerClient = new Docker(); return await createRouter({ @@ -177,8 +186,21 @@ docs on creating private GitHub access tokens is available Note that the need for private GitHub access tokens will be replaced with GitHub Apps integration further down the line. -The GitHub access token is passed along using the `GITHUB_ACCESS_TOKEN` -environment variable. +> **Right now it is only possible to scaffold repositories inside GitHub +> organizations, and not under personal accounts.** + +The Github access token is retrieved from environment variables by the +config. The config file needs to specify what environment variable the +token is retrieved from. Your config should have the following objects. + +```yaml +scaffolder: + github: + token: + $secret: + env: GITHUB_ACCESS_TOKEN + visibility: public # or 'internal' or 'private' +``` ### Running the Backend diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/scaffolder.ts b/packages/create-app/templates/default-app/packages/backend/src/plugins/scaffolder.ts index ffa10cc3c6..fecef240df 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/plugins/scaffolder.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/plugins/scaffolder.ts @@ -7,12 +7,16 @@ import { GithubPublisher, CreateReactAppTemplater, Templaters, + RepoVisilityOptions, } from '@backstage/plugin-scaffolder-backend'; import { Octokit } from '@octokit/rest'; import type { PluginEnvironment } from '../types'; import Docker from 'dockerode'; -export default async function createPlugin({ logger }: PluginEnvironment) { +export default async function createPlugin({ + logger, + config, +}: PluginEnvironment) { const cookiecutterTemplater = new CookieCutter(); const craTemplater = new CreateReactAppTemplater(); const templaters = new Templaters(); @@ -26,8 +30,17 @@ export default async function createPlugin({ logger }: PluginEnvironment) { preparers.register('file', filePreparer); preparers.register('github', githubPreparer); - const githubClient = new Octokit({ auth: process.env.GITHUB_ACCESS_TOKEN }); - const publisher = new GithubPublisher({ client: githubClient }); + const githubToken = config.getString('scaffolder.github.token'); + const repoVisibility = config.getString( + 'scaffolder.github.visibility', + ) as RepoVisilityOptions; + + const githubClient = new Octokit({ auth: githubToken }); + const publisher = new GithubPublisher({ + client: githubClient, + token: githubToken, + repoVisibility, + }); const dockerClient = new Docker(); return await createRouter({ From e9e3c79295315a2be6c7924af3701d339bd79ed5 Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Fri, 11 Sep 2020 11:12:27 -0400 Subject: [PATCH 616/656] Run prettier on docs/features/software-templates/installation.md --- docs/features/software-templates/installation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/features/software-templates/installation.md b/docs/features/software-templates/installation.md index 14bdc1318d..b1c7712f85 100644 --- a/docs/features/software-templates/installation.md +++ b/docs/features/software-templates/installation.md @@ -189,9 +189,9 @@ Apps integration further down the line. > **Right now it is only possible to scaffold repositories inside GitHub > organizations, and not under personal accounts.** -The Github access token is retrieved from environment variables by the -config. The config file needs to specify what environment variable the -token is retrieved from. Your config should have the following objects. +The Github access token is retrieved from environment variables by the config. +The config file needs to specify what environment variable the token is +retrieved from. Your config should have the following objects. ```yaml scaffolder: From 404df7d0b248e7ddb44dd51fa95487432b5fac50 Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Fri, 11 Sep 2020 13:48:53 -0400 Subject: [PATCH 617/656] Provide environment variable for scaffolder.github.token --- packages/e2e-test/src/e2e-test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/e2e-test/src/e2e-test.ts b/packages/e2e-test/src/e2e-test.ts index 5dfac68d6a..2049a720a0 100644 --- a/packages/e2e-test/src/e2e-test.ts +++ b/packages/e2e-test/src/e2e-test.ts @@ -196,6 +196,7 @@ async function createApp( env: { ...process.env, APP_CONFIG_app_baseUrl: '"http://localhost:3001"', + APP_CONFIG_scaffolder_github_token: '"abc"', }, }); From d72577006df1af999c626ff8e3e664c2cda9da16 Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Fri, 11 Sep 2020 14:49:28 -0400 Subject: [PATCH 618/656] Add missing environment variables from tests --- packages/e2e-test/src/e2e-test.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/e2e-test/src/e2e-test.ts b/packages/e2e-test/src/e2e-test.ts index 2049a720a0..10d3cc9950 100644 --- a/packages/e2e-test/src/e2e-test.ts +++ b/packages/e2e-test/src/e2e-test.ts @@ -196,7 +196,6 @@ async function createApp( env: { ...process.env, APP_CONFIG_app_baseUrl: '"http://localhost:3001"', - APP_CONFIG_scaffolder_github_token: '"abc"', }, }); @@ -273,6 +272,10 @@ async function createPlugin(pluginName: string, appDir: string) { async function testAppServe(pluginName: string, appDir: string) { const startApp = spawnPiped(['yarn', 'start'], { cwd: appDir, + env: { + ...process.env, + GITHUB_ACCESS_TOKEN: 'abc', + }, }); Browser.localhost('localhost', 3000); @@ -343,6 +346,10 @@ async function testBackendStart(appDir: string, isPostgres: boolean) { const child = spawnPiped(['yarn', 'workspace', 'backend', 'start'], { cwd: appDir, + env: { + ...process.env, + GITHUB_ACCESS_TOKEN: 'abc', + }, }); let stdout = ''; From 6d3ce751004c675aaa516a2fed9bdc462f8b5eda Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Tue, 15 Sep 2020 07:29:42 -0400 Subject: [PATCH 619/656] Apply requested chanegs --- docs/features/software-templates/installation.md | 2 ++ .../src/scaffolder/stages/publish/github.test.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/features/software-templates/installation.md b/docs/features/software-templates/installation.md index b1c7712f85..726f5faead 100644 --- a/docs/features/software-templates/installation.md +++ b/docs/features/software-templates/installation.md @@ -103,6 +103,7 @@ export default async function createPlugin({ const cookiecutterTemplater = new CookieCutter(); const craTemplater = new CreateReactAppTemplater(); const templaters = new Templaters(); + // Register default templaters templaters.register('cookiecutter', cookiecutterTemplater); templaters.register('cra', craTemplater); @@ -110,6 +111,7 @@ export default async function createPlugin({ const githubPreparer = new GithubPreparer(); const preparers = new Preparers(); + // Register default preparers preparers.register('file', filePreparer); preparers.register('github', githubPreparer); diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts index dd1152d3d5..90fdd106a1 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts @@ -231,7 +231,7 @@ describe('GitHub Publisher', () => { repoVisibility: 'internal', }); - it('creates a repo in an organisation with internal visibility', async () => { + it('creates a repo in an organisation if the organisation with private visibility', async () => { mockGithubClient.repos.createInOrg.mockResolvedValue({ data: { clone_url: 'mockclone', From bd6ae84803e44dfc0ed141889a46fbf7c8aaea11 Mon Sep 17 00:00:00 2001 From: Tim Jacomb Date: Tue, 15 Sep 2020 21:35:45 +0100 Subject: [PATCH 620/656] Update packages/create-app/templates/default-app/app-config.yaml.hbs --- packages/create-app/templates/default-app/app-config.yaml.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-app/templates/default-app/app-config.yaml.hbs b/packages/create-app/templates/default-app/app-config.yaml.hbs index 57091b3d3a..b9ed7955fb 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -37,7 +37,7 @@ backend: # $secret: # file: /ca/server.crt $secret: - env: POSTGRES_SSL_OPTIONS # see https://www.postgresql.org/docs/current/libpq-ssl.html Table 33.1. SSL Mode Descriptions + env: POSTGRES_SSL_OPTIONS # see https://www.postgresql.org/docs/current/libpq-ssl.html Table 33.1. SSL Mode Descriptions (e.g. POSTGRES_SSL_OPTIONS=require) {{/if}} proxy: From 449b5c3f1564ecfe93fd3b8c8371e8dc8dc564b1 Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Tue, 15 Sep 2020 16:38:38 -0400 Subject: [PATCH 621/656] Fix prettier errors --- .../src/scaffolder/stages/publish/github.test.ts | 2 +- .../src/scaffolder/stages/publish/github.ts | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts index 90fdd106a1..2c47fa1a2f 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts @@ -242,7 +242,7 @@ describe('GitHub Publisher', () => { type: 'Organization', }, } as OctokitResponse); - + await publisher.publish({ values: { isOrg: true, diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts index 22a46ddf1b..671c3472bc 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts @@ -67,11 +67,11 @@ export class GithubPublisher implements PublisherBase { const repoCreationPromise = user.data.type === 'Organization' ? this.client.repos.createInOrg({ - name, - org: owner, - private: this.repoVisibility !== 'public', - visibility: this.repoVisibility, - }) + name, + org: owner, + private: this.repoVisibility !== 'public', + visibility: this.repoVisibility, + }) : this.client.repos.createForAuthenticatedUser({ name }); const { data } = await repoCreationPromise; From a71b91cc44b782dff6073e066e57040a1b657596 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 14 Sep 2020 23:03:08 +0200 Subject: [PATCH 622/656] e2e-test: add retries to app serve --- packages/e2e-test/src/e2e-test.ts | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/packages/e2e-test/src/e2e-test.ts b/packages/e2e-test/src/e2e-test.ts index 5dfac68d6a..bdb7c25c5c 100644 --- a/packages/e2e-test/src/e2e-test.ts +++ b/packages/e2e-test/src/e2e-test.ts @@ -277,19 +277,28 @@ async function testAppServe(pluginName: string, appDir: string) { let successful = false; try { - const browser = new Browser(); + for (let attempts = 1; ; attempts++) { + try { + const browser = new Browser(); - await waitForPageWithText(browser, '/', 'Backstage Service Catalog'); - await waitForPageWithText( - browser, - `/${pluginName}`, - `Welcome to ${pluginName}!`, - ); + await waitForPageWithText(browser, '/', 'Backstage Service Catalog'); + await waitForPageWithText( + browser, + `/${pluginName}`, + `Welcome to ${pluginName}!`, + ); - print('Both App and Plugin loaded correctly'); - successful = true; - } catch (error) { - throw new Error(`App serve test failed, ${error}`); + print('Both App and Plugin loaded correctly'); + successful = true; + break; + } catch (error) { + if (attempts >= 5) { + throw new Error(`App serve test failed, ${error}`); + } + console.log(`App serve failed, trying again, ${error}`); + await new Promise(resolve => setTimeout(resolve, 1000)); + } + } } finally { // Kill entire process group, otherwise we'll end up with hanging serve processes killTree(startApp.pid); From 17a304703bac798c64510e72e373102a7316b954 Mon Sep 17 00:00:00 2001 From: Tim Jacomb Date: Wed, 16 Sep 2020 07:13:06 +0100 Subject: [PATCH 623/656] Review feedback --- packages/create-app/templates/default-app/app-config.yaml.hbs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/create-app/templates/default-app/app-config.yaml.hbs b/packages/create-app/templates/default-app/app-config.yaml.hbs index b9ed7955fb..870b071701 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -32,12 +32,10 @@ backend: $secret: env: POSTGRES_PASSWORD # https://node-postgres.com/features/ssl - ssl: + ssl: prefer # see https://www.postgresql.org/docs/current/libpq-ssl.html Table 33.1. SSL Mode Descriptions (e.g. require) #ca: # if you have a CA file and want to verify it you can uncomment this section # $secret: # file: /ca/server.crt - $secret: - env: POSTGRES_SSL_OPTIONS # see https://www.postgresql.org/docs/current/libpq-ssl.html Table 33.1. SSL Mode Descriptions (e.g. POSTGRES_SSL_OPTIONS=require) {{/if}} proxy: From 1928c46246a845a33ffa64b838c5553cc24678d6 Mon Sep 17 00:00:00 2001 From: Tim Jacomb Date: Wed, 16 Sep 2020 07:35:07 +0100 Subject: [PATCH 624/656] Try disable instead --- packages/create-app/templates/default-app/app-config.yaml.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-app/templates/default-app/app-config.yaml.hbs b/packages/create-app/templates/default-app/app-config.yaml.hbs index 870b071701..2f2472260d 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -32,7 +32,7 @@ backend: $secret: env: POSTGRES_PASSWORD # https://node-postgres.com/features/ssl - ssl: prefer # see https://www.postgresql.org/docs/current/libpq-ssl.html Table 33.1. SSL Mode Descriptions (e.g. require) + ssl: disable # see https://www.postgresql.org/docs/current/libpq-ssl.html Table 33.1. SSL Mode Descriptions (e.g. require) #ca: # if you have a CA file and want to verify it you can uncomment this section # $secret: # file: /ca/server.crt From 77a4102a1a6701377e9d2a46371c085b6f459288 Mon Sep 17 00:00:00 2001 From: Tim Jacomb Date: Wed, 16 Sep 2020 08:00:14 +0100 Subject: [PATCH 625/656] Comment out by default --- packages/create-app/templates/default-app/app-config.yaml.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-app/templates/default-app/app-config.yaml.hbs b/packages/create-app/templates/default-app/app-config.yaml.hbs index 2f2472260d..617be3052a 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -32,7 +32,7 @@ backend: $secret: env: POSTGRES_PASSWORD # https://node-postgres.com/features/ssl - ssl: disable # see https://www.postgresql.org/docs/current/libpq-ssl.html Table 33.1. SSL Mode Descriptions (e.g. require) + #ssl: require # see https://www.postgresql.org/docs/current/libpq-ssl.html Table 33.1. SSL Mode Descriptions (e.g. require) #ca: # if you have a CA file and want to verify it you can uncomment this section # $secret: # file: /ca/server.crt From 41940ca8859823f628898e2789a37497c4ddb14c Mon Sep 17 00:00:00 2001 From: Tim Jacomb Date: Wed, 16 Sep 2020 08:36:55 +0100 Subject: [PATCH 626/656] Rerun CI From ef9117f50a7f1c9f5151aa642a0d097c3bd3dfa6 Mon Sep 17 00:00:00 2001 From: Iain Billett Date: Tue, 15 Sep 2020 18:06:44 +0100 Subject: [PATCH 627/656] Validate template values on calls to the scaffolder API Calls to the scaffolder API should use the schema from the template entity to validate input values. --- plugins/scaffolder-backend/package.json | 1 + .../src/service/router.test.ts | 94 +++++++++++++++++++ .../scaffolder-backend/src/service/router.ts | 7 ++ yarn.lock | 5 + 4 files changed, 107 insertions(+) create mode 100644 plugins/scaffolder-backend/src/service/router.test.ts diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 2283dd5d05..b6f927bc61 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -36,6 +36,7 @@ "git-url-parse": "^11.1.2", "globby": "^11.0.0", "helmet": "^4.0.0", + "jsonschema": "^1.2.6", "morgan": "^1.10.0", "nodegit": "0.26.5", "uuid": "^8.2.0", diff --git a/plugins/scaffolder-backend/src/service/router.test.ts b/plugins/scaffolder-backend/src/service/router.test.ts new file mode 100644 index 0000000000..0349530e45 --- /dev/null +++ b/plugins/scaffolder-backend/src/service/router.test.ts @@ -0,0 +1,94 @@ +/* + * Copyright 2020 Spotify AB + * + * 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 { getVoidLogger } from '@backstage/backend-common'; +import express from 'express'; +import request from 'supertest'; +import { createRouter } from './router'; +import { Templaters, Preparers, PublisherBase } from '../scaffolder'; +import Docker from 'dockerode'; + +jest.mock('dockerode'); + +describe('createRouter', () => { + let app: express.Express; + const publisher: jest.Mocked = { publish: jest.fn() }; + + beforeAll(async () => { + const router = await createRouter({ + logger: getVoidLogger(), + preparers: new Preparers(), + templaters: new Templaters(), + publisher: publisher, + dockerClient: new Docker(), + }); + app = express().use(router); + }); + + beforeEach(() => { + jest.resetAllMocks(); + }); + + describe('POST /v1/jobs', () => { + const template = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Template', + metadata: { + description: 'Create a new CRA website project', + name: 'create-react-app-template', + tags: ['experimental', 'react', 'cra'], + title: 'Create React App Template', + }, + spec: { + owner: 'web@example.com', + path: '.', + schema: { + type: 'string', + properties: { + component_id: { + description: 'Unique name of the component', + title: 'Name', + type: 'string', + }, + description: { + description: 'Description of the component', + title: 'Description', + type: 'string', + }, + use_typescript: { + default: true, + description: 'Include typescript', + title: 'Use Typescript', + type: 'boolean', + }, + }, + required: ['component_id', 'use_typescript'], + }, + templater: 'cra', + type: 'website', + }, + }; + + it('rejects template values which do not match the template schema definition', async () => { + const response = await request(app).post('/v1/jobs').send({ + template, + values: {}, + }); + + expect(response.status).toEqual(400); + }); + }); +}); diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 1b96158fa4..8a778f31b4 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -28,6 +28,7 @@ import { TemplaterBuilder, PublisherBase, } from '../scaffolder'; +import {validate, ValidatorResult} from 'jsonschema'; export interface RouterOptions { preparers: PreparerBuilder; @@ -84,6 +85,12 @@ export async function createRouter( const values: RequiredTemplateValues & Record = req.body.values; + const validationResult: ValidatorResult = validate(values, template.spec.schema); + if (!validationResult.valid) { + res.status(400).json({ errors: validationResult.errors }); + return; + } + const job = jobProcessor.create({ entity: template, values, diff --git a/yarn.lock b/yarn.lock index 38f5d6c799..3da4f288c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13288,6 +13288,11 @@ jsonpointer@^4.0.1: resolved "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk= +jsonschema@^1.2.6: + version "1.2.6" + resolved "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.6.tgz#52b0a8e9dc06bbae7295249d03e4b9faee8a0c0b" + integrity sha512-SqhURKZG07JyKKeo/ir24QnS4/BV7a6gQy93bUSe4lUdNp0QNpIz2c9elWJQ9dpc5cQYY6cvCzgRwy0MQCLyqA== + jspdf-autotable@3.5.3: version "3.5.3" resolved "https://registry.npmjs.org/jspdf-autotable/-/jspdf-autotable-3.5.3.tgz#2f73adb07f340e7dbf22950e3e6c8bf853991479" From cf96d90e6285aabc54089840bbb1d983dbabbb9c Mon Sep 17 00:00:00 2001 From: Iain Billett Date: Tue, 15 Sep 2020 20:14:47 +0100 Subject: [PATCH 628/656] Fix formatting --- plugins/scaffolder-backend/src/service/router.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 8a778f31b4..5c67612176 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -28,7 +28,7 @@ import { TemplaterBuilder, PublisherBase, } from '../scaffolder'; -import {validate, ValidatorResult} from 'jsonschema'; +import { validate, ValidatorResult } from 'jsonschema'; export interface RouterOptions { preparers: PreparerBuilder; @@ -85,7 +85,10 @@ export async function createRouter( const values: RequiredTemplateValues & Record = req.body.values; - const validationResult: ValidatorResult = validate(values, template.spec.schema); + const validationResult: ValidatorResult = validate( + values, + template.spec.schema, + ); if (!validationResult.valid) { res.status(400).json({ errors: validationResult.errors }); return; From f0143360b7700f5da69ef07a71df66585834a824 Mon Sep 17 00:00:00 2001 From: Iain Billett Date: Wed, 16 Sep 2020 09:02:42 +0100 Subject: [PATCH 629/656] Fix test schema --- plugins/scaffolder-backend/src/service/router.test.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/service/router.test.ts b/plugins/scaffolder-backend/src/service/router.test.ts index 0349530e45..8fd9bca02a 100644 --- a/plugins/scaffolder-backend/src/service/router.test.ts +++ b/plugins/scaffolder-backend/src/service/router.test.ts @@ -56,7 +56,6 @@ describe('createRouter', () => { owner: 'web@example.com', path: '.', schema: { - type: 'string', properties: { component_id: { description: 'Unique name of the component', From 2b555ca1d943338fa9204e3ec61d9a7f6f848a3e Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Wed, 16 Sep 2020 11:18:48 +0200 Subject: [PATCH 630/656] TechDocs: fix pymdown emoji configs (#2482) * fix pymdown emoji configs * Added changelog, bumped version Co-authored-by: Sebastian Qvarfordt --- packages/techdocs-container/mock-docs/docs/index.md | 2 ++ packages/techdocs-container/techdocs-core/README.md | 8 ++++++++ packages/techdocs-container/techdocs-core/setup.py | 2 +- packages/techdocs-container/techdocs-core/src/core.py | 5 ++--- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/techdocs-container/mock-docs/docs/index.md b/packages/techdocs-container/mock-docs/docs/index.md index 77c64582de..2586b86cfb 100644 --- a/packages/techdocs-container/mock-docs/docs/index.md +++ b/packages/techdocs-container/mock-docs/docs/index.md @@ -59,3 +59,5 @@ digraph G { Goofy <-- MickeyMouse: responds @enduml ``` + +:bulb: diff --git a/packages/techdocs-container/techdocs-core/README.md b/packages/techdocs-container/techdocs-core/README.md index 94123f52ee..36f1437a54 100644 --- a/packages/techdocs-container/techdocs-core/README.md +++ b/packages/techdocs-container/techdocs-core/README.md @@ -50,6 +50,14 @@ python -m black src/ ## Changelog +### 0.0.7 + +- Fix an issue with configuration of emoji support + +### 0.0.6 + +- Further adjustments to versions to find ones that are compatible + ### 0.0.5 - Downgrade some versions of markdown extensions to versions that are more stable diff --git a/packages/techdocs-container/techdocs-core/setup.py b/packages/techdocs-container/techdocs-core/setup.py index 4b80fe2a6f..3e3fa47caa 100644 --- a/packages/techdocs-container/techdocs-core/setup.py +++ b/packages/techdocs-container/techdocs-core/setup.py @@ -18,7 +18,7 @@ from setuptools import setup, find_packages setup( name='mkdocs-techdocs-core', - version='0.0.6', + version='0.0.7', description='A Mkdocs package that contains TechDocs defaults', long_description='', keywords='mkdocs', diff --git a/packages/techdocs-container/techdocs-core/src/core.py b/packages/techdocs-container/techdocs-core/src/core.py index d021a69486..69e39d401b 100644 --- a/packages/techdocs-container/techdocs-core/src/core.py +++ b/packages/techdocs-container/techdocs-core/src/core.py @@ -18,6 +18,7 @@ from mkdocs.plugins import BasePlugin, PluginCollection from mkdocs.theme import Theme from mkdocs.contrib.search import SearchPlugin from mkdocs_monorepo_plugin.plugin import MonorepoPlugin +from pymdownx.emoji import to_svg import tempfile import os @@ -76,9 +77,7 @@ class TechDocsCore(BasePlugin): config["markdown_extensions"].append("pymdownx.critic") config["markdown_extensions"].append("pymdownx.details") config["markdown_extensions"].append("pymdownx.emoji") - config["mdx_configs"]["pymdownx.emoji"] = { - "emoji_generator": "!!python/name:pymdownx.emoji.to_svg", - } + config["mdx_configs"]["pymdownx.emoji"] = {"emoji_generator": to_svg} config["markdown_extensions"].append("pymdownx.inlinehilite") config["markdown_extensions"].append("pymdownx.magiclink") config["markdown_extensions"].append("pymdownx.mark") From b9dfb3dfd5caab293ca053e4559a6977493efa84 Mon Sep 17 00:00:00 2001 From: Sharvilak Date: Wed, 16 Sep 2020 15:01:15 +0530 Subject: [PATCH 631/656] storybook config: fix for babel-loader error (#2483) Co-authored-by: sharvilak --- packages/storybook/.storybook/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/storybook/.storybook/main.js b/packages/storybook/.storybook/main.js index 2ee58a8c4f..c83bb221be 100644 --- a/packages/storybook/.storybook/main.js +++ b/packages/storybook/.storybook/main.js @@ -22,7 +22,7 @@ module.exports = { const [jsLoader] = config.module.rules.splice(0, 1); if (jsLoader.use[0].loader !== 'babel-loader') { throw new Error( - `Unexpected loader removed from storybook config, ${jsonLoader.use[0].loader}`, + `Unexpected loader removed from storybook config, ${jsLoader.use[0].loader}`, ); } From 3206acb7843a4ef078ad48b51f4d7f598292216a Mon Sep 17 00:00:00 2001 From: Sebastian Qvarfordt Date: Wed, 16 Sep 2020 11:36:15 +0200 Subject: [PATCH 632/656] Bumped mkdocs-techdocs-core version in techdocs-container (#2484) --- packages/techdocs-container/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/techdocs-container/Dockerfile b/packages/techdocs-container/Dockerfile index a5017cd2cd..e910935baf 100644 --- a/packages/techdocs-container/Dockerfile +++ b/packages/techdocs-container/Dockerfile @@ -18,7 +18,7 @@ FROM python:3.8-alpine RUN apk update && apk --no-cache add gcc musl-dev openjdk11-jdk curl graphviz ttf-dejavu fontconfig RUN curl -L http://sourceforge.net/projects/plantuml/files/plantuml.1.2020.16.jar/download > /opt/plantuml.jar -RUN pip install --upgrade pip && pip install mkdocs-techdocs-core==0.0.6 +RUN pip install --upgrade pip && pip install mkdocs-techdocs-core==0.0.7 # Create script to call plantuml.jar from a location in path From b8acf90f31b7b85a85128874b9af4c7716562e13 Mon Sep 17 00:00:00 2001 From: Raghunandan Date: Wed, 16 Sep 2020 12:25:25 +0200 Subject: [PATCH 633/656] Update favicon to latest. Add Backstage logo to sidebar in create-app template --- .../app/public/android-chrome-192x192.png | Bin 4352 -> 19209 bytes .../packages/app/public/apple-touch-icon.png | Bin 4311 -> 18045 bytes .../packages/app/public/favicon-16x16.png | Bin 890 -> 883 bytes .../packages/app/public/favicon-32x32.png | Bin 1296 -> 1686 bytes .../packages/app/public/favicon.ico | Bin 15086 -> 15086 bytes .../default-app/packages/app/src/LogoFull.tsx | 46 +++++++++++++++++ .../default-app/packages/app/src/LogoIcon.tsx | 47 ++++++++++++++++++ .../default-app/packages/app/src/sidebar.tsx | 42 +++++++++++++++- 8 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 packages/create-app/templates/default-app/packages/app/src/LogoFull.tsx create mode 100644 packages/create-app/templates/default-app/packages/app/src/LogoIcon.tsx diff --git a/packages/create-app/templates/default-app/packages/app/public/android-chrome-192x192.png b/packages/create-app/templates/default-app/packages/app/public/android-chrome-192x192.png index 3d56edbb0dce7b1c12f644090e3522d9b992fd1d..4660f988c1a3031fa3d959da5e7bcfc34cdb8ba0 100644 GIT binary patch literal 19209 zcmb@Oga{ zc>Q342>woKCig)Z2F9Bn1|~2R2IdZYDsTq|#+?HOX73XWj9>-~41x2v7WMbw3rMDl zvQjY5FTe7kr77SuD9&9sr6^c+w1yTkxv;5wUH-Fl=P8M{KIOY<8DCpYr5Y?4piSk8^+#xM6+ew(HzkPXH zu~aUdun*@Y7x>@aHLLU9P0-fndg7Wz`HjOe5F%s!?F$93%{})1(n9HR zBaV=URXEH68cG@cl}&G8eUYLVe1D-z*Z7h|PjthS!*Y-Sdw736u2jwsV<`@O8u@II zsLiO`clK5FX*&5|-iz)wfn6Yqt*Iq##i8chovQToh(I`X=17D! zTeVc8)bpsimOY)tSKp3r@eAICwG${YaYv)d@R&)t3NsISQYEDm`bP3rerB`00jA(e zWdk9Q9VL4Dl`p(Fj%`TL0m89OS@0RLnx!9 z(1xW5@Mo%C{I+%+3n@vDll1oQBu6i}br?c1jWe0bEHMCcr2@c|vp+@eA;$m7_`d8^{ zE!F~8CG?egnHi>)k6##_U{x#y^;F3UiC!>aksPQ#**Yhc! zGu=2c|MjOWJOoWW%YO#XCR>sL-Q%XO88|hr_EhD?dh`H57XqZLJ|&(v#7@{b}?uVbR<&1QJ8d$-5HR}CyKQ4GKniixh(v1R(L z=Jks_4+V-yVj|!+WwVWT{Ayu%c30xh4yMc>L>>0I)~K~cR54&tm*nDG0Z2 z)U6n%_xUvbv!wB^L$T9FO6CkyZV7;?hx-OrBduzGX;p3b%$Y*R!G@GrBn+%XDjqfW zhs^Ua!#BbXMx6rwP0PQ+OLNU8JB(yJTKuOtx=LyG%F2t}1{A=BP*SrIDVheC!0tud zn@Z`U61kQXH81lVEVy=&=7%9;!f5JI*~%fgQb4mo@qv54jOXm`R(n+aY`Xut8hmG; zLl<&ktYHZ}=s%5mjsqir~zQvzX!20Wqn zrrNfsKgKS1DN^OWOJif*cFnWdJe)9_~vQ#h`w!s<53nbZ;>te6p@w%9~*45C`sWn*A9F6?-!wE$mQ!J~M=xYAB zE$Tuck8=jcY=SF=kt?9DlK z8jetdvX4;mo@wci=vc5(tohcnfKXNUuMMhQG?m>i`{71f7U91GtDp0~_B4sg%_pZaOl@9^ zhEP(rE=}3b1+S3Gm_E&ksD9GYijq?-ffi=9un7f2j^0THc7t*dp3@%qAI37?PlqT< zd7i`h(e*|0eABHKoX=@Q?$68V{T6Xd{hp4AV-Z_C-~XPyy<^LWS;y&J0Yk@gk`%0!BFlcRFMYnQQL4rI z=Q{ZuLC&(fZ#g%sLp8yk(j=GXbs3L;55aPP&wV($Lg#xrmxjzbgj0GiUlRn=PBi_BO3T7iX%_(zG_#33iIM8Tc*o3TWAl0rNMeg@vMyr9Hb<(={a;MQwz_> zj9XGQGiIE4zE4d~?5o?s{aI_i02Mk`r=0=U)nH79N8fNpWzc-uMIhy;_!v6B5w~^O ze`9*HVm=m^s$DsHmd%I{jq>w+tL|y?o zi;A!wK@B?cY9qiEPs8z%;*F)N7-WQ^EuIwzpG^AKrH=Eq;xpxS^7)v-P+9H!F-goD z?sAAWPUV$f4JI9mnfa!esKo5!n+voz2%zsdadDmoR9mbM&lYfJ!qu_uc3)~r)A3o+ zx>B^qq&%Nu4y5$ib-XT&l{==Q+`B+128~h5kOE`UUkYK=_Z<=L z$ex&~L18tee-RRm)Qc`lJ@KZ$vNV7*8qdI-3)i0RqIUhr3L0oQx6y;p{J*>~_8~XZ zP-!Ep-5bs#IA%(XC3ZGnRO}xZ#Bgr&X%D$II)mq9}ev1va{}g#GNiD zG@biM*QluK*K`n>-c0_c#65~OuU9dQTe;I99& zGpM}`o7KCY4OnxWMR(Ev!^~({{|)H8N?kt)~TSp^d>Qnmbr)O zbiL=P^A!z42MN@|$OAX^CWlvBiaPMt{*T)*k9U4YL*)bJ!+BA>EIEy5%z}F)57%6u z%$QiD(EgZ?NP3zM%e~$~+q1W^cwEi<4y_fG3Zx(bJ@7w_)t)hpf3F-3)^}>zPT%E3 zs7O@9XBYh!2J~GSsA7t~tXMWoK_rt9=0b7RhYV7#f5T#2JG`FTSMji!?;wSrlBU8n%5qtZolst`M(7d6LH#OKliodTC=rUfl4kMg-2D9<^81&zAe= zP7nDGQLEJ*&0mv`(?^cb5fw1E63ub$P)-X7A3J=QB^}dsJq3=91 zvBweBd(NPfsbc>y>Ev-S(AT)Om1HrcUuFtV5At*SBxV*l8F-oz!Bl~O_K@P!4LA{2 zT&XHrw_9k!xRE-JW`*cOD02RMTCB;_#xFAiYGgP_;Y4k9MzZuD7oMgU#iil)9BZRI zu3kKvrC|C*_>qsTn!WYo)1zE|UIjC1FfEp-C9a0!EgOzgTlh(_{{`0-J?6~&Qyx&z zUYC_U^@U^N;NY~CvO_~h8_idWJi%*eHEyJ1Ir0gH=K1*@9FMmK_in|~J}>+s^52%< z>F&OFzhjZZ{?X_$m|k77(>+?Q--H4xE~Kfv2Lno^sf8#lj`#+j+vUIc*mwVU!gKtS zXMQjG=n~wZq1p#rl4*K?NYf5&J#}1{#X}$wWx;@;S+y)T*=~9eH{6f@Dw@?( z*}VEX!Fv)UVq0f3J%!t6E8>JfEmrp?6!y z6~EMVIcEtRF)iE)D^)WvN@MZza62z1Pbj3Z`(}UzNtQ=AP2#AFjnfa^^zD5(gX_{r z;l;i%>zS5#1FKq^^S|>g#HQlMua&vj(#d!Tqnr#)i8afbJc?8?y_vkqZ$hje0^OJA zcgx2`_Pe(Ds~#OQ^Ar3fkioeM_TK50Uq7xz#;+vdV{y`8Ace^dpYUDDTT=RCr~K#B zSpVCg0=HV^h=fN=3oG!Z?IY@s*5HED5lJib*E@RXUVQ2o;bQGExBlab=m~_5Nx@#6%Cv>AQn0;{Ykqhr5LR$CxjIhxUHAY}&#Po`U;(k0}PJ7N)Xs zp8$kNOytiR372W?I75#w+0IuB&3%V(QbH?h=*(AlbWgK=GZ)AZu$)H5+Hxpj%TIuQ zvw7UYnP(h8l3Ky9R_Fg(#ttDV(?%|6hV5aesdCwMGWW64d&kM%=horyW8vav!T|Y5 zTi?<6RFT-mh%j#ZsYo=-yQzG5iqK1>WqZYvWf$%eMmr!Qy&v(@mYyilgks=k&Ym+) zlympcvTbgbjl%Q1uy1FLR6dT#IU#W(NB$jtKc8(dcR!$G?{|upb)8O$To|CGV-fcI z)N9D=1ReWzZ{gqqk>q7>)jPir$CP3xU=d=uVVk|}h%9e<#Fvzk>SSn3t(d9Xj2E4( zw+c{Gc_P1Nk^dqnG=F)-p!s8^v$^6e-M_+f4jH7YhrZ3+HjC^Ld=iU4+8Q@^_nK9U z#k-P}*I5JZnQ+GANBH#iw3S`XC5nzazh3 z3YPj;?_wDrb6KdUj+WYc@};W7dMz!DCO-x|mKk-ZNz4rH;)Zx4?epd}kw2YsztzO> zY%-@4z3FwgFzgcgtJalA-F-Sz+6qyGU6M{K1Fp3aJI3ZU1vezgPVc8jWB<`wAMzro z;7zD5Y+M|F1=sW2>+39p=*8|4Ptih`S@O!vU0v)AP8q%Nu&`T_^#K)vAMq-r%ER?q z)1O$FiU7d?t?FHtej*h6;K*!8@w-eheUj^`SL}ZWaI6DS5&c3^@`X2xbiRHYhvE%) zl9-jAS7oUd| z9n78|qAL;7LYC$S%ck|w=UyKuo-wGoP zlfS$bhw<41(9MU=ZzN;wZCP;!dgs3<-DY^Lof7jX5yU?oTN!gd45bWY@SnfZ`X0@i zB51}{#QrXOcobT~cKj-W8nUO_09ip{+oOGhwI*d*oWw(w5Ia99Pn;JaK!rbMZyJAr zge{fiXY4!NsIzj#qUkq_lE%UK&N2dW=b%_SDmuxMjmFBQp%pgwElH{4{Mz2@iFdE* zSi<7d>%jnAWH=QA5@`xQ@rBp{C@PzjJT;K%^Utft)|dZ{dx~tw*R3_;r zWB;_Yz!b85=OQq#PbR5^TS)800395!Cl01nZ}6b0ptuzpnc;hGkb;s+HY3Wq{t-){ z#H2+~gN4qAj+g_XnH1aGd5Ee7#sKr@2i6azD)}du*Yl?%0XvmdvOBr3w%&Q z0%%KGe=NnyYoJ#yPN>Xtc(NVdb{swySmFtotx-f$q=Zl{#d30CONJs2m`i+>a$x&_ zt9fj+_Uc$M83?-=i`Nvtv?mO4ia9QZ{zFdwotw~(9Q`P!b^r@#$ozuLd?DVP0!!qO zTo3kYhsu_JUe0ccTy91}T?3lI{3#owDES6`>qqmU9C1x;?`nKBzoP&#FMS(^nNFc3X3hzki9}#@8$S6+N1$Bd3`D5@v0}6 zk`WnZA-%kLd5Yku#C|{lH$nD%ZdbPSbH}KPH*@B>mC3MNQA6cf-&;n}cs0CKASWBh zd!bCGSYlROpa1UnWHl5~TASr$sw~8IDj_^jutkB1co5*lgMzvbc!&VtoRha^177?Mtj>6zCycUVb#JTA*)u}xWUloM_+cU_6v+&;{ZAn zPIZQGB8O^nweL+eIgql9!lD|>5>G4{L<7ArOC3TO1a(m1uKcdhR#$vWXHXj!H!)OI z%&*`BsNDw+9q*(Hr>zesa7cyBsR6rDPwSdk@oeCcUKB_i$7(4s%p!} zox2@d2084UOEi0*UA9K(8M=yrUBZA9kmfUw0o41&^JQSnMLXne5I?^{Lxlrt=EE;t zsgNMh!+5vy8Si4+U#~s{Mr-Z&-%o!x&kMjW@vmHIH@lxAN{J%jj)vy>4$Kg&7TX*L zJ^jc0W~@1^M+z%5ZJ|^eRPi@SSWoHUFkeW~aaE7|G!tpfOJkzHSIk{hrJ)AB2=^QbBJ1xIo<-&1E6Bs5) zE2GVQ5tpWQ`>Eo8*a;f4o9Z^IFy^1PuHPBhXYuuWT9-fo%CguNZc65|2!38!@({96 z)Gp}%tTqKNnTRPSq^8c<*TZ$%TQTrWC?Aw6EUBZ@}gZbe?dlNKjbrX?fS~*JuI0 z0A>CU7Xh{{A{p?>muvf%Qq5>sJTH2;GL_F}p8Tuxq)x?TkgemFAZ@qtDytkenox9^ zQHMZTFRvVO{xANdjq}eL&%dE>1T5II^ZZg9WJT;N4)r*QMeD)n_OkbVg!V}*a$1oBe+l1rV9^N_Mt8QL$o0=iJ&~UJC zNY$IhEnp|OvLqS4k179Hm-IrUSJgu+pwPbG*Z+M4)m7d35pVP3mmf`7pJx4-$T6fT z{NtfD0%f@WiA%#!@Yspa(D-{0Go_$1`kupkv|Sc-G*vo%;5!uV1ReJKjR700LN3=z zzz3o^cMB!;q}bLwt_dq;i~ZM5KmScu2di{dK$ye(kSWALc(*T8EchfmB|{DKWAMXl-eA_E-*t}8k+7|&VM`N7^~v~bO{Ko2oPoB4?Fgn z-h9tEv{6}?+4I+{PE>NWqE9}rk$B72lLlJ%Ot;_r&QcY`s+#Dweoq`8ZC4oZ{KJ#* z;*}(ZO!9oC*-C?J_l?w_Gd&J?$SbT zA`C-c1Xxd5hSf)Zs{4)`zA}7lwJQZL2viVf+aBshunsAQiR8+Nv`mr@#Pt`dCMP!55>F z$rUtJj&t%Z2iSLOF7M*!ZE7Km$jG#@!xp`U9Sp}h>7OEhA{;ERMp6Tr9!loq>%8+8 zuL^c0w)II2j8&{rD8Mp&l3DkYX9WD*N15yozQ{zky{;B6HTNViTyl601;qT;M)Ktt z5fEX;Xo4!Lat3)xUiPSlIYJVV%~RoFQP(Vw={7F*d7r71eMv(hs#e-#BRQl`a^nd4 zmE9<)by8(&ta2skAaZu<2~|~|)^&w78MU{NnJWh^u31R1p}9H1Tn!ITOB+Dn9jxyD zjw`N`RTu7ol(TzjU2$xirG|*DYvCYh&F+}b2QAQ?`$dl5NQH>EUW*O>q(d=~NBnc- zp8?Fti;Rbo3`WbQOp}i>N>ooXm zH9SZOC>2<6KT|b7IoVzXG+GMJsZ3|ZX;!ZSg$HNnB=7NcKRQ_oEbDOA49VU~8>wRJ zVLJ0xocUde%P-#Hm@A@BL(vdwq6;v?$mel}J?#Gg8_MxhzkD61ROt1eikB+O=D^zV zd`gqo1z}zrh>E?t)sv$)qa+wtQ0I3r8z95@(C(|;G*E3C8Tsihr-KIA(Hpi7X7_f- zUa!9*`O}c%`oQc6A|4&l9Sa$f`t*c>F2QbcS_2ijIQ`K!e6KinHIa?$cVXON)Ds}= zWG{Shk<#CB^m*O2uJx!$6rMRMKe(cb3^>@z()ab<#b?aG$ZQrm^k<6|Sqc_l$G5X2 z=A7@28YWi(e%T!d4g_*xw|?I%?$WAvpB_*Ps&Z@YVLodt^B>URx4!Y`{rVJlkWDn|^7n2c;ue<=^TJ1$Q66xLB%1WBU!g zUG5j+`Lzq}fbxtDvnVCS0*^l)&mH?Lu)bz{;5M%N8DiKrabpqA9v zZx!hSFb{G<&3ULZW3%`ZXm8PA;>(RYJU=)ETpG?iZ5cNodUSlynAp#FXx-=Rk)wu~0LQrWu&Kqu2Y|FpcYx?W`WmHQCoXnx|1&CWch*t+ z{fxta%NF*SQ!}Bj@i1NZ~dqoj;j+wB1rwP&~f!5q(rJQ1WH^blgsFV=CfGVN{m0?{*(s z0(~`i5-_^qc>E^%KDw!92NaPEKCM%$w0IW0-O0?r%nt{ zcg>L%du{BBsmTT1Kkoad#YhrvNGT=y+|}UXSKlU9M!pUaggjzREp-bbaB(>PKD%i|;hVT7!?1|i=V$;0i#O0NeSph&MG4BM^9KM%ft zDSAVvF7L9kczMeL@bJ~lF|O`p0Lh&r$+oU2D=fDb1;gMZSoT*7-sb6w`>>R#!XgHk z(#iCj8X!FJM!*I=d3?-_V#}_u=3mj(l8vawx%WZ*tu5yj5^h7335F#oHx;~~ycW$SRc;x#u` zZgM1`zZFo)KidB-`)kyMn0aWWf#A%}nq>cfJ0AgFz)>`XgHTg^4$uE$p0;|k z*4i|HBA6LLu#H$#dTKY4j5oOQmYXxw;3r81l&E#VlsOj_; z&9A84YG`{>1OR8G2_HAo+L*p6dwRRF;ryZLdtxmei%VkzNOeRq4K9c#83s^V_pn6& zk-k0SePO^aXfqz)AR*Xo!1~h=&{Mr#qMzg=Cs+In`vJ<^?$lZJtoj|iP3hod+dDlI zwEo#f^ymmA$Uj zjGM&@P8n~ENd#D61?@jSkv1lW_Prhq;{8vyle$DNFv(}7D%iYhDRtLn{ z+`$ia{sUkz8&}cv!NK=>?Y!4``02c^TK(Y=`+d%pP^wJ z%6i0kE1fgN@G6=DM_e4n7-#Fnn3B?0I2J7N=}u{kW=1s*NO-YytqdhGo>h$r69t^; zH=LTIi%~WnNOmYl3142i{3(CT{N04XlmnC0X}>Vbcw35$6_@F-5`)(V*m4a9Y*E4N zldrTF_;viV$9|-F2=H$nIcnHXyGf}rl{U*q}PtAG~2QPfj287zDf$@y9>@lzRORJg#ap1!yd`sWrF z!i87!wUp7o3ozM^dhywoXR+XUfgC&bnlBVVO)*_sQ zWsqVl_|p2*Z8h{xbXC#F>}%>prUr;^z5h_EEMbK%WS{YG@?U`0Aw}8pXKSa;C+i^e z_V}Wn-UWu-l9M=$hZN&QNy1G3zTsHt8Fl-AyXaTGXIg5Ql#G18L@pE?D3l_ArV=uY(8aluZ9EX7UD&vMwqMa%sxzPPiOvM!-r)UeT0jW_#r9*)yr`O}T~xO6 zqZz)B2605`?h)ZRg~6S&s=oP!5&`!9Gm|<7xZu?bMJ{3vsZcwv-AcFh&oar0>558M z&a5b>a!7tU-n9hRjn|Xay56(hbJ_ZBPJ(#Qo?tr8__TGdXToa%gtG-&k175eLkhut z;+7Grw)=v%3U{FEn4Jmov{J-^~1Kxg2nw&%imV3`NLiim4=oh`bg5`peX~X0dj7)s(Ruy(rC@wl zF9wM&n@ti3phxj4ntxogviI3?0J8jP0S2J(sxs3{GgbAoN3PygXFMWTA9a$y!ede7 zX+4$qPyLB0(5Ji#{u_CEIqX~&q1M&suVA2UfCJOTp{qmS-ZZCpI(*$YvHaB7P>9Bn za984yGDIDkx1pFh_<0qA11;zSJm0)0B;b2dA7rLNNH_sts|`SV)l*Zpj3|)S=j4WRUlg!kUL6?1d@nf#~126^yIuSv4Tlp2=BvNcT?S1C&&ROK|&sUPML-DbO_gR(Y#k{>c zu(9`BL%Z_7YFK@qA1#&AY2gtzjx@Ev{9gs@;z(_c=(-UdN__boH1-C zSb$W06geM4M3t6Cheuunb3Z!)uy;OIIk-*nj(yG#1sTJ#-E-wOv++hDDi>hdlFeA2)J2?Qw<_E-a{N{1|t!2KQ|-){Jb z#q?x}0wy)cVg!o+pT77#{cnvklDGwi-?R1oMc>mUCH>3&bs-ecx1%`Pm;BZFOOt?n zq4zSqw(x}~;PB!}cL(u*8N~Q?lh+5n`QXlj#2yHAXR$@lV!uS11u8x1Qnoqb%qJND zvBIDu8q-#n9w^)bj#6}VG@S^#WOI)}wlnDp@`^c((eyq5>!#B*0i{5&S2H)Vkk4j! z6T0?<4Yl2CQ-4T#bdpNw?&%F^mopo051Gn;Mb_@F6YAYfRK%NH99$C%U8gQtIunh( z>lp=_<1%55s);2U+_<`fBU$SuJzUL#glF;)8icb%(9JUMPjW=R?Vao4XwTNZcpHGr zf*F|<8(-dA*ru+83jk@kOfFdU+17Sgec1REkY%ZPA=b+uc0}Kvh^Jc6h6H7(cN2LJ zz6WP7=)HfBu{Ui~s3}~bEPto~J(t+y!16huW22K_5oGA!SEk0g%hBUJU+dS73L938 zoW+*|&|SScM9^_(d@#%=tYfA%y-8qQuA=@HhzihYu!MaX2XK0m-ZSN89IO#mVHw4x ze*U_M@4QG>>HGIBm_+>59DIG2tN?3CBXYSaXTACJNJvd{M`a+Qv>G@^C$>~3m&}3~KNZ#6^m-xt zF#3elV)h19{1StK8TdqLc60$_{)hSqUFaool=jc4sNH#X%?@4$jR7R7?u|(DB_@yj z4!+z=UiqD}kxje%CuL!@r|5~}a>~eHg6z^k8P@Nucpx9}v6!NO!3a!XIV9oW;{6uU z`i~t4pEqiRz<6q1UH%d`07(?!rxt&=bEtaKG*hK34K7QO>!;{$HZ~qi)YvZIk09gn z0IqY5DVniSK!vt|$Cwp(_RVjexqYMr8w~l7iR-4!(S)7vO}h8LMO#_*f^o$qVRj(q zsG5zH(@1T{RcK|Rz7CyBnYc^NbOSi&KB`>mQb`uXo<{{cqIs^sas@!w!y*=)iS_jI zJ^mO`+)g(eVbwxG2Gx5~=zKBJsCVAHnde{I<4zm99uvDBFjgKo=l4fz(>rI_F|LHW zx%@{naN9FV=s&}hfwPVwWYlik=;YXz0|G+m0%2MfVRK7K->#2d>%*UljZz`N&Tm=n zD>~HznsYZ@`ztn|8ithBp#57xDcg>LLtvp=oeN8Lu2&fN=RSP3JL)9P>}Kp8Kd)&e zeHP1VgR6?aB_F4~SjAJvb8!_7WNHc4Nh`}ZnwKkmRC$N{g08fZ%Z@~ZW}39}h+eTb z^ET!qIY9!PDmbHLyF{9)m#V^}cOAm6a{-gmf&WlqqR=B@+9iL-sdn_wq_1>sxFJ1m zMtq{~r1DQ)wuApcN##^8di4A&V$X==q>F^-Xu)T0A+VXVh_U$y_3gkAG)?%1z6CHh z$u-A8KwUl$BV}FV*)d5a9OR6db{>9hnZ=Dvjsztd`1`;DRoY(4{2e#ai|M$lWwYM? zw%y{?;dlWW*XjOoUFlDa3{F*V&&|=^!X=C>z@&b1K@J7jYprJS#hBH1dHPj8jRONlSCEQ*x}7gp zV*m8#wG*jKV`a}|P=A`=sn7I6oc+@^%gceA0}qOD^QhSN1GpEvgLME(tC#TlHfzvk zo&=zPt8n@SJ6oITAK&X5$w5L9_^ghtlIKgOE$TZ;S;Rc7e5i^NZ5>USpkGQ#AtW2k zPJ7p5q||v#^0jwd8Y!RCxTCDUz^~qZ3UHXy70AC%2LdTAu-gz3H;oL0$N zAN0k-y-DS5*3oy9K1VPGOL_cPZ~Noq#3<)VL53#k)~r8+8x6+5CDYPt;;_C63dsVS zrY7~PSGMc#SM8bmKQ0dVGBMaQr=Hk^x#VD#eUGikZjL=!4R0`q?-jf&9{?E4xSm`7 zy=AF!kvD2HSF=dbmAPRCwzB{@r)M~GRA_1Q5Pso;ARIFcI`D6xc1!%Nk}O+%GE5(Fu*9+9$c)hTCX0b`UW(U^DaEzyY~{c@Sg+$Nylg1=I%n2#ggCEaI+zs`ikQbb}hbepGLVc+YzY zVpeNMJ7cx_h0YSaH=?0`ec(yY6!X5{g1M^JM$~jQ(C{mpK^TNl3T@YCHSj`D155(z z-2{KXvg@n-dBO(64DfZJuk_%XJdlF}cN!$$`ab$;zrP^>L7~%U^!ij$lO=1Awgo4D z=>iAG>OHy^*|mw?Z;+wz-h00-QkxjsM*1Apw4U@bWlcFQx|s7?drI%9 zlK!8OTl3}?R-m5VfRDlupo0bZ!@?Ia>179R>g|GKNc$&CH0Gx@3rGQcW2+KgVEXUS z0~D*`n{2u%r^TrCDh}>YgEkpe2{DqnB5_PaDRqsyMlDT{JPXh}pVN53p;Z=m!gYEp z_e{-43c$*9#bBx*Ee!zq_}372Huxw?sz3$%D~?)~+(~}L^Z&S`02R90(|2+Zn~koT zM#BBjZjTns2=dr@ z>0K|&0OQ-Pu=!}T0s^vWXbJ>u&+@(JK`&sXJ-O}M>roWlmzM22X3@P2HUCh};J1z2 z``oKTlE3daP&_H$Gw5#bb4kXm^P_Ki-m8pyGJAG5yPh7WMu0}1Fk4dT3b~S~9K;>+ zn{?Y0)XMkmVIFo>rPbAz9G7xDNR`<@pMN=(<8I(N_OmXsG1_)X1lvQWkeN9jJ2Oq< z==;AEpPDAY{rtEV$|!JVqKBZPC9@H-hY8z;j1K3VXnzaN%{&}va7bMg@QG;wYa|6= zdhf3bfz~pHCw1*fvFr}&J<+@e-q$$Hv-UtO2ur147;$~UnD$K$|CwRkF`Fsx-X?UW6?=xP^TfAg5=aK=U(qcS548^H(%um^tmB3+j75oG)?fbIHCFab+c zC~hvPo98))h8Kb<4eTV?KSy3~=66YPvlmyWcaZ;vXp>;d9!UcT87%_ZS_5qAw4ooo zZGt8VM@TTq4{EQj<|38+Zol@u(=mN@>8(99Kz6`fA_1~vC-0y=o56vUkx;i>!7joZ z+=4*!F`V2CvGtqxwJKT43-$6VxyG``I)E5x+3}qXD>qGQ&$C^i)LOd3hvn13xTUZq zTn(nF<|V9{?po+hX_5TAo!4Q~t1q;2fC1YHcon@y{#01I<$gHdZZ9}h7!I{~U$S_X z8`^;DPU>q1LI0C}ZRV?>hOip2(~k1)hK(|sI(Z!U4GL1;sHa7;FN#03ZCt9Du85o1 z$0C(cj(XS!{p4`i^YW)OI5i6uc%$RfCl=5HAD>Sji1C=jcE5i8XzcqZ?VoY!+FyVD zl>u^5Z`|8i!;znp1Q%K6!ap|f>dR|`Tk9s@*8EJ>9@ExS2HA(J68xpZ!>o|{MKtE8 zqf?|9B8_@H*B7bIq|5yw3PcvaVJ1*@1vAP+kH!jxo8*AjiFx`$vBffT#WA3e$BU=< zfx1=n#%;_gTooA(<}roMvjT1IX|MIb`x)l|EutE&U(kjRf_9Qz*&O?l28lX_ zpC!GIgfIB7$9-z52As3iyWi~Km5p^w5oM*%B6|HSHWK!aGLrg`*Zn0pUp2f(If{_; z69J~h7G8g`OcxpiqQRWfdNr08ReY3wS3Kb73DofOOlZ3RjGQC=lHsUmhyy1VsubIt z4|qlW{C(vmJl-)qd7%6`@{0uwK5l85T0IS%i!_;eY)S$lK1y4n5=cY#+~r80-x18M z#_uR)n77`8X*yu{h4Ip$x%z%QzC%KWQS0}qWllh<}nXFS0iWg z!D`{YnDTlfv_Wg?Dr5RHgEzg&XprR&;g{7wnO+U>?G?sljn!JdAjbD@OZus!A%*9; zqk=OpB;Ww_&3+c5`fqK0U|zNbrNMuvf;-Wm4J2r9hh@^B=XhZTdA#38{on!Xvz)90 zoVxk2Zk08gGyzo)>n{oD7=lDRi;Nkoj{Rj&gn5x!gccTHC2=3k zrUPOim#08~7^i&jc){{w#K*N>7Y-_@a%SobFezYzV|%}2UyimCf;T;iI4uku?3DcS zg`aK*>u7Snd)MyAEKquXfHYz3r5dust9)uC)no6iBk%C-;a)?Ml#1VoiV$ej5SOh#kC}%=n+L_Mu zNB?zZXTD!MJKxOizWY8G-+doY**!032H3COv0t*{%j!yV&lOUoEv?!B`9)^$Ax<08 z^GEAKfZX*gaxSO|4h8XQkEgqWDL*O_-kj?5uN}#>$MD`>bHr$%TSgD)ufzoW>{l{$ zO^Tw8+uTiF&2?EUly1%}47&YsR>ODGU0uoVeez#wE1TDrHERi%<%U&j8jDEO7v!}8{GNA#ipU;53oO{wg-5*J{&=_|VW3IMdrN}O}&B@6r->f;xjB^dU2 z-f%!u5g5!WLTd8gs+l!OrOnfe-Pg+pgIOfaRar?mF)2&n5QEug-nYRrhD^QOEV`vxaIX>Qs_?Ra<$xQ|0!cWx1*`jV#<+fOP*#a7xkiQhWv&>vU7G&gDZw z+p}Wrra`RGGbT(8NY5=`=fwG{?uYm5wrd=eA`u_(U5fyb-m+`YPPoVfl8)<2gy&to zfyLFUO*sHz!-}>C`~4gt9An~0##4Q|WV|6^GFJ!k35dCcIkuFHQRY4{yw{MsN^!XH zhHoun^W@^^9kpB|+#OlVJ^pt8zxJ#FpdwAej}7P-rI|E_RgUO7R0Gg>c9$x1!xGk> z@Ag4qcUODFSi_H8$ia|X5A@m``%HX4JmWT@UI3or)M9K#L(t*P+%Sztz;=J1c0&sh92+PG z=B)LG&w3U%R;!9z)WbeRsruaM-^bL(C zZY~03J~#a%#C>EJ8*zRhpi@z8_0b(ep;M_mtgBxEP@X3x62)XXP^lts~aTtLiqGm7jxbqeb?^6G`k9AW@7rVcki zWreFb1)A&q9YEmzrJno1TusilS^P=|vCXV!e|;+6vC~NXu36czFSIf%$QajoUXZUe zljT>I2DuRUngq?3_j}!1*MNfmU0t~Vxa-M??~(2<Z3{lEIe1BLJ8kj-d(b|x zIm!|E@Y0m|Z=f$(%4#!FhfIJ4th_uV#%=|MwmO9eWKySSs{jHvARwVoS5mz$khhG! zGF3@HOyObd_-7k}eoKyC1sZSGODq>WTg}gat?qI%kqHm?=DvZDpMf zjJ4^&o)ukHn33WT2(J6V9OPxv913>R(D?U^;GQuC3$|fCyj+4Zo8YJP`}!i&=pM<2AEEJrCU5uGQ;Djoj4DJThmPCN zr(>(%l)OoQ`pSf_$R?mMt2_j*{G{hPUu<;!f1-^3$witwB_^-ebFwCmKxUH}+bx70 z$z(@SBaTMF2W5>|BbyOh7<9yeY6HWbf>=`#BzCG8{jUk}iIH*9C;xlG*VW`!m=MgN zhp+>gCybMhCPv4xqKw%mlcJ2{lGqU_RC2Lm3a@!&uZ6`!|K3MlBY`M263#LLM13} CM64_T delta 4171 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 diff --git a/packages/create-app/templates/default-app/packages/app/public/apple-touch-icon.png b/packages/create-app/templates/default-app/packages/app/public/apple-touch-icon.png index 0977175f6fafa4da95b64c42a5b801ec5a493a9f..57c05cfc9a4608b49d0a2c58da3ee22c71e9983b 100644 GIT binary patch literal 18045 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 literal 890 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>bCLfvgo}k(8*fF!X_4rCyA}qqt8F+F!NSBPz&MHTnhDTc#w2fd zm&jS0zDNK$>?NMQuI!Jvh51e8KDs3?1PU$oba4!kxSX7DfFb9NjLe*vJ2nN3_X-3a zJQjE0;NaryZfWoCI>>rNRb}at!>JVym^KyheByf8HK~A6HB~g!w3Ii*`LO9$0j8{5 zR=cXQez9>F^GH_o9O}I}fj8BF^ZH~1Q{(LkESwQhk+*NO-M(pU;bviZnD=RMVo`5L zL2-J*hYukkAzway`?)FK#IZ0z|cb1&`{UVGQ`l-%GB7(*g)IB(8|DoT~O&AiiX_$l+3hB z+#1S!W`X0RDkP#LD6w3jpeR2rGbdG{q_QAYA+w+)nSr5V&f`x!9ED*T8mIhEpYePe z#K5e~t(VL#tSsz3S%g_w!KK0Ea0;{X<`9L`H?EvGa^{H45%$v!9t*tm7+#4BmV9zD RoeFdlgQu&X%Q~loCID><@&Nz< diff --git a/packages/create-app/templates/default-app/packages/app/public/favicon-32x32.png b/packages/create-app/templates/default-app/packages/app/public/favicon-32x32.png index e2707f2d1e6f17270c8728efcb7230310aefdefc..c0915ece75949f3d917134f55193949927edc633 100644 GIT binary patch delta 1482 zcmbQhHH~*dd_B{J0G|+71_lP90Rin z5;AvE{r9JZH&1Fh*$MFRDd_9wUOHUz;DWNbN%)c(ahsRrT{&W3kSV~&FQcJW{`{Jn ztyR>jdDS28saTkXEts0HeWg*Tzk-3TmaAjb$~kpk9!bc_%IRpuu3udB=9YU?rHHtg zNn~)wu^su>kJlI9J6C-7Y}mr7P89{>vNDm&XE*$M5xr)Ckf4yFp?=P}{aL5?*cW7Y zb=3Lwx4PDqrtIBN{`5-N!fC2j<|5+aiQ88d-a6%6S(tfZSK#zsc|C14YYYF0?Y@02 z1vgI?-ahS8RaEunwyw9kZ+~n2))n4e4X(8%F>4o;KfRiB;Xq9NxABCT`O*ul72h?nWgO!-Q=sW7jW=S-Vi*&olkVHqX|Y!0A1y z2RHjq>WJUGEc4{9xJ^sV&kmea6$aZ4O;9C2(4|PfwGig1lpC zZtDI`*=P2p9o}k}pCP5Jq-x2JHj_ooZeO|8TJi~TU8>o{p$=luK{f-Tf76Li!C7!;n>`z!(ISuviB=rh0 zFfgfmx;TbdoK8+iNJvRaOH94&%KS!VPRyMi9*0afxj4JnH4X6&6DCe-;KdW3&F+1Sk@t>XJ$v`?<wDp-~= zt$uJ~#fupc3$ESR@uS5>yM#4tp69lcnwl$*Wrl5hxleNDxeTr~mo{(8jVUfN{`85v zo~yfSve%bDQHd$jriRauhzJb}oqqkwwX5b93!@g^zj5Wxr5Vds-=1~t+P#Z6r(VtN z$!hY>^v{p~&mt}!+uS)>&3~rV+H|W`oMFaJ>E~wIrsq|;B)_uR{gYcv&&l|pR^G=+ zp38i_r|ZTi?k<{o|5fC&jJyq}A~%=a{k5cv_qBOFTh6ULsjs)aJ(!{P=ElzK?Pss8 ztp4^cdT-kQ#^!du>AMzaSrnDbe|a(a_Hx#!oz49-40JpM0IY z{rx<}ldri9HI&k|YxmxW&{o;EZjur6=i4F zn?7$}wQS2CnO$o(Oxw1JFF=YxHcfE8$Gg{Zz?7s~;u=wsl30>zm0UF0kA+>@$UxV? n6o^6$EUip{$XwgN$jZPV!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+081LL6ppAc7|0tRMAnGIgd zg6z^8JOwj#q}O=JZuFK~=P9+;LuS2~^m;G3O_H2?+zGJ^OOSp?2T3kG1g zVM@V8fDE8|G%ltHTmhQlXeyDF0onim|F2@Y_Zg^Ya!HV1Fsfcg9$t3QwWm%T+c7yr zSo+SdBOWgTFUhZ5wf@Za>?9@@!B2}5I5ux*o4bZt_Iy>fhPHmdzk9D@mA3D z-b1QO^Xm4#vs8O5aif`C$5xTay+V5KtFQMexN-zUf-kVn{F#3FqLkW`ecY)gA1(-e zZIZmSj3pxNvo(KzUwghIYv`tv3oUuil%F>NI*T#M+udaFdh=h+CN7 zRPLi&;zFRbr>Bc!h{fsTgau3w9*Z|H)j8VbaJ96!x+psM#5e_U1vhRvlfp7#>g4B# zS0{W*VRdEVQq$H<4pmsRXw|ZHjA08qLmS1KxAm=CCfBj@e7kQWV@GBNOOn*=2O$R% zxRPegd>oRH$e9$CSlYa`ckSH08<{6O&FBtooHu!Mw|2+FXMOfEHa1&7YJd0?c5FS+ z0{QqgTz^dd{$*x5xbA}Zk(a)V`4h~WnhM!NJTyAq_D4HLSair9Ja9rpQdCy>bjv~o zKAGr`JU*PAo+mX|X8LfjzLcCfQ!MhP!m`!2#eVNZ6i%E@PioZW2-VUkXj#&JNa@-m zp$SczOH+L!4mmEK)3|n#(3%CSq`I4CMLDxA+f}upsm+at)wIa>KtfVdejekgRmjRy*V;jCKX z8c~vxSdwa$T$Bo=7>o=IEp!bHbqy^;3{9;}jjfCgv<(cc3=G%>mENIf$jwj5OsmAL zq0DC%s6Yy@3W+EQN-S3>D9TUE%t=)!sVqoU$Sf#HW?-n8^Y{}FM`4(T#wq{PXFQ(< zF)%B0>m_pwD+_y17GV}vaA`0(oWiWUIYi;~jVmXPoH-(Mg#C1b#{w@shF9W(C7+y3 Rrvj~D@O1TaS?83{1OQGQaIF9U diff --git a/packages/create-app/templates/default-app/packages/app/public/favicon.ico b/packages/create-app/templates/default-app/packages/app/public/favicon.ico index 5b582704a10d20240034385f14c210db96d51603..5e45e5dfbde6f39603d5be60d933c1af14dffb1e 100644 GIT binary patch literal 15086 zcmd^`2XvHG7RSfcb#?bB2`z*gdhfmW9(wP+_uc{oQ4mlO5k*BsM2aG)sEAS`qKI8l zK|nxhc5&@)x%>aU@MYteNivfebkF9T%bRcJd+*(T@4NTm^Ihh<+*hfRPh*^KQ*ocK zhR^4Vi@W$7<@24;cTpPoedHBB-y*$GO7CcjZ=ith-CwcfAv6DG&z}7%K_kI!g0}_V z3G5QV_uA)>V3nY$;Ofla%sYDbGC_60dcl{1ONDcweZCS7n+3H6e@c%I{eGojl;Er& z(0aeu_n!!-34*KAqCww-dx8Mj{a!d`wC|6?ZK2>dH0Zk#fn7tJZ3PSEu~zXFY~su&w(#b5Hh)PQ8$7C>RjXOda^%cm(cz_o z_;4_*_`~BovAL{g{~Gq#o}qU9tJ!w$r}=hPz>0%(l%>542Kc z3WiG#4+g%U! zw0SqSu^#=ZTc1I-?1`jdcH?awET?oS=zYWBAF;!jn4H$7S2cTT|8P4do`YwHZdGi` zoMyKF-SKw%`*{vdTu88!-z3(rd^r)e&dZ4?#B^foh+B?`y*&Xw%ed%D<>&t}=4*T*=$>D;5L)0d6g z2Z)xD_T;|d&NfC)Y-k;%TiC|R`?@(9dcHOSzV$aU!Kb6!_dn9dItj-KGn&}ThbP*h zGt=$5o8m3LQzg6U&QA8;xfyo)hk5paXoBC+dO~tRr=H$F!n*dZ=4`rt<5HHmq^*sd z(7?)8C=^bg^c&ofF}x~VG_Q5$~%6uAAIZ9 zr@B47W1ypDgY<>xfg|cTecAiwSbP1$DfY^-N%qtW!)?K`w$661zonh~y;$*l4(EhL zt?e1<+1npabG(U^E`fh5@r@XSuHXaTKR?6v9~$rMv#b2k#wQ0je?$C2x1N)&Vi)+< zkH4F1uN<9ZLq^xLzJqI7qh@97&UHOpZ0IQ8HA8+FUX&=6U$PE+u92)iMe-VU2>;QQ zrMGuP0?l1ZoTRUF#4u3k+*)G2m&$d55%;^L1miG^eF8mI2h{t>` zS-OC=?O4f%jjeC@$tPgv#Os(mxguf%_)la$c4}kif7Wg5=VH><=Y}{w4;@p_cD*v% z@$;4h94_+Po zV3JLm)zmslH}E;cE^vJDy$MbR#EObl3R}abrCq#5N1y}Szy?Z}E$HM#{QmH(Iff2m z2Q}*ykBt5(hsW>3!`trd>U3$Ydr)a{SG<4e#xXzx9+rkjgw zh|y)r7qT`TDmtHqPa^M|bA2nzl{;r-^hdbB8*&AFB(aq^g>KiqKu9u_H<*KWVRo6~!8GW2_*bf}2p z8vIUgPv}~@s-u(D&X-3S@ps+UzAlEH`g?-Y!Pf07Sf#2((&RyUYiH&+co>^Ex6M_K zd|dj9F2ld-wTjub(yc&icsUOEzNp-kdDuSo+J9(mXFp@6G;(X*bVnychJn_~>i5Wi z+} z$iIp2_$Bz{?H7sB*`v-+qb4YbaHwfIEwkf8v`MIh&Q0&q>y&XqT&1 zt69_@5PkRn_^@VUFQ=ot6A8RiugMf-;5kH@&(@ftd1U^u*2l|G+(@wPgSnZ*=*p5x|T10OuG1R4o1h|KQWNl z3|(2pEtvVxL5`1KhmXWl&W!k_^mLiuYt=1o2XuA-e{7j^fxn!B!6npp!IQHLXOiUD zFxk=M$td-@;0NFF_nZx&8C{!_&@7^7nAA9=^%=aVFC0+rk3FDM=$3m|GJ+O-6uI-_ z747Zav(xRI?3?$dCN#I$*h_n+4@3igkaG<*VB6$tyqjOPz-N3F`hx%G4BD(!Imh?3 zWR=z)e&7AW?>Wo11CQ~g4o}g5U!mrMFQO&{?!$Z-x7TNZ`+!&`_s-2^SAeNmrU_d zJ3aO*{qg5n-$Mg(I3i5*~=>c)Zp1ZiUEm_&oeWpHthx+K$(sHW~ zn%;VTzol#6>|H1>*7cU?chg_s&cqXYhuI$WT)~Ap1$?0QMDLTDcaS_t6JKbi=R+-= z{v&kknM^pF=C> zQ~EjdW$BsImqHh~yFd?-8UlTcmFfkw?O4&>O9~YS_NQjW`tTO|`Am%+dEYFYIQP@r zpije{s0GX7bq=lQ-UmOgz7Yxz>`%{uzT+M1y1RQm^vKY`XVs@b4&0#uH)_mV)U#th zdUhMc3uFR5q25Pfe|iwCi;SsrY*RmI_4*z*>$;Y9=Yu`m^CLS48T|$N<=ijfju<#@ z+cm`TDNbkGP|kcxw#_{Nd=z$Z!}9j--e4&7vj?=ng9l}E zN5xDuRZE)X; zKKf?eui%~-^;dclYjhusdOx;8tPGX@)HoC^md~w+u5Z}h-^D*-Ai9T+AqQ|J9{^us z0=Q8p^ZHlbdZCQ0jV%*{sB_Y%r;f;esp;bxyCo*mU&4noHYYm)GwM2oCTesI!pX4@PeAoU>kR>b`!%06xVv1UWd2{# z=gsp*d?Psx_eHp;xq7|kYj4)TpHH0G)OzVo7-wB?PU?~PL#*LU#F>-*IR^p!pA60> z#HK*!KsR6e6GJ(_Fn@&3jhq$8ak#t2UDSZ{<@XEgz9%?C19$iS_Sb7&?!*7F;0`ut z!$9*rTIgqUcHu4!_jhku-Py@v#hNbeT$9mR9zM2=FK>@NH`w7#UVP0pQ7+%$tVm9p zQ5^F6xzJ5-8hzmGGJbkvms5MVUK~^OC-wK}E_o2VgdfBr@(@2gM1OXro|pPFcyezP zT@G+=-mCW;2#%zlm-;iY&~Hyqf3Uem7j2L=up|DjnfH63k$3h8+}tE;#36Vl<}mj^ D+pS%} literal 15086 zcmeI2d2AF_9LJ{=UG5^DSg*Ti8pU{EyyAuN zh&M`6142+i#ef%xF&Z`4phlws8xbwKw0^$3^S0C1Id*4fh=1%a`RqG?@AsYS&6}BZ zoGPc<88ylwt#@8L$Z?K#9H+kCEe~{@P1Fq}Rr}1Ij&nO5M$iWrXDX;ZXT$PI<+rj2 zDtn-^2h!XF6BpN3pWZyA_r&HQ%t$5KNP16!OJgt@pL1a>)IkPHGBgi@Y48HP3yWYj z>{sMK*VC^9+GCQ%?@#z1mcR@c43UP$VelsW3mqPIl7Al#j~v8tjDBrH5@>rqg^OW# z@HMp6z!LE4w)1Ofuk{_EvodM@W*_L7+y;F+Lv`lRH3@b^=-2jK+v(+-OH04D;~!{( zZr3Eb9xFn-^e^L@4!f?>)UR#$9nOG)G1v4&SJb&<&ZUp(TT^iEo=IE3wqZH+H=!pi z8eD~@C&6e8OINV}dl_G!G)n(cd@h4&9;TC@3s1l%kj5~!(LN3ehW5+Ao_GAVDM*TZ5~16J}?t>-(3Z-!CZ)%_Z3r? zlz!cJ!}PD9y_V^&8rAkKqEAgrxI1nd`n7g$hGL#S%H6!A z^=mye1$vh&tVsW)_3t3=2QU%RnD6b)N?O0UCVnN*C3dhB%2E11C+6dzwX)$k^4iCm zlZ;-!bTjQ~&HD_Uvnc(3>*p#w`@u=D8vL}Ix|eD11!-9v{a!5xQ_vi5^xCQJy~lVR z63&;aUvlmOTer7-b;6px!zH2rstElLdIKh$PeT7~5&EA>ShIJya`g{kuus5yzS#MP zy#W)>$JM_ZIyOa8bDeBmC3SzmvENAg$*vvsr2A*E5^0k%1;iifNMiv*=t8dRMxu z*8loGpku9P@KX63pRMpUyaduc78?PdqoRbJHd_ZLsR|{W7h2zf7Bz+Hnf;OdLBkaZPH)XEWFi zeu_#*aBS=0L@4}EYggPQiC3}z*B;;-R|fh+*u76{?;AjC!FwanbIM#82YZ085pOrR z5MBp;Cwv-?^X=?7`VRLUaF!R1*4-b#B-QL zcbNNw!}!DD$AI|nP~TVmJQfuHO8RK#+RJ4q>G`k$ys?$nJLz-4nb=&bbMH}~`1&u+ z73yPIQ2eP@KU17Q<`1wnG@1^?sfC5`D{KdydyUY?^zo#n#@`R$ufdM5@8bm{mahFn z;CMI?dK4PFW=f4e9Cw`?cKkVAhb_8PO8owedJov&<@AgaG`~a%35u_G@UubNC2j(J z%hb7MZ+ki4FN5OSF@nnPq30loYjNZMOh6rry10Q|zqs+g!T&r6I)L{a?D`T2Op@9|x5;61XmIaQw=N{|o--mJwU7apM1jpVq&pLEPhx zYtHuO_f^pGUK_%Pw7ms-?|K332}zjr_k;cssE^kAgNHiAQ-#eF># z-c#65Mzkel8o8H+&ZTZ^2iD1bU?6zUv&r;*2UdDmLH=pb8bo86XP;(#^}pUps&j1~ zY0&)j7j2E|htJJmo)z`Kay|RVjK9_(55YBXKWKfTaW})TGv6FK3!khz#!^yUQ!?ZK zC;73tn*7h*B=T>A@iSV7_r+%p%!fnrU2?x({}bH$0i@4>{I|kU5M;(*-#=EvB3J{8 ztGY)($0x{)zu!J=#%Z4*N4MViYu?nlUf)`mgJQSB6bLip@7;g<;;;dvX(fbx&oTab zUohV7dkm@8Zt`CX+MhvY{CCpfOIQa#f!QDTk@udj6uX%5H~mejb5Hm7`Yye@7j$gr s!c{JFNN2*y5T={v@+|-E({Wa9gK6CKM)ODZG0;F+H04p*TW9?K1Dt;TIRF3v diff --git a/packages/create-app/templates/default-app/packages/app/src/LogoFull.tsx b/packages/create-app/templates/default-app/packages/app/src/LogoFull.tsx new file mode 100644 index 0000000000..d2b1bf1080 --- /dev/null +++ b/packages/create-app/templates/default-app/packages/app/src/LogoFull.tsx @@ -0,0 +1,46 @@ +/* + * Copyright 2020 Spotify AB + * + * 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, { FC } from 'react'; +import { makeStyles } from '@material-ui/core'; + +const useStyles = makeStyles({ + svg: { + width: 'auto', + height: 30, + }, + path: { + fill: '#7df3e1', + }, +}); +const LogoFull: FC<{}> = () => { + const classes = useStyles(); + + return ( + + + + ); +}; + +export default LogoFull; diff --git a/packages/create-app/templates/default-app/packages/app/src/LogoIcon.tsx b/packages/create-app/templates/default-app/packages/app/src/LogoIcon.tsx new file mode 100644 index 0000000000..d70be3dd32 --- /dev/null +++ b/packages/create-app/templates/default-app/packages/app/src/LogoIcon.tsx @@ -0,0 +1,47 @@ +/* + * Copyright 2020 Spotify AB + * + * 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, { FC } from 'react'; +import { makeStyles } from '@material-ui/core'; + +const useStyles = makeStyles({ + svg: { + width: 'auto', + height: 28, + }, + path: { + fill: '#7df3e1', + }, +}); + +const LogoIcon: FC<{}> = () => { + const classes = useStyles(); + + return ( + + + + ); +}; + +export default LogoIcon; diff --git a/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx index 9e343b86ac..96d18965ec 100644 --- a/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/sidebar.tsx @@ -1,15 +1,21 @@ -import React from 'react'; +import React, { FC, useContext } from 'react'; import HomeIcon from '@material-ui/icons/Home'; import LibraryBooks from '@material-ui/icons/LibraryBooks'; import CreateComponentIcon from '@material-ui/icons/AddCircleOutline'; import BuildIcon from '@material-ui/icons/BuildRounded'; import RuleIcon from '@material-ui/icons/AssignmentTurnedIn'; import MapIcon from '@material-ui/icons/MyLocation'; +import { Link, makeStyles } from '@material-ui/core'; +import { NavLink } from 'react-router-dom'; +import LogoFull from './LogoFull'; +import LogoIcon from './LogoIcon'; import { Sidebar, SidebarItem, SidebarDivider, + sidebarConfig, + SidebarContext, SidebarSpace, SidebarUserSettings, SidebarThemeToggle, @@ -19,6 +25,7 @@ import { export const AppSidebar = () => ( + {/* Global nav, not org-specific */} @@ -37,3 +44,36 @@ export const AppSidebar = () => ( ); + +const useSidebarLogoStyles = makeStyles({ + root: { + width: sidebarConfig.drawerWidthClosed, + height: 3 * sidebarConfig.logoHeight, + display: 'flex', + flexFlow: 'row nowrap', + alignItems: 'center', + marginBottom: -14, + }, + link: { + width: sidebarConfig.drawerWidthClosed, + marginLeft: 24, + }, +}); + +const SidebarLogo: FC<{}> = () => { + const classes = useSidebarLogoStyles(); + const { isOpen } = useContext(SidebarContext); + + return ( +
+ + {isOpen ? : } + +
+ ); +}; From 9ad2b8186bd680db9d45fe4d2ed44615ecfa465a Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Wed, 16 Sep 2020 08:19:09 -0400 Subject: [PATCH 634/656] Clean up installation --- docs/features/software-templates/installation.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/features/software-templates/installation.md b/docs/features/software-templates/installation.md index 726f5faead..ef0afb76f7 100644 --- a/docs/features/software-templates/installation.md +++ b/docs/features/software-templates/installation.md @@ -188,10 +188,7 @@ docs on creating private GitHub access tokens is available Note that the need for private GitHub access tokens will be replaced with GitHub Apps integration further down the line. -> **Right now it is only possible to scaffold repositories inside GitHub -> organizations, and not under personal accounts.** - -The Github access token is retrieved from environment variables by the config. +The Github access token is retrieved from environment variables via the config. The config file needs to specify what environment variable the token is retrieved from. Your config should have the following objects. @@ -204,6 +201,11 @@ scaffolder: visibility: public # or 'internal' or 'private' ``` +You can configure who can see the new repositories that the scaffolder creates +by specifying `visibility` option. Valid options are `public`, `private` and +`internal`. `internal` options is for GitHub Enterprise clients, which means +public within the organization. + ### Running the Backend Finally, make sure you have a local Docker daemon running, and start up the From 994c4a70ad895385353ca5191d74f86e469b6bf9 Mon Sep 17 00:00:00 2001 From: Himanshu Mishra Date: Wed, 16 Sep 2020 14:27:53 +0200 Subject: [PATCH 635/656] Doc: Add prerequisites to getting started --- .../running-backstage-locally.md | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/docs/getting-started/running-backstage-locally.md b/docs/getting-started/running-backstage-locally.md index 08d2ab385b..249727e9d4 100644 --- a/docs/getting-started/running-backstage-locally.md +++ b/docs/getting-started/running-backstage-locally.md @@ -3,21 +3,39 @@ id: running-backstage-locally title: Running Backstage Locally --- +## Prerequisites + +- Node.js + First make sure you are using NodeJS with an Active LTS Release, currently v12. This is made easy with a version manager such as [nvm](https://github.com/nvm-sh/nvm) which allows for version switching. ```bash -# Checking your version -node --version -> v14.7.0 - -# Adding a second node version +# Installing a new version nvm install 12 > Downloading and installing node v12.18.3... > Now using node v12.18.3 (npm v6.14.6) + +# Checking your version +node --version +> v12.18.3 ``` +- yarn + +Please refer to the +[installation instructions for yarn](https://classic.yarnpkg.com/en/docs/install/). + +- Docker + +We use Docker for few of our core features. So, you will need Docker installed +locally to use features like Software Templates and TechDocs. Please refer to +the +[installation instructions for Docker](https://docs.docker.com/engine/install/). + +## Clone and Build + To get up and running with a local Backstage to evaluate it, let's clone it off of GitHub and run an initial build. From f5702ddc8e9741a1508d62f9afd0b99aef01fcbd Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Wed, 16 Sep 2020 08:53:18 -0400 Subject: [PATCH 636/656] Add ability to flag user repositories as private --- .../scaffolder/stages/publish/github.test.ts | 39 ++++++++++++++++++- .../src/scaffolder/stages/publish/github.ts | 5 ++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts index 2c47fa1a2f..5411602a21 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.test.ts @@ -112,6 +112,7 @@ describe('GitHub Publisher', () => { mockGithubClient.repos.createForAuthenticatedUser, ).toHaveBeenCalledWith({ name: 'test', + private: false, }); }); }); @@ -231,7 +232,7 @@ describe('GitHub Publisher', () => { repoVisibility: 'internal', }); - it('creates a repo in an organisation if the organisation with private visibility', async () => { + it('creates a private repository in the organization with visibility set to internal', async () => { mockGithubClient.repos.createInOrg.mockResolvedValue({ data: { clone_url: 'mockclone', @@ -260,4 +261,40 @@ describe('GitHub Publisher', () => { }); }); }); + + describe('private visibility in a user account', () => { + const publisher = new GithubPublisher({ + client: new Octokit(), + token: 'abc', + repoVisibility: 'private', + }); + + it('creates a private repository', async () => { + mockGithubClient.repos.createForAuthenticatedUser.mockResolvedValue({ + data: { + clone_url: 'mockclone', + }, + } as OctokitResponse); + mockGithubClient.users.getByUsername.mockResolvedValue({ + data: { + type: 'User', + }, + } as OctokitResponse); + + await publisher.publish({ + values: { + storePath: 'blam/test', + owner: 'bob', + }, + directory: '/tmp/test', + }); + + expect( + mockGithubClient.repos.createForAuthenticatedUser, + ).toHaveBeenCalledWith({ + name: 'test', + private: true, + }); + }); + }); }); diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts index 671c3472bc..a8f3eaaa02 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts @@ -72,7 +72,10 @@ export class GithubPublisher implements PublisherBase { private: this.repoVisibility !== 'public', visibility: this.repoVisibility, }) - : this.client.repos.createForAuthenticatedUser({ name }); + : this.client.repos.createForAuthenticatedUser({ + name, + private: this.repoVisibility === 'private', + }); const { data } = await repoCreationPromise; From 7b3a36a5ec3c4f0265708cb7a601389252af1dff Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 16 Sep 2020 15:07:08 +0200 Subject: [PATCH 637/656] eslintignore: add template dirs --- .eslintignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.eslintignore b/.eslintignore index c73074efb3..46bb1ad2b2 100644 --- a/.eslintignore +++ b/.eslintignore @@ -7,3 +7,5 @@ **/.git/** **/public/** **/microsite/** +**/templates/** +**/sample-templates/** From 7806decbc4e19f4338600695a177efdea24f1e87 Mon Sep 17 00:00:00 2001 From: Tim Jacomb Date: Wed, 16 Sep 2020 14:09:54 +0100 Subject: [PATCH 638/656] Make access optional --- .../src/scaffolder/stages/publish/github.ts | 4 ++-- .../scaffolder/src/components/TemplatePage/TemplatePage.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts index 09cb720ebe..b50d5730fb 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts @@ -55,7 +55,7 @@ export class GithubPublisher implements PublisherBase { const { data } = await repoCreationPromise; - if (access.match(new RegExp(`${owner}/.+`))) { + if (access && access.match(new RegExp(`${owner}/.+`))) { const [, team] = access.split('/'); await this.client.teams.addOrUpdateRepoPermissionsInOrg({ org: owner, @@ -66,7 +66,7 @@ export class GithubPublisher implements PublisherBase { }); } else { // no need to add access if it's the person who own's the personal account - if (access !== owner) { + if (access && access !== owner) { await this.client.repos.addCollaborator({ owner, repo: name, diff --git a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx index 60f74e4cbe..0f8ceb7a4e 100644 --- a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx +++ b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx @@ -54,7 +54,7 @@ const useTemplate = ( const OWNER_REPO_SCHEMA = { $schema: 'http://json-schema.org/draft-07/schema#' as const, - required: ['storePath', 'owner', 'access'], + required: ['storePath', 'owner'], properties: { owner: { type: 'string' as const, From a40012d974083eba26af6c8a1884681adef186e8 Mon Sep 17 00:00:00 2001 From: Tim Jacomb Date: Wed, 16 Sep 2020 14:14:46 +0100 Subject: [PATCH 639/656] Reword --- plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx index 0f8ceb7a4e..e68c795bd6 100644 --- a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx +++ b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx @@ -70,7 +70,7 @@ const OWNER_REPO_SCHEMA = { access: { type: 'string' as const, title: 'Access', - description: 'Who should have access, in user or owner/team format', + description: 'Who should have access, in org/team or user format', }, }, }; From 0c7acbe3cbc7f700fede8bad9ac057c08db2a052 Mon Sep 17 00:00:00 2001 From: Tim Jacomb Date: Wed, 16 Sep 2020 14:19:01 +0100 Subject: [PATCH 640/656] Update docs --- docs/features/software-templates/index.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/features/software-templates/index.md b/docs/features/software-templates/index.md index 86493c0120..645b498926 100644 --- a/docs/features/software-templates/index.md +++ b/docs/features/software-templates/index.md @@ -38,8 +38,10 @@ internally. After filling in these variables, you'll get some more fields to fill out which are required for backstage usage: the owner, (which is a `user` in the backstage -system), the `storePath` (which right now must be a GitHub Organisation), and a -non-existing github repository name in the format `organisation/reponame`. +system), the `storePath` (which right now must be a GitHub Organisation or +GitHub user), a non-existing github repository name in the format +`organisation/reponame`, and a GitHub team or user account which should be +granted admin access to the repository. ![Enter backstage vars](../../assets/software-templates/template-picked-2.png) From f93d7a15fc58fde39412a463d36384f9ddb33792 Mon Sep 17 00:00:00 2001 From: Tim Jacomb Date: Wed, 16 Sep 2020 14:36:52 +0100 Subject: [PATCH 641/656] Condense if to else if --- .../src/scaffolder/stages/publish/github.ts | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts index b50d5730fb..ab1ffae80e 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts @@ -64,16 +64,14 @@ export class GithubPublisher implements PublisherBase { repo: name, permission: 'admin', }); - } else { // no need to add access if it's the person who own's the personal account - if (access && access !== owner) { - await this.client.repos.addCollaborator({ - owner, - repo: name, - username: access, - permission: 'admin', - }); - } + } else if (access && access !== owner) { + await this.client.repos.addCollaborator({ + owner, + repo: name, + username: access, + permission: 'admin', + }); } return data?.clone_url; From def4032351c6e92a33ab824cb4373b5e9a7949c3 Mon Sep 17 00:00:00 2001 From: Rajiv Ranjan Singh Date: Wed, 16 Sep 2020 21:47:19 +0530 Subject: [PATCH 642/656] added description header field --- docs/FAQ.md | 1 + docs/api/backend.md | 1 + docs/api/utility-apis.md | 1 + docs/architecture-decisions/adr001-add-adr-log.md | 1 + .../adr002-default-catalog-file-format.md | 1 + docs/architecture-decisions/adr003-avoid-default-exports.md | 1 + docs/architecture-decisions/adr004-module-export-structure.md | 1 + docs/architecture-decisions/adr005-catalog-core-entities.md | 1 + docs/architecture-decisions/adr006-avoid-react-fc.md | 1 + .../adr007-use-msw-to-mock-service-requests.md | 1 + docs/architecture-decisions/adr008-default-catalog-file-name.md | 1 + docs/architecture-decisions/index.md | 1 + docs/auth/add-auth-provider.md | 1 + docs/auth/auth-backend-classes.md | 1 + docs/auth/auth-backend.md | 1 + docs/auth/glossary.md | 1 + docs/auth/index.md | 1 + docs/auth/oauth.md | 2 ++ docs/conf/defining.md | 1 + docs/conf/index.md | 1 + docs/conf/reading.md | 1 + docs/conf/writing.md | 1 + docs/dls/contributing-to-storybook.md | 1 + docs/dls/design.md | 1 + docs/dls/figma.md | 1 + docs/features/software-catalog/api.md | 1 + docs/features/software-catalog/configuration.md | 1 + docs/features/software-catalog/descriptor-format.md | 1 + docs/features/software-catalog/extending-the-model.md | 1 + docs/features/software-catalog/external-integrations.md | 1 + docs/features/software-catalog/index.md | 2 ++ docs/features/software-catalog/installation.md | 1 + docs/features/software-catalog/system-model.md | 1 + docs/features/software-catalog/well-known-annotations.md | 1 + docs/features/software-templates/adding-templates.md | 1 + .../software-templates/extending/create-your-own-preparer.md | 1 + .../software-templates/extending/create-your-own-publisher.md | 1 + .../software-templates/extending/create-your-own-templater.md | 1 + docs/features/software-templates/index.md | 1 + docs/features/software-templates/installation.md | 1 + docs/features/techdocs/FAQ.md | 1 + docs/features/techdocs/README.md | 1 + docs/features/techdocs/architecture.md | 1 + docs/features/techdocs/concepts.md | 1 + docs/features/techdocs/creating-and-publishing.md | 1 + docs/features/techdocs/getting-started.md | 1 + docs/getting-started/app-custom-theme.md | 1 + docs/getting-started/configure-app-with-plugins.md | 1 + docs/getting-started/create-an-app.md | 1 + docs/getting-started/deployment-k8s.md | 1 + docs/getting-started/deployment-other.md | 1 + docs/getting-started/development-environment.md | 1 + docs/getting-started/index.md | 1 + docs/getting-started/installation.md | 1 + docs/getting-started/running-backstage-locally.md | 1 + docs/overview/adopting.md | 2 ++ docs/overview/architecture-overview.md | 1 + docs/overview/architecture-terminology.md | 1 + docs/overview/background.md | 1 + docs/overview/logos.md | 1 + docs/overview/roadmap.md | 1 + docs/overview/support.md | 1 + docs/overview/vision.md | 1 + docs/overview/what-is-backstage.md | 1 + docs/plugins/add-to-marketplace.md | 1 + docs/plugins/backend-plugin.md | 1 + docs/plugins/call-existing-api.md | 2 ++ docs/plugins/create-a-plugin.md | 1 + docs/plugins/existing-plugins.md | 1 + docs/plugins/index.md | 1 + docs/plugins/integrating-plugin-into-service-catalog.md | 1 + docs/plugins/plugin-development.md | 1 + docs/plugins/proxying.md | 1 + docs/plugins/publish-private.md | 1 + docs/plugins/publishing.md | 1 + docs/plugins/structure-of-a-plugin.md | 1 + docs/plugins/testing.md | 1 + docs/reference/createPlugin-feature-flags.md | 1 + docs/reference/createPlugin-router.md | 1 + docs/reference/createPlugin.md | 1 + docs/tutorials/journey.md | 1 + 81 files changed, 85 insertions(+) diff --git a/docs/FAQ.md b/docs/FAQ.md index 4b5df3ace0..b4c4970ff8 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -1,6 +1,7 @@ --- id: FAQ title: FAQ +description: All FAQ related to Backstage --- ## Product FAQ diff --git a/docs/api/backend.md b/docs/api/backend.md index bc44b8350c..0990343a01 100644 --- a/docs/api/backend.md +++ b/docs/api/backend.md @@ -1,6 +1,7 @@ --- id: backend title: Backend +description: About Backend --- ## TODO diff --git a/docs/api/utility-apis.md b/docs/api/utility-apis.md index 37cde87262..d192cbd6ee 100644 --- a/docs/api/utility-apis.md +++ b/docs/api/utility-apis.md @@ -1,6 +1,7 @@ --- id: utility-apis title: Utility APIs +description: Backstage Utility APIs --- ## Introduction diff --git a/docs/architecture-decisions/adr001-add-adr-log.md b/docs/architecture-decisions/adr001-add-adr-log.md index 8a484fa264..eef5f62820 100644 --- a/docs/architecture-decisions/adr001-add-adr-log.md +++ b/docs/architecture-decisions/adr001-add-adr-log.md @@ -2,6 +2,7 @@ id: adrs-adr001 title: ADR001: Architecture Decision Record (ADR) log sidebar_label: ADR001 +description: Architecture Decision Record (ADR) logs as a reference point for the team. --- | Created | Status | diff --git a/docs/architecture-decisions/adr002-default-catalog-file-format.md b/docs/architecture-decisions/adr002-default-catalog-file-format.md index af22d33020..da98aafaed 100644 --- a/docs/architecture-decisions/adr002-default-catalog-file-format.md +++ b/docs/architecture-decisions/adr002-default-catalog-file-format.md @@ -2,6 +2,7 @@ id: adrs-adr002 title: ADR002: Default Software Catalog File Format sidebar_label: ADR002 +description: Architecture Decision Record (ADR) log on Default Software Catalog File Format --- | Created | Status | diff --git a/docs/architecture-decisions/adr003-avoid-default-exports.md b/docs/architecture-decisions/adr003-avoid-default-exports.md index 7a8df28f49..9d1f9c83a4 100644 --- a/docs/architecture-decisions/adr003-avoid-default-exports.md +++ b/docs/architecture-decisions/adr003-avoid-default-exports.md @@ -2,6 +2,7 @@ id: adrs-adr003 title: ADR003: Avoid Default Exports and Prefer Named Exports sidebar_label: ADR003 +description: Architecture Decision Record (ADR) log on Avoid Default Exports and Prefer Named Exports --- | Created | Status | diff --git a/docs/architecture-decisions/adr004-module-export-structure.md b/docs/architecture-decisions/adr004-module-export-structure.md index 077f8c35d1..3dbda3f8b9 100644 --- a/docs/architecture-decisions/adr004-module-export-structure.md +++ b/docs/architecture-decisions/adr004-module-export-structure.md @@ -2,6 +2,7 @@ id: adrs-adr004 title: ADR004: Module Export Structure sidebar_label: ADR004 +description: Architecture Decision Record (ADR) log on Module Export Structure --- | Created | Status | diff --git a/docs/architecture-decisions/adr005-catalog-core-entities.md b/docs/architecture-decisions/adr005-catalog-core-entities.md index 8f39acd1cf..ae615f647d 100644 --- a/docs/architecture-decisions/adr005-catalog-core-entities.md +++ b/docs/architecture-decisions/adr005-catalog-core-entities.md @@ -2,6 +2,7 @@ id: adrs-adr005 title: ADR005: Catalog Core Entities sidebar_label: ADR005 +description: Architecture Decision Record (ADR) log on Catalog Core Entities --- | Created | Status | diff --git a/docs/architecture-decisions/adr006-avoid-react-fc.md b/docs/architecture-decisions/adr006-avoid-react-fc.md index e48fceb562..696cdcf537 100644 --- a/docs/architecture-decisions/adr006-avoid-react-fc.md +++ b/docs/architecture-decisions/adr006-avoid-react-fc.md @@ -2,6 +2,7 @@ id: adrs-adr006 title: ADR006: Avoid React.FC and React.SFC sidebar_label: ADR006 +description: Architecture Decision Record (ADR) log on Avoid React.FC and React.SFC --- ## Context diff --git a/docs/architecture-decisions/adr007-use-msw-to-mock-service-requests.md b/docs/architecture-decisions/adr007-use-msw-to-mock-service-requests.md index 773f08be30..d91af19068 100644 --- a/docs/architecture-decisions/adr007-use-msw-to-mock-service-requests.md +++ b/docs/architecture-decisions/adr007-use-msw-to-mock-service-requests.md @@ -2,6 +2,7 @@ id: adrs-adr007 title: ADR007: Use MSW to mock http requests sidebar_label: ADR007 +description: Architecture Decision Record (ADR) log on Use MSW to mock http requests --- ## Context diff --git a/docs/architecture-decisions/adr008-default-catalog-file-name.md b/docs/architecture-decisions/adr008-default-catalog-file-name.md index 979ea4de33..01afefd690 100644 --- a/docs/architecture-decisions/adr008-default-catalog-file-name.md +++ b/docs/architecture-decisions/adr008-default-catalog-file-name.md @@ -2,6 +2,7 @@ id: adrs-adr008 title: ADR008: Default Catalog File Name sidebar_label: ADR008 +description: Architecture Decision Record (ADR) log on Default Catalog File Name --- ## Background diff --git a/docs/architecture-decisions/index.md b/docs/architecture-decisions/index.md index 0e9ff21812..dfdbeb0849 100644 --- a/docs/architecture-decisions/index.md +++ b/docs/architecture-decisions/index.md @@ -2,6 +2,7 @@ id: adrs-overview title: Architecture Decision Records (ADR) sidebar_label: Overview +description: --- The substantial architecture decisions made in the Backstage project live here. diff --git a/docs/auth/add-auth-provider.md b/docs/auth/add-auth-provider.md index 7e4f5c8e2f..c5f7645a49 100644 --- a/docs/auth/add-auth-provider.md +++ b/docs/auth/add-auth-provider.md @@ -1,6 +1,7 @@ --- id: add-auth-provider title: Adding authentication providers +description: Documentation on Adding authentication providers --- ## Passport diff --git a/docs/auth/auth-backend-classes.md b/docs/auth/auth-backend-classes.md index 0147c66dd9..4ccee8ede9 100644 --- a/docs/auth/auth-backend-classes.md +++ b/docs/auth/auth-backend-classes.md @@ -1,6 +1,7 @@ --- id: auth-backend-classes title: Auth backend classes +description: Documentation on Auth backend classes --- ## How Does Authentication Work? diff --git a/docs/auth/auth-backend.md b/docs/auth/auth-backend.md index 579d2e2cda..6d8b95ac9f 100644 --- a/docs/auth/auth-backend.md +++ b/docs/auth/auth-backend.md @@ -1,6 +1,7 @@ --- id: auth-backend title: Auth backend +description: Documentation on Auth backend --- ## TODO diff --git a/docs/auth/glossary.md b/docs/auth/glossary.md index 607326b3a5..ad7ae78d19 100644 --- a/docs/auth/glossary.md +++ b/docs/auth/glossary.md @@ -1,6 +1,7 @@ --- id: glossary title: Glossary +description: All Glossaries related to auth --- - **Popup** - A separate browser window opened on top of the previous one. diff --git a/docs/auth/index.md b/docs/auth/index.md index b885db0820..0fa8de3280 100644 --- a/docs/auth/index.md +++ b/docs/auth/index.md @@ -1,6 +1,7 @@ --- id: index title: User Authentication and Authorization in Backstage +description: Documentation on User Authentication and Authorization in Backstage --- ## Summary diff --git a/docs/auth/oauth.md b/docs/auth/oauth.md index b7013a310d..a6e2ce7269 100644 --- a/docs/auth/oauth.md +++ b/docs/auth/oauth.md @@ -1,6 +1,8 @@ --- id: oauth title: OAuth and OpenID Connect +description: This section describes how Backstage allows plugins to request OAuth Access Tokens and OpenID Connect ID Tokens on behalf of the user, to be used for auth +to various third party APIs. --- This section describes how Backstage allows plugins to request OAuth Access diff --git a/docs/conf/defining.md b/docs/conf/defining.md index b28d6b8362..bea03e4e44 100644 --- a/docs/conf/defining.md +++ b/docs/conf/defining.md @@ -1,6 +1,7 @@ --- id: defining title: Defining Configuration for your Plugin +description: Documentation on Defining Configuration for your Plugin --- There is currently no tooling support or helpers for defining plugin diff --git a/docs/conf/index.md b/docs/conf/index.md index bc1d7e8e1f..83eff50a7d 100644 --- a/docs/conf/index.md +++ b/docs/conf/index.md @@ -1,6 +1,7 @@ --- id: index title: Static Configuration in Backstage +description: Documentation on Static Configuration in Backstage --- ## Summary diff --git a/docs/conf/reading.md b/docs/conf/reading.md index 76d1f7f6ea..a43ec8c026 100644 --- a/docs/conf/reading.md +++ b/docs/conf/reading.md @@ -1,6 +1,7 @@ --- id: reading title: Reading Backstage Configuration +description: Documentation on Reading Backstage Configuration --- ## Config API diff --git a/docs/conf/writing.md b/docs/conf/writing.md index da2a10a86d..6d338e586d 100644 --- a/docs/conf/writing.md +++ b/docs/conf/writing.md @@ -1,6 +1,7 @@ --- id: writing title: Writing Backstage Configuration Files +description: Documentation on Writing Backstage Configuration Files --- ## File Format diff --git a/docs/dls/contributing-to-storybook.md b/docs/dls/contributing-to-storybook.md index f0c2201a98..058f4a23a7 100644 --- a/docs/dls/contributing-to-storybook.md +++ b/docs/dls/contributing-to-storybook.md @@ -1,6 +1,7 @@ --- id: contributing-to-storybook title: Contributing to Storybook +description: Documentation on How to Contribute to Storybook --- You find our storybook at diff --git a/docs/dls/design.md b/docs/dls/design.md index b434fc8791..1f83c2b644 100644 --- a/docs/dls/design.md +++ b/docs/dls/design.md @@ -1,6 +1,7 @@ --- id: design title: Design +description: Documentation on Design --- ![header](../assets/dls/designheader-updated.png) diff --git a/docs/dls/figma.md b/docs/dls/figma.md index 14de2f5980..b4cbead246 100644 --- a/docs/dls/figma.md +++ b/docs/dls/figma.md @@ -1,6 +1,7 @@ --- id: figma title: Figma +description: Documentation on Using Figma to build your own plugins for Backstage --- We have a [Figma component library](https://www.figma.com/@backstage) that you diff --git a/docs/features/software-catalog/api.md b/docs/features/software-catalog/api.md index 332c1e505b..f7c7b19112 100644 --- a/docs/features/software-catalog/api.md +++ b/docs/features/software-catalog/api.md @@ -1,6 +1,7 @@ --- id: software-catalog-api title: API +description: Documentation on Software Catalog API --- ## TODO diff --git a/docs/features/software-catalog/configuration.md b/docs/features/software-catalog/configuration.md index be6314e494..0bcfaabe0a 100644 --- a/docs/features/software-catalog/configuration.md +++ b/docs/features/software-catalog/configuration.md @@ -1,6 +1,7 @@ --- id: software-catalog-configuration title: Catalog Configuration +description: Documentation on Software Catalog Configuration --- ## Static Location Configuration diff --git a/docs/features/software-catalog/descriptor-format.md b/docs/features/software-catalog/descriptor-format.md index fa4b8c23da..6491e96516 100644 --- a/docs/features/software-catalog/descriptor-format.md +++ b/docs/features/software-catalog/descriptor-format.md @@ -2,6 +2,7 @@ id: descriptor-format title: Descriptor Format of Catalog Entities sidebar_label: YAML File Format +description: Documentation on Descriptor Format of Catalog Entities which describes the default data shape and semantics of catalog entities --- This section describes the default data shape and semantics of catalog entities. diff --git a/docs/features/software-catalog/extending-the-model.md b/docs/features/software-catalog/extending-the-model.md index 8b621f2e44..4e8a357ea7 100644 --- a/docs/features/software-catalog/extending-the-model.md +++ b/docs/features/software-catalog/extending-the-model.md @@ -1,6 +1,7 @@ --- id: extending-the-model title: Extending the model +description: Documentation on Extending the model --- Backstage natively supports tracking of the following component diff --git a/docs/features/software-catalog/external-integrations.md b/docs/features/software-catalog/external-integrations.md index 7ca869cdae..a035df0adc 100644 --- a/docs/features/software-catalog/external-integrations.md +++ b/docs/features/software-catalog/external-integrations.md @@ -1,6 +1,7 @@ --- id: external-integrations title: External integrations +description: Documentation on External integrations to integrate systems with Backstage --- Backstage natively supports storing software components in diff --git a/docs/features/software-catalog/index.md b/docs/features/software-catalog/index.md index 9b5de16472..097988e48e 100644 --- a/docs/features/software-catalog/index.md +++ b/docs/features/software-catalog/index.md @@ -2,6 +2,8 @@ id: software-catalog-overview title: Backstage Service Catalog (alpha) sidebar_label: Overview +description: The Backstage Service Catalog — actually, a software catalog, since it includes more than just services — is a centralized system that keeps track of ownership and metadata for all the software in your ecosystem (services, websites, +libraries, data pipelines, etc) --- ## What is a Service Catalog? diff --git a/docs/features/software-catalog/installation.md b/docs/features/software-catalog/installation.md index 85598a2025..a825020eb6 100644 --- a/docs/features/software-catalog/installation.md +++ b/docs/features/software-catalog/installation.md @@ -1,6 +1,7 @@ --- id: installation title: Installing in your Backstage App +description: Documentation on How to install Backstage Plugin --- The catalog plugin comes in two packages, `@backstage/plugin-catalog` and diff --git a/docs/features/software-catalog/system-model.md b/docs/features/software-catalog/system-model.md index 4436f60fc2..44dac13d65 100644 --- a/docs/features/software-catalog/system-model.md +++ b/docs/features/software-catalog/system-model.md @@ -1,6 +1,7 @@ --- id: system-model title: System Model +description: Documentation on System Model --- We believe that a strong shared understanding and terminology around software diff --git a/docs/features/software-catalog/well-known-annotations.md b/docs/features/software-catalog/well-known-annotations.md index 18de63d704..4bf6ddd719 100644 --- a/docs/features/software-catalog/well-known-annotations.md +++ b/docs/features/software-catalog/well-known-annotations.md @@ -2,6 +2,7 @@ id: well-known-annotations title: Well-known Annotations on Catalog Entities sidebar_label: Well-known Annotations +description: Documentation on lists a number of well known Annotations, that have defined semantics. They can be attached to catalog entities and consumed by plugins as needed --- This section lists a number of well known diff --git a/docs/features/software-templates/adding-templates.md b/docs/features/software-templates/adding-templates.md index 1472986c2a..fad5c68e41 100644 --- a/docs/features/software-templates/adding-templates.md +++ b/docs/features/software-templates/adding-templates.md @@ -1,6 +1,7 @@ --- id: adding-templates title: Adding your own Templates +description: Documentation on Adding your own Templates --- Templates are stored in the **Service Catalog** under a kind `Template`. The diff --git a/docs/features/software-templates/extending/create-your-own-preparer.md b/docs/features/software-templates/extending/create-your-own-preparer.md index 0b3fb31323..14c75b0ffb 100644 --- a/docs/features/software-templates/extending/create-your-own-preparer.md +++ b/docs/features/software-templates/extending/create-your-own-preparer.md @@ -1,6 +1,7 @@ --- id: extending-preparer title: Create your own Preparer +description: Documentation on Creating your own Preparer --- Preparers are responsible for reading the location of the definition of a diff --git a/docs/features/software-templates/extending/create-your-own-publisher.md b/docs/features/software-templates/extending/create-your-own-publisher.md index 111125b49f..25d7bcf676 100644 --- a/docs/features/software-templates/extending/create-your-own-publisher.md +++ b/docs/features/software-templates/extending/create-your-own-publisher.md @@ -1,6 +1,7 @@ --- id: extending-publisher title: Create your own Publisher +description: Documentation on Creating your own Publisher --- Publishers are responsible for pushing and storing the templated skeleton after diff --git a/docs/features/software-templates/extending/create-your-own-templater.md b/docs/features/software-templates/extending/create-your-own-templater.md index 9dee66af06..36c362b9c3 100644 --- a/docs/features/software-templates/extending/create-your-own-templater.md +++ b/docs/features/software-templates/extending/create-your-own-templater.md @@ -1,6 +1,7 @@ --- id: extending-templater title: Creating your own Templater +description: Documentation on Creating your own Templater --- Templaters are responsible for taking the directory path for the skeleton diff --git a/docs/features/software-templates/index.md b/docs/features/software-templates/index.md index 86493c0120..2a1fbf981e 100644 --- a/docs/features/software-templates/index.md +++ b/docs/features/software-templates/index.md @@ -2,6 +2,7 @@ id: software-templates-index title: Backstage Software Templates sidebar_label: Overview +description: The Software Templates part of Backstage is a tool that can help you create Components inside Backstage --- The Software Templates part of Backstage is a tool that can help you create diff --git a/docs/features/software-templates/installation.md b/docs/features/software-templates/installation.md index eea78e3571..3a51014864 100644 --- a/docs/features/software-templates/installation.md +++ b/docs/features/software-templates/installation.md @@ -1,6 +1,7 @@ --- id: installation title: Installing in your Backstage App +description: Documentation on How to install Backstage App --- The scaffolder plugin comes in two packages, `@backstage/plugin-scaffolder` and diff --git a/docs/features/techdocs/FAQ.md b/docs/features/techdocs/FAQ.md index cae0288889..5d6c9136d9 100644 --- a/docs/features/techdocs/FAQ.md +++ b/docs/features/techdocs/FAQ.md @@ -2,6 +2,7 @@ id: faqs title: TechDocs FAQ sidebar_label: FAQ +description: This page answers frequently asked questions about TechDocs --- This page answers frequently asked questions about [TechDocs](README.md). diff --git a/docs/features/techdocs/README.md b/docs/features/techdocs/README.md index 03f3d452f4..dc9879df29 100644 --- a/docs/features/techdocs/README.md +++ b/docs/features/techdocs/README.md @@ -2,6 +2,7 @@ id: techdocs-overview title: TechDocs Documentation sidebar_label: Overview +description: TechDocs is Spotify’s homegrown docs-like-code solution built directly into Backstage. --- ## What is it? diff --git a/docs/features/techdocs/architecture.md b/docs/features/techdocs/architecture.md index 4e063a8559..926ec238e1 100644 --- a/docs/features/techdocs/architecture.md +++ b/docs/features/techdocs/architecture.md @@ -1,6 +1,7 @@ --- id: architecture title: Architecture +description: Documentation on Architecture --- ![TechDocs Big Picture](../../assets/techdocs/techdocs_big_picture.png) diff --git a/docs/features/techdocs/concepts.md b/docs/features/techdocs/concepts.md index 8f5558c0f8..29b3d1a520 100644 --- a/docs/features/techdocs/concepts.md +++ b/docs/features/techdocs/concepts.md @@ -1,6 +1,7 @@ --- id: concepts title: Concepts +description: Documentation on concepts that are introduced with Spotify's docs-like-code solution in Backstage --- This page describes concepts that are introduced with Spotify's docs-like-code diff --git a/docs/features/techdocs/creating-and-publishing.md b/docs/features/techdocs/creating-and-publishing.md index 9d93eda9bc..b48133d627 100644 --- a/docs/features/techdocs/creating-and-publishing.md +++ b/docs/features/techdocs/creating-and-publishing.md @@ -2,6 +2,7 @@ id: creating-and-publishing title: Creating and publishing your docs sidebar_label: Creating and Publishing Documentation +description: Guidance on How to Create and Publish Documentation --- This section will guide you through: diff --git a/docs/features/techdocs/getting-started.md b/docs/features/techdocs/getting-started.md index 174894b020..d8c836c970 100644 --- a/docs/features/techdocs/getting-started.md +++ b/docs/features/techdocs/getting-started.md @@ -1,6 +1,7 @@ --- id: getting-started title: Getting Started +description: Getting Started Guidelines --- TechDocs functions as a plugin to Backstage, so you will need to use Backstage diff --git a/docs/getting-started/app-custom-theme.md b/docs/getting-started/app-custom-theme.md index e555c6b52d..97876c2ba1 100644 --- a/docs/getting-started/app-custom-theme.md +++ b/docs/getting-started/app-custom-theme.md @@ -1,6 +1,7 @@ --- id: app-custom-theme title: Customize the look-and-feel of your App +description: Documentation on Customizing look and feel of the App --- Backstage ships with a default theme with a light and dark mode variant. The diff --git a/docs/getting-started/configure-app-with-plugins.md b/docs/getting-started/configure-app-with-plugins.md index 515b52afa7..1d02f147c1 100644 --- a/docs/getting-started/configure-app-with-plugins.md +++ b/docs/getting-started/configure-app-with-plugins.md @@ -1,6 +1,7 @@ --- id: configure-app-with-plugins title: Configuring App with plugins +description: Documentation on How Configuring App with plugins --- ## Adding existing plugins to your app diff --git a/docs/getting-started/create-an-app.md b/docs/getting-started/create-an-app.md index cebf3f5de2..452e90add5 100644 --- a/docs/getting-started/create-an-app.md +++ b/docs/getting-started/create-an-app.md @@ -1,6 +1,7 @@ --- id: create-an-app title: Create an App +description: Documentation on Creating an App --- To get set up quickly with your own Backstage project you can create a Backstage diff --git a/docs/getting-started/deployment-k8s.md b/docs/getting-started/deployment-k8s.md index 2a184779e2..ddcbd290c6 100644 --- a/docs/getting-started/deployment-k8s.md +++ b/docs/getting-started/deployment-k8s.md @@ -1,6 +1,7 @@ --- id: deployment-k8s title: Kubernetes +description: Documentation on Kubernetes and K8s Deployment --- Coming soon! diff --git a/docs/getting-started/deployment-other.md b/docs/getting-started/deployment-other.md index d3fb9d932b..2cd9708e2a 100644 --- a/docs/getting-started/deployment-other.md +++ b/docs/getting-started/deployment-other.md @@ -1,6 +1,7 @@ --- id: deployment-other title: Other +description: Documentation on different ways of Deployment --- ## Deploying Locally diff --git a/docs/getting-started/development-environment.md b/docs/getting-started/development-environment.md index 9c75c8eabf..f1399c3c1a 100644 --- a/docs/getting-started/development-environment.md +++ b/docs/getting-started/development-environment.md @@ -1,6 +1,7 @@ --- id: development-environment title: Development Environment +description: Documentation on how to get set up for doing development on the Backstage repository --- This section describes how to get set up for doing development on the Backstage diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index c528ad34ad..a9ac770f90 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -1,6 +1,7 @@ --- id: index title: Getting Started +description: Documentation on How to get started with Backstage --- There are two different ways to get started with Backstage, either by creating a diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md index a4f91b6e95..3b11d2b8e1 100644 --- a/docs/getting-started/installation.md +++ b/docs/getting-started/installation.md @@ -1,6 +1,7 @@ --- id: installation title: Installation +description: Documentation on Installation --- Coming soon! diff --git a/docs/getting-started/running-backstage-locally.md b/docs/getting-started/running-backstage-locally.md index 08d2ab385b..b784c52bf3 100644 --- a/docs/getting-started/running-backstage-locally.md +++ b/docs/getting-started/running-backstage-locally.md @@ -1,6 +1,7 @@ --- id: running-backstage-locally title: Running Backstage Locally +description: Documentation on How to run Backstage Locally --- First make sure you are using NodeJS with an Active LTS Release, currently v12. diff --git a/docs/overview/adopting.md b/docs/overview/adopting.md index 893eac6398..96f7a614d2 100644 --- a/docs/overview/adopting.md +++ b/docs/overview/adopting.md @@ -1,6 +1,8 @@ --- id: adopting title: Strategies for adopting +description: Documentation on some general best practices that have been key to +Backstage's success inside Spotify --- This document outlines some general best practices that have been key to diff --git a/docs/overview/architecture-overview.md b/docs/overview/architecture-overview.md index 55a1aeec04..f2c6dad61f 100644 --- a/docs/overview/architecture-overview.md +++ b/docs/overview/architecture-overview.md @@ -1,6 +1,7 @@ --- id: architecture-overview title: Architecture overview +description: Documentation on Architecture overview --- ## Overview diff --git a/docs/overview/architecture-terminology.md b/docs/overview/architecture-terminology.md index aee581f927..092ca7fb01 100644 --- a/docs/overview/architecture-terminology.md +++ b/docs/overview/architecture-terminology.md @@ -1,6 +1,7 @@ --- id: architecture-terminology title: Architecture terminology +description: Documentation on Architecture terminology --- Backstage is constructed out of three parts. We separate Backstage in this way diff --git a/docs/overview/background.md b/docs/overview/background.md index ef226653fb..486260bac3 100644 --- a/docs/overview/background.md +++ b/docs/overview/background.md @@ -1,6 +1,7 @@ --- id: background title: The Spotify Story +description: Documentation on Background and Story behind making of Backstage --- Backstage was born out of necessity at Spotify. We found that as we grew, our diff --git a/docs/overview/logos.md b/docs/overview/logos.md index 39071ed793..2a684420bc 100644 --- a/docs/overview/logos.md +++ b/docs/overview/logos.md @@ -2,6 +2,7 @@ id: logos title: Logos sidebar_label: Logo assets +description: Guidelines for how to use the Backstage logos and icons --- Guidelines for how to use the Backstage logo and icon can be found diff --git a/docs/overview/roadmap.md b/docs/overview/roadmap.md index 5a06f4544f..d6c1d2d641 100644 --- a/docs/overview/roadmap.md +++ b/docs/overview/roadmap.md @@ -1,6 +1,7 @@ --- id: roadmap title: Project roadmap +description: Roadmap of Backstage Project --- ## Current status diff --git a/docs/overview/support.md b/docs/overview/support.md index 9e4e9eca15..6e00c17fab 100644 --- a/docs/overview/support.md +++ b/docs/overview/support.md @@ -1,6 +1,7 @@ --- id: support title: Support and community +description: Support and Community Details and Links --- - [Discord chatroom](https://discord.gg/MUpMjP2) - Get support or discuss the diff --git a/docs/overview/vision.md b/docs/overview/vision.md index 2ab7cdc6f4..f6e389e245 100644 --- a/docs/overview/vision.md +++ b/docs/overview/vision.md @@ -1,6 +1,7 @@ --- id: vision title: Vision +description: Goal is to provide engineers with the best developer experience in the world --- Our goal is to provide engineers with the best developer experience in the diff --git a/docs/overview/what-is-backstage.md b/docs/overview/what-is-backstage.md index 96e89618a8..0deba70d73 100644 --- a/docs/overview/what-is-backstage.md +++ b/docs/overview/what-is-backstage.md @@ -1,6 +1,7 @@ --- id: what-is-backstage title: What is Backstage? +description: Backsatge is an open platform for building developer portals. Powered by a centralized service catalog, Backstage restores order to your microservices and infrastructure --- ![service-catalog](https://backstage.io/blog/assets/6/header.png) diff --git a/docs/plugins/add-to-marketplace.md b/docs/plugins/add-to-marketplace.md index d85807a226..59cca07bff 100644 --- a/docs/plugins/add-to-marketplace.md +++ b/docs/plugins/add-to-marketplace.md @@ -1,6 +1,7 @@ --- id: add-to-marketplace title: Add to Marketplace +description: Documentation on Adding Plugin to Marketplace --- ## Adding a Plugin to the Marketplace diff --git a/docs/plugins/backend-plugin.md b/docs/plugins/backend-plugin.md index 986af66c20..516ba4b111 100644 --- a/docs/plugins/backend-plugin.md +++ b/docs/plugins/backend-plugin.md @@ -1,6 +1,7 @@ --- id: backend-plugin title: Backend plugin +description: Documentation on Backend plugin --- ## TODO diff --git a/docs/plugins/call-existing-api.md b/docs/plugins/call-existing-api.md index 9658176224..14ea4c1f5a 100644 --- a/docs/plugins/call-existing-api.md +++ b/docs/plugins/call-existing-api.md @@ -1,6 +1,8 @@ --- id: call-existing-api title: Call Existing API +description: Describes the various options that Backstage frontend plugins have, +in communicating with service APIs that already exist --- This article describes the various options that Backstage frontend plugins have, diff --git a/docs/plugins/create-a-plugin.md b/docs/plugins/create-a-plugin.md index 4bcc4da387..bcb86024fd 100644 --- a/docs/plugins/create-a-plugin.md +++ b/docs/plugins/create-a-plugin.md @@ -1,6 +1,7 @@ --- id: create-a-plugin title: Create a Backstage Plugin +description: Documentation on How to Create a Backstage Plugin --- A Backstage Plugin adds functionality to Backstage. diff --git a/docs/plugins/existing-plugins.md b/docs/plugins/existing-plugins.md index 8598ae02c4..01460b8101 100644 --- a/docs/plugins/existing-plugins.md +++ b/docs/plugins/existing-plugins.md @@ -1,6 +1,7 @@ --- id: existing-plugins title: Existing plugins +description: Lists of open source Existing plugins --- ## Open source plugins diff --git a/docs/plugins/index.md b/docs/plugins/index.md index 5aaf8acadf..8a61aeee80 100644 --- a/docs/plugins/index.md +++ b/docs/plugins/index.md @@ -1,6 +1,7 @@ --- id: index title: Intro to plugins +description: Documentation on Introduction to Plugins --- Backstage is a single-page application composed of a set of plugins. diff --git a/docs/plugins/integrating-plugin-into-service-catalog.md b/docs/plugins/integrating-plugin-into-service-catalog.md index 4408c27ccc..51d2331140 100644 --- a/docs/plugins/integrating-plugin-into-service-catalog.md +++ b/docs/plugins/integrating-plugin-into-service-catalog.md @@ -1,6 +1,7 @@ --- id: integrating-plugin-into-service-catalog title: Integrate into the Service Catalog +description: Documentation on How to integrate plugin into service catalog --- > This is an advanced use case and currently is an experimental feature. Expect diff --git a/docs/plugins/plugin-development.md b/docs/plugins/plugin-development.md index faf3c6ddbd..c5d9763f7d 100644 --- a/docs/plugins/plugin-development.md +++ b/docs/plugins/plugin-development.md @@ -1,6 +1,7 @@ --- id: plugin-development title: Plugin Development +description: Documentation on Plugin Development --- Backstage plugins provide features to a Backstage App. diff --git a/docs/plugins/proxying.md b/docs/plugins/proxying.md index 1951f41763..2f809ffd10 100644 --- a/docs/plugins/proxying.md +++ b/docs/plugins/proxying.md @@ -1,6 +1,7 @@ --- id: proxying title: Proxying +description: Documentation on Proxying --- ## Overview diff --git a/docs/plugins/publish-private.md b/docs/plugins/publish-private.md index 6361f70854..d04449d465 100644 --- a/docs/plugins/publish-private.md +++ b/docs/plugins/publish-private.md @@ -1,6 +1,7 @@ --- id: publish-private title: Publish private +description: Documentation on How to Publish private --- ## TODO diff --git a/docs/plugins/publishing.md b/docs/plugins/publishing.md index 6fee4f9b1d..0ed85e8cdc 100644 --- a/docs/plugins/publishing.md +++ b/docs/plugins/publishing.md @@ -1,6 +1,7 @@ --- id: publishing title: Publishing +description: Documentation on Publishing NPM packages --- ## NPM diff --git a/docs/plugins/structure-of-a-plugin.md b/docs/plugins/structure-of-a-plugin.md index 20e72c539d..c93815ecd2 100644 --- a/docs/plugins/structure-of-a-plugin.md +++ b/docs/plugins/structure-of-a-plugin.md @@ -1,6 +1,7 @@ --- id: structure-of-a-plugin title: Structure of a Plugin +description: Details about Structure of a Plugin --- Nice, you have a new plugin! We'll soon see how we can develop it into doing diff --git a/docs/plugins/testing.md b/docs/plugins/testing.md index 110bc97515..696f8b1368 100644 --- a/docs/plugins/testing.md +++ b/docs/plugins/testing.md @@ -1,6 +1,7 @@ --- id: testing title: Testing with Jest +description: Documentation on How to do unit testing with Jest --- Backstage uses [Jest](https://facebook.github.io/jest/) for all our unit testing diff --git a/docs/reference/createPlugin-feature-flags.md b/docs/reference/createPlugin-feature-flags.md index bc38656939..ebb8a6b503 100644 --- a/docs/reference/createPlugin-feature-flags.md +++ b/docs/reference/createPlugin-feature-flags.md @@ -1,6 +1,7 @@ --- id: createPlugin-feature-flags title: createPlugin - feature flags +description: Documentation on createPlugin - feature flags --- The `featureFlags` object passed to the `register` function makes it possible diff --git a/docs/reference/createPlugin-router.md b/docs/reference/createPlugin-router.md index 361b485df9..89ee44e558 100644 --- a/docs/reference/createPlugin-router.md +++ b/docs/reference/createPlugin-router.md @@ -1,6 +1,7 @@ --- id: createPlugin-router title: createPlugin - router +description: Documentation on createPlugin - router --- The router that is passed to the `register` function makes it possible for diff --git a/docs/reference/createPlugin.md b/docs/reference/createPlugin.md index 0cabe63b39..45e3303124 100644 --- a/docs/reference/createPlugin.md +++ b/docs/reference/createPlugin.md @@ -1,6 +1,7 @@ --- id: createPlugin title: createPlugin +description: Documentation on createPlugin --- Taking a plugin config as argument and returns a new plugin. diff --git a/docs/tutorials/journey.md b/docs/tutorials/journey.md index 3c399c53ba..ea3e17446a 100644 --- a/docs/tutorials/journey.md +++ b/docs/tutorials/journey.md @@ -1,6 +1,7 @@ --- id: journey title: Future developer journey +description: Document describes a possible journey of a future Backstage plugin developer --- > This document describes a possible journey of a **_future_** Backstage plugin From 812da7539fdd87dbba668289ebcc2567111ad947 Mon Sep 17 00:00:00 2001 From: Rajiv Ranjan Singh Date: Wed, 16 Sep 2020 21:56:32 +0530 Subject: [PATCH 643/656] added description header field --- docs/architecture-decisions/adr001-add-adr-log.md | 2 +- docs/architecture-decisions/index.md | 2 +- docs/auth/oauth.md | 3 +-- docs/dls/design.md | 2 +- docs/features/software-catalog/index.md | 3 +-- docs/features/techdocs/README.md | 2 +- docs/overview/adopting.md | 3 +-- 7 files changed, 7 insertions(+), 10 deletions(-) diff --git a/docs/architecture-decisions/adr001-add-adr-log.md b/docs/architecture-decisions/adr001-add-adr-log.md index eef5f62820..453905ab7a 100644 --- a/docs/architecture-decisions/adr001-add-adr-log.md +++ b/docs/architecture-decisions/adr001-add-adr-log.md @@ -2,7 +2,7 @@ id: adrs-adr001 title: ADR001: Architecture Decision Record (ADR) log sidebar_label: ADR001 -description: Architecture Decision Record (ADR) logs as a reference point for the team. +description: Architecture Decision Record (ADR) logs as a reference point for the team --- | Created | Status | diff --git a/docs/architecture-decisions/index.md b/docs/architecture-decisions/index.md index dfdbeb0849..ddf2805e75 100644 --- a/docs/architecture-decisions/index.md +++ b/docs/architecture-decisions/index.md @@ -2,7 +2,7 @@ id: adrs-overview title: Architecture Decision Records (ADR) sidebar_label: Overview -description: +description: Overview of Architecture Decision Records (ADR) --- The substantial architecture decisions made in the Backstage project live here. diff --git a/docs/auth/oauth.md b/docs/auth/oauth.md index a6e2ce7269..8f61b5ef33 100644 --- a/docs/auth/oauth.md +++ b/docs/auth/oauth.md @@ -1,8 +1,7 @@ --- id: oauth title: OAuth and OpenID Connect -description: This section describes how Backstage allows plugins to request OAuth Access Tokens and OpenID Connect ID Tokens on behalf of the user, to be used for auth -to various third party APIs. +description: This section describes how Backstage allows plugins to request OAuth Access Tokens and OpenID Connect ID Tokens on behalf of the user, to be used for auth to various third party APIs --- This section describes how Backstage allows plugins to request OAuth Access diff --git a/docs/dls/design.md b/docs/dls/design.md index 1f83c2b644..fa3a0c159e 100644 --- a/docs/dls/design.md +++ b/docs/dls/design.md @@ -1,7 +1,7 @@ --- id: design title: Design -description: Documentation on Design +description: Documentation on Design --- ![header](../assets/dls/designheader-updated.png) diff --git a/docs/features/software-catalog/index.md b/docs/features/software-catalog/index.md index 097988e48e..cc8262b3ae 100644 --- a/docs/features/software-catalog/index.md +++ b/docs/features/software-catalog/index.md @@ -2,8 +2,7 @@ id: software-catalog-overview title: Backstage Service Catalog (alpha) sidebar_label: Overview -description: The Backstage Service Catalog — actually, a software catalog, since it includes more than just services — is a centralized system that keeps track of ownership and metadata for all the software in your ecosystem (services, websites, -libraries, data pipelines, etc) +description: The Backstage Service Catalog — actually, a software catalog, since it includes more than just services --- ## What is a Service Catalog? diff --git a/docs/features/techdocs/README.md b/docs/features/techdocs/README.md index dc9879df29..7f3330d429 100644 --- a/docs/features/techdocs/README.md +++ b/docs/features/techdocs/README.md @@ -2,7 +2,7 @@ id: techdocs-overview title: TechDocs Documentation sidebar_label: Overview -description: TechDocs is Spotify’s homegrown docs-like-code solution built directly into Backstage. +description: TechDocs is Spotify’s homegrown docs-like-code solution built directly into Backstage --- ## What is it? diff --git a/docs/overview/adopting.md b/docs/overview/adopting.md index 96f7a614d2..1179eef50e 100644 --- a/docs/overview/adopting.md +++ b/docs/overview/adopting.md @@ -1,8 +1,7 @@ --- id: adopting title: Strategies for adopting -description: Documentation on some general best practices that have been key to -Backstage's success inside Spotify +description: Documentation on some general best practices that have been key to Backstage's success inside Spotify --- This document outlines some general best practices that have been key to From d833cd9fe8e7c49c59f2ef6630143f22ce0410e8 Mon Sep 17 00:00:00 2001 From: Rajiv Ranjan Singh Date: Wed, 16 Sep 2020 22:14:28 +0530 Subject: [PATCH 644/656] added description header field --- docs/auth/oauth.md | 4 +++- docs/dls/figma.md | 3 ++- docs/features/software-catalog/descriptor-format.md | 3 ++- docs/features/software-catalog/external-integrations.md | 3 ++- docs/features/software-catalog/index.md | 3 ++- docs/features/software-catalog/well-known-annotations.md | 4 +++- docs/features/software-templates/index.md | 3 ++- docs/features/techdocs/README.md | 3 ++- docs/overview/vision.md | 3 ++- docs/overview/what-is-backstage.md | 3 ++- 10 files changed, 22 insertions(+), 10 deletions(-) diff --git a/docs/auth/oauth.md b/docs/auth/oauth.md index 8f61b5ef33..acd8a2542a 100644 --- a/docs/auth/oauth.md +++ b/docs/auth/oauth.md @@ -1,7 +1,9 @@ --- id: oauth title: OAuth and OpenID Connect -description: This section describes how Backstage allows plugins to request OAuth Access Tokens and OpenID Connect ID Tokens on behalf of the user, to be used for auth to various third party APIs +description: This section describes how Backstage allows plugins to request +OAuth Access Tokens and OpenID Connect ID Tokens on behalf of the user, to be +used for auth to various third party APIs --- This section describes how Backstage allows plugins to request OAuth Access diff --git a/docs/dls/figma.md b/docs/dls/figma.md index b4cbead246..d295234b37 100644 --- a/docs/dls/figma.md +++ b/docs/dls/figma.md @@ -1,7 +1,8 @@ --- id: figma title: Figma -description: Documentation on Using Figma to build your own plugins for Backstage +description: Documentation on Using Figma to build your own plugins for +Backstage --- We have a [Figma component library](https://www.figma.com/@backstage) that you diff --git a/docs/features/software-catalog/descriptor-format.md b/docs/features/software-catalog/descriptor-format.md index 6491e96516..cff5755a0f 100644 --- a/docs/features/software-catalog/descriptor-format.md +++ b/docs/features/software-catalog/descriptor-format.md @@ -2,7 +2,8 @@ id: descriptor-format title: Descriptor Format of Catalog Entities sidebar_label: YAML File Format -description: Documentation on Descriptor Format of Catalog Entities which describes the default data shape and semantics of catalog entities +description: Documentation on Descriptor Format of Catalog Entities which +describes the default data shape and semantics of catalog entities --- This section describes the default data shape and semantics of catalog entities. diff --git a/docs/features/software-catalog/external-integrations.md b/docs/features/software-catalog/external-integrations.md index a035df0adc..00a9d95fc2 100644 --- a/docs/features/software-catalog/external-integrations.md +++ b/docs/features/software-catalog/external-integrations.md @@ -1,7 +1,8 @@ --- id: external-integrations title: External integrations -description: Documentation on External integrations to integrate systems with Backstage +description: Documentation on External integrations to integrate systems +with Backstage --- Backstage natively supports storing software components in diff --git a/docs/features/software-catalog/index.md b/docs/features/software-catalog/index.md index cc8262b3ae..49a490d78b 100644 --- a/docs/features/software-catalog/index.md +++ b/docs/features/software-catalog/index.md @@ -2,7 +2,8 @@ id: software-catalog-overview title: Backstage Service Catalog (alpha) sidebar_label: Overview -description: The Backstage Service Catalog — actually, a software catalog, since it includes more than just services +description: The Backstage Service Catalog — actually, a software catalog, since +it includes more than just services --- ## What is a Service Catalog? diff --git a/docs/features/software-catalog/well-known-annotations.md b/docs/features/software-catalog/well-known-annotations.md index 4bf6ddd719..4ba941efc7 100644 --- a/docs/features/software-catalog/well-known-annotations.md +++ b/docs/features/software-catalog/well-known-annotations.md @@ -2,7 +2,9 @@ id: well-known-annotations title: Well-known Annotations on Catalog Entities sidebar_label: Well-known Annotations -description: Documentation on lists a number of well known Annotations, that have defined semantics. They can be attached to catalog entities and consumed by plugins as needed +description: Documentation on lists a number of well known Annotations, that +have defined semantics. They can be attached to catalog entities and consumed +by plugins as needed --- This section lists a number of well known diff --git a/docs/features/software-templates/index.md b/docs/features/software-templates/index.md index 2a1fbf981e..d3c6aaaa4e 100644 --- a/docs/features/software-templates/index.md +++ b/docs/features/software-templates/index.md @@ -2,7 +2,8 @@ id: software-templates-index title: Backstage Software Templates sidebar_label: Overview -description: The Software Templates part of Backstage is a tool that can help you create Components inside Backstage +description: The Software Templates part of Backstage is a tool that can help +you create Components inside Backstage --- The Software Templates part of Backstage is a tool that can help you create diff --git a/docs/features/techdocs/README.md b/docs/features/techdocs/README.md index 7f3330d429..aa97506edb 100644 --- a/docs/features/techdocs/README.md +++ b/docs/features/techdocs/README.md @@ -2,7 +2,8 @@ id: techdocs-overview title: TechDocs Documentation sidebar_label: Overview -description: TechDocs is Spotify’s homegrown docs-like-code solution built directly into Backstage +description: TechDocs is Spotify’s homegrown docs-like-code solution built +directly into Backstage --- ## What is it? diff --git a/docs/overview/vision.md b/docs/overview/vision.md index f6e389e245..df75a4f0a6 100644 --- a/docs/overview/vision.md +++ b/docs/overview/vision.md @@ -1,7 +1,8 @@ --- id: vision title: Vision -description: Goal is to provide engineers with the best developer experience in the world +description: Goal is to provide engineers with the best developer experience in +the world --- Our goal is to provide engineers with the best developer experience in the diff --git a/docs/overview/what-is-backstage.md b/docs/overview/what-is-backstage.md index 0deba70d73..0d16943c9b 100644 --- a/docs/overview/what-is-backstage.md +++ b/docs/overview/what-is-backstage.md @@ -1,7 +1,8 @@ --- id: what-is-backstage title: What is Backstage? -description: Backsatge is an open platform for building developer portals. Powered by a centralized service catalog, Backstage restores order to your microservices and infrastructure +description: Backsatge is an open platform for building developer portals. +Powered by a centralized service catalog, Backstage restores order to your microservices and infrastructure --- ![service-catalog](https://backstage.io/blog/assets/6/header.png) From ff65589796ef8fbd7724e9eef54e61e62779143f Mon Sep 17 00:00:00 2001 From: Rajiv Ranjan Singh Date: Wed, 16 Sep 2020 23:06:14 +0530 Subject: [PATCH 645/656] added description header field --- docs/features/techdocs/concepts.md | 3 ++- docs/overview/adopting.md | 3 ++- docs/tutorials/journey.md | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/features/techdocs/concepts.md b/docs/features/techdocs/concepts.md index 29b3d1a520..e5bb1e06cd 100644 --- a/docs/features/techdocs/concepts.md +++ b/docs/features/techdocs/concepts.md @@ -1,7 +1,8 @@ --- id: concepts title: Concepts -description: Documentation on concepts that are introduced with Spotify's docs-like-code solution in Backstage +description: Documentation on concepts that are introduced with Spotify's docs +like code solution in Backstage --- This page describes concepts that are introduced with Spotify's docs-like-code diff --git a/docs/overview/adopting.md b/docs/overview/adopting.md index 1179eef50e..422adfb288 100644 --- a/docs/overview/adopting.md +++ b/docs/overview/adopting.md @@ -1,7 +1,8 @@ --- id: adopting title: Strategies for adopting -description: Documentation on some general best practices that have been key to Backstage's success inside Spotify +description: Documentation on some general best practices that have been key +to Backstage's success inside Spotify --- This document outlines some general best practices that have been key to diff --git a/docs/tutorials/journey.md b/docs/tutorials/journey.md index ea3e17446a..0f22e0ec01 100644 --- a/docs/tutorials/journey.md +++ b/docs/tutorials/journey.md @@ -1,7 +1,8 @@ --- id: journey title: Future developer journey -description: Document describes a possible journey of a future Backstage plugin developer +description: Document describes a possible journey of a future Backstage +plugin developer --- > This document describes a possible journey of a **_future_** Backstage plugin From b92b3779dbb42f842540f6edaa21c5ae60fc707c Mon Sep 17 00:00:00 2001 From: Rajiv Ranjan Singh Date: Wed, 16 Sep 2020 23:40:37 +0530 Subject: [PATCH 646/656] added description header field --- docs/getting-started/development-environment.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/getting-started/development-environment.md b/docs/getting-started/development-environment.md index f1399c3c1a..154a959f85 100644 --- a/docs/getting-started/development-environment.md +++ b/docs/getting-started/development-environment.md @@ -1,7 +1,8 @@ --- id: development-environment title: Development Environment -description: Documentation on how to get set up for doing development on the Backstage repository +description: Documentation on how to get set up for doing development on +the Backstage repository --- This section describes how to get set up for doing development on the Backstage From 3347cf16685d46ff667855ef157627a2cb48bcb3 Mon Sep 17 00:00:00 2001 From: Rajiv Ranjan Singh Date: Thu, 17 Sep 2020 00:14:06 +0530 Subject: [PATCH 647/656] grammar correction --- docs/dls/figma.md | 2 +- docs/features/techdocs/concepts.md | 3 +-- docs/features/techdocs/creating-and-publishing.md | 2 +- docs/plugins/existing-plugins.md | 2 +- docs/plugins/structure-of-a-plugin.md | 2 +- docs/tutorials/journey.md | 3 +-- 6 files changed, 6 insertions(+), 8 deletions(-) diff --git a/docs/dls/figma.md b/docs/dls/figma.md index d295234b37..c5a33d15c2 100644 --- a/docs/dls/figma.md +++ b/docs/dls/figma.md @@ -1,7 +1,7 @@ --- id: figma title: Figma -description: Documentation on Using Figma to build your own plugins for +description: Documentation on using Figma to build your own plugins for Backstage --- diff --git a/docs/features/techdocs/concepts.md b/docs/features/techdocs/concepts.md index e5bb1e06cd..29b3d1a520 100644 --- a/docs/features/techdocs/concepts.md +++ b/docs/features/techdocs/concepts.md @@ -1,8 +1,7 @@ --- id: concepts title: Concepts -description: Documentation on concepts that are introduced with Spotify's docs -like code solution in Backstage +description: Documentation on concepts that are introduced with Spotify's docs-like-code solution in Backstage --- This page describes concepts that are introduced with Spotify's docs-like-code diff --git a/docs/features/techdocs/creating-and-publishing.md b/docs/features/techdocs/creating-and-publishing.md index b48133d627..e1adedf25e 100644 --- a/docs/features/techdocs/creating-and-publishing.md +++ b/docs/features/techdocs/creating-and-publishing.md @@ -2,7 +2,7 @@ id: creating-and-publishing title: Creating and publishing your docs sidebar_label: Creating and Publishing Documentation -description: Guidance on How to Create and Publish Documentation +description: Guidance on how to create and publish documentation --- This section will guide you through: diff --git a/docs/plugins/existing-plugins.md b/docs/plugins/existing-plugins.md index 01460b8101..c1fbda379a 100644 --- a/docs/plugins/existing-plugins.md +++ b/docs/plugins/existing-plugins.md @@ -1,7 +1,7 @@ --- id: existing-plugins title: Existing plugins -description: Lists of open source Existing plugins +description: Lists of existing open source plugins --- ## Open source plugins diff --git a/docs/plugins/structure-of-a-plugin.md b/docs/plugins/structure-of-a-plugin.md index c93815ecd2..f061d2f4a8 100644 --- a/docs/plugins/structure-of-a-plugin.md +++ b/docs/plugins/structure-of-a-plugin.md @@ -1,7 +1,7 @@ --- id: structure-of-a-plugin title: Structure of a Plugin -description: Details about Structure of a Plugin +description: Details about structure of a plugin --- Nice, you have a new plugin! We'll soon see how we can develop it into doing diff --git a/docs/tutorials/journey.md b/docs/tutorials/journey.md index 0f22e0ec01..24765e8531 100644 --- a/docs/tutorials/journey.md +++ b/docs/tutorials/journey.md @@ -1,8 +1,7 @@ --- id: journey title: Future developer journey -description: Document describes a possible journey of a future Backstage -plugin developer +description: This document describes a possible journey of a future Backstage --- > This document describes a possible journey of a **_future_** Backstage plugin From e5b79755c0dc43d78f6569abd8b68a348ad50ce6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Sep 2020 21:50:53 +0200 Subject: [PATCH 648/656] chore(deps): bump nodegit from 0.26.5 to 0.27.0 (#2454) Bumps [nodegit](https://github.com/nodegit/nodegit) from 0.26.5 to 0.27.0. - [Release notes](https://github.com/nodegit/nodegit/releases) - [Changelog](https://github.com/nodegit/nodegit/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodegit/nodegit/compare/v0.26.5...v0.27.0) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- plugins/scaffolder-backend/package.json | 2 +- yarn.lock | 34 ++----------------------- 2 files changed, 3 insertions(+), 33 deletions(-) diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index b6f927bc61..dd758eaef0 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -38,7 +38,7 @@ "helmet": "^4.0.0", "jsonschema": "^1.2.6", "morgan": "^1.10.0", - "nodegit": "0.26.5", + "nodegit": "0.27.0", "uuid": "^8.2.0", "winston": "^3.2.1", "yaml": "^1.10.0" diff --git a/yarn.lock b/yarn.lock index 3da4f288c5..e60ed587a1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5796,7 +5796,7 @@ arrify@^1.0.1: resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= -asap@^2.0.0, asap@~2.0.3, asap@~2.0.6: +asap@^2.0.0, asap@~2.0.6: version "2.0.6" resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= @@ -15045,30 +15045,7 @@ node-request-interceptor@^0.3.5: debug "^4.1.1" headers-utils "^1.2.0" -nodegit-promise@~4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/nodegit-promise/-/nodegit-promise-4.0.0.tgz#5722b184f2df7327161064a791d2e842c9167b34" - integrity sha1-VyKxhPLfcycWEGSnkdLoQskWezQ= - dependencies: - asap "~2.0.3" - -nodegit@0.26.5: - version "0.26.5" - resolved "https://registry.npmjs.org/nodegit/-/nodegit-0.26.5.tgz#1534d8aaa52de7acfbbe18de28df2075de86f7d2" - integrity sha512-l9l2zhcJ0V7FYzPdXIsuJcXN8UnLuhQgM+377HJfCYE/eupL/OWtMVvUOq42F9dRsgC3bAYH9j2Xbwr0lpYVZQ== - dependencies: - fs-extra "^7.0.0" - json5 "^2.1.0" - lodash "^4.17.14" - nan "^2.14.0" - node-gyp "^4.0.0" - node-pre-gyp "^0.13.0" - promisify-node "~0.3.0" - ramda "^0.25.0" - request-promise-native "^1.0.5" - tar-fs "^1.16.3" - -nodegit@^0.27.0: +nodegit@0.27.0, nodegit@^0.27.0: version "0.27.0" resolved "https://registry.npmjs.org/nodegit/-/nodegit-0.27.0.tgz#4e8cc236f60e1c97324a5acff99056fe116a6ebe" integrity sha512-E9K4gPjWiA0b3Tx5lfWCzG7Cvodi2idl3V5UD2fZrOrHikIfrN7Fc2kWLtMUqqomyoToYJLeIC8IV7xb1CYRLA== @@ -16995,13 +16972,6 @@ promise@^8.0.3: dependencies: asap "~2.0.6" -promisify-node@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/promisify-node/-/promisify-node-0.3.0.tgz#b4b55acf90faa7d2b8b90ca396899086c03060cf" - integrity sha1-tLVaz5D6p9K4uQyjlomQhsAwYM8= - dependencies: - nodegit-promise "~4.0.0" - prompts@^2.0.1: version "2.3.2" resolved "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" From 19550ef1fd3ae065a0e6f109223fb1ab419f3b99 Mon Sep 17 00:00:00 2001 From: Rajiv Singh Date: Thu, 17 Sep 2020 01:23:24 +0530 Subject: [PATCH 649/656] Added PlantUML diagrams in backstage.io docs (#2413) * added Sequence Diagram * updated location for generated UML diagrams --- docs/{ => assets}/auth/oauth-popup-flow.svg | 6 +++--- docs/auth/oauth.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) rename docs/{ => assets}/auth/oauth-popup-flow.svg (98%) diff --git a/docs/auth/oauth-popup-flow.svg b/docs/assets/auth/oauth-popup-flow.svg similarity index 98% rename from docs/auth/oauth-popup-flow.svg rename to docs/assets/auth/oauth-popup-flow.svg index 4d9e79787a..2132903783 100644 --- a/docs/auth/oauth-popup-flow.svg +++ b/docs/assets/auth/oauth-popup-flow.svg @@ -1,5 +1,5 @@ -OAuth Consent and Refresh FlowBrowserBrowserPopup WindowPopup Windowauth-backend pluginauth-backend pluginConsent ScreenConsent ScreenOAuth ProviderOAuth ProviderComponents on page ask for anaccess token with greaterscope than the existing session.Open popupGET /auth/<provider>/start?scope=some%20scopesRedirect to consent screen withrandom nonce in OAuth state andshort-lived cookie with the same nonce.GET /consent_url?redirect_uri=<redirect_uri>?nonce=<n>where redirect_uri=<app-origin>/auth/<provider>/handler/frameUser consents toaccess the new scope.Redirect to given redirect URL, with authorization codeGET /auth/<provider>/handler/frame?code=<c>&nonce=<n>Request includes the previously set none cookieVerify that the nonce in the cookiematches the nonce in the OAuth stateAuthorization CodeClient IDClient SecretVerify and generate tokensAccess Token(ID Token)(Refresh Token)ScopeExpire TimeSmall HTML page with inlined response payloadStore Refresh Token in HTTP-only cookiepostMessage() with tokens and info or errorClose selfA later point when a refreshis needed. Either because ofa reload or an expiring session.GET /auth/<provider>/tokenRefresh Token cookie includedRefresh TokenClient IDClient SecretAccess Token(ID Token)ScopeExpire TimeTokens and info

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

iqKcN3=?vmTLf+H;|md`IJyBUgcAN8f`=qKkVja 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 z zzSDMz+`0!^t~nd362RF$86Lm-5e!IJ&3psD$qjqEH`5$Eft`K z?bu+BG0`?~9uqVxKgWcS7KF2j>)3dGHhlfl84W_8gm|${s5dzEMrqcPwPSl=<=?nO z-|1*(G*?Rpf>FAA0TBoPRpwj}Axk9yJ_wX{os`w<%Ab?Ffj4>{VbX_LYPOKo6NhnE zHhO5_wT;o6^}HwU;EvN5+ET^Q|p&y$b&fdj`E|5lh)-?SUVdS!& zm~&ue;o_tR>%dC&ui?EwuY0$}e;ZW*mpIT5<{0evK3yR4rB>hlA5trHFO1u%Woq#JF>!k0#I`{FXeRJ6NU4~x>+ZV^24BTy zaKd|@*DEW#a`=~oYI#Z#>!%BTZK01w&PlnOkZwto}oRdCN*HnsH1g<5Z?!k zquRO8UIWCXXKaBR>+Y}rIb*{6%M+)&Rc+FC0oEM!?v6jOasDF{6hnMTn_HfxSNpx^ z=pSz1Y6}H!uC}Y%!F9Q&jbMks3+n-WL_>!_gNgTfB--K&o9Lhh0qWW)piGOhoAuVw z!%p<{>#_a-C{FNZSr=twu^}x@9bl92)^id=3KQk4=y=biXipxD7$N>a|}9$ij% zce_4lm?emoPY;hkZgs|%Ah#H=%Uq@-O6+*RjEslS6%u%SPMF+xu?=Q4YM!h6#)G-( z)LtsSBRN=$U5K%kBwoY2<0p?!#<=<2d#1)Ww!Gv&Nb*d=MqY0(D->9+7sSVa-6r<2 zR+?m!T6K&LwVuLUSWj76I}R~zx16&)>1zobi`#z!%@(8nzo`V4uZ~fEk@>G|;oBxz z+hxn|UmN5Qb)y0^KsM0@v$}ZZA6539uBL>9C;LNjs`l1_nr`5=L6A?~YKvN5W;KQsMio=J)8+lK8PeSsP#5ph%rEFaUG@i*qU^vD zm4!=8)pi}E75Rxf?0dHaa8GW&oONKzR)D4#d|f-=Fl*h8J+d+_I&Zd*X}#n@Vb@P!7lciq*t_QYjYTpqH6_ zK}!K8p6h__xTWdvj_o;+IcA=5i$7xInJu4_*&I|xq7QJX@fXu9xHSR{9y;aY%p znn&cT*g+OqEzWqHYNb^tFnp?sgt7s(i7pee=B1alB#4)A@MUcm+D%+TBk zmTTPeD`!yOZRXp_1%G3Xud~lW3_N5YwLD+s>=%MI3$`bQeO4X3(k&SzK7jxOaLYM~ zl~({Tu#W;dp~HmLRWIRwxFUoIcU%jV`l{;Ayr3^A4txT}+sM;6?QNBs9?F>V_{cNw zNH8Jo_k3$8#T}~=l>_hN3V(nR1dX3aX*upQV=h1i#<;Og2ZB)i zA|sGhR;7cF0jnGcRBPt?%`&1@>E)(1YErn=M)v#7weExuZ(Wv}zx`*7uHWqgFmOvH zz|oMSLBE2rQEm|%2Rp^xpoY&Qz23`Y><_xJ?(74?4*@86ux=AESU(C{CwRto>S)_x zKs#bD<|e;11)La)ML%w2qpH)jlCYk<+veYV?eL{bKK-S@^NLuM*T);6OoyQ{jiQ^e z%QyW1#bH!Y>{@=TCwca@Ahu6mo$<0xFc)^Ss#oqf5eVJdkfgK6fE3xO8F_S1*UGkz zh2x(i^Bsym1G$UT5ebxsj%rf3p#o8dSB|swM&=Xg)KVMaR#b^-$yZcX$;N-CJFe2< z>-1iEWLM4YflbPuin&l!RV5HzS-r7Q1EhIektda0+1g-l$^YTg5!q{|gYO6!eiZnT zwg3aJnp;3@NZqXu=X~F6WMf%%V}o@Q>$Rfw5_zbiDdp%EHktjqz;A2GZ`rDD`bCNx zWowmE$K8^mwxXB%VmJHN15f1@&S7UFbR39 z3UsJ1g2gZccS%e6dwFyd>Yaz^)ABHHbGQi0TOSD?lqV_n0`~O(T(Tij4V)S4!=l=?kFPgA z_PXGhF2}YI5z^eP3AoJI#`_8zJ0h|6ncXyrT`+lFD{-hp*Thac8&*yhtE+tDw|K_y z?P729HX*PJVvh?p9)MOg+r3`9#x!cX)vXoPRYr~E<38q7!3z(FRNa5TzL!hmi^;OZ z{MWK^GuimTW!NBNbPXnwz=|mA49egYtn~&fc7rtoIJ~qrZOQ!K8>S&2iDUP<$+I`u zld!xTG-U3Yt3%$_`83q}JCqk-0JKz$@{x_y@~vLmnJ>nHaHBJThZA#PxvFlxs)z*y z)68y~e(axjDEMr+*=1M^mSnJwm6R_b8|C2{y(YLulVfESosv=_RQUX9N~jEz7)K#( zEtqXZ_-||iewMv`xb{9O-cNef@0~Z;T`%nH*rRqO@cixGeEdLu@yMr~4NAjS)*_Jc z5xshIORr9>ry}#ldNHbN2yQZwUiP0F>o?nD5xNzzGnXlq<8_9}N3CXcxE+3Xw~jz1 zne0gH=-P4K!to;4twmQqoEdIx_Z8lf53elEA*(KZP*(MB1q#H3O`$iZNwVKAU^((Y zlh)YFz*lcYk~UoklP+$COFtQwjic*?Z(7|@x3qbGWc2L@zxayt&nXQU2oxp>nNrJOV>MSC38%4 zA;5nb*zFTKmP-Fr`_u5qVvgCt4Pc?CYj>-vrF}j`S)JodC;_;{g-siJwA$TPLlSP%_=;$wV~FM8t$UiV@R))d_5aSf zR=hbYudWsj|<*9fm>m0V?CedGiDm_oKp7-z-)bz>AH8|}SJUif_~uywcZ z{2iz>H_PsdPgL)W5^Pk76QulH1jNf2-pUL#z$stVA^bkBsHmf&sXWJfO4;d6&5Sh- z7xSNQji7gqULj0faoe!IbyXsG9PLIRM2J|k~g!L?e@UPcy}xBV%k2MiVJBB> z>_ryR2m3~##2tDZ-%hlRWIKnx0?X|_;$_STYj&gk@;lR_%`%$H^pvG2Iq&J^bYZG< zz7969;O^(l(*3PJZuI`gpyq${PDh`|F^f~Gm9+Ie|JyBd>h;!s*ZCh%qrfftxLx)i z^aSBQ=m~*C+O~9!S^>5exfCXnhRwd(;7kFJMx95^+lJEP?;2T8@p~KPnY;2I|LV2bW~Ue?-MJ>ABeq-H4xa!{w>ObFv!eWu&bYlHp46 zUeWvAs<@{2@>|c8H6d!}qkNW!HoP$7+LY<&nm}v^noJ)-6@@G~3~rz?3UTN5!X=h) zdRY6^6X2A?eMP@$1lB)TnE)@_I!meWEeX61C(~tA)HmnQAA;7NgFIznK>lUnRuEvj znc8}HckP*p@f0&(ah7Bi{!~(aXk!&XKnwJ{Tb!eU1;s|jhR281u+KcJbck++;7%KE zbw<8-ukhAucva(n4jxlcmo`n7qFVd;z!$IF+{93pF-5P}D_?sVu2;^Mcx^TqZZzCW z*?qI3$>1q_sRW2=93VB?*m>iZdV{mJd{_5No~uBATNTw0Wd6(N;I15;h8cD$=xFL| z21F&@`G4qlbxtCNWsYS!p#=jDs_MdM26lZSWyD_u>^Ry%;w)^iM&BV} zVVq_wmP@I*lV)J_@5^`RR_h^3cARI}v3!mAE$Z5|;QugJR2A=f$AEWZdQOmPFA4+b zhW1hK%fUy>zFKC^YqUV~P>z~E&6<8u%3G<#)@%z82GkHJ->qWaTJaYEJhv_6G>~3! z(~mH?0HkB~sI!j;w_cjKG33eSc(o!M z`ehyd#=e_VKx~`r1WrU=^7eJSZNQr>{dR-D;sP1h3by1uzp=T5ll1wH9ct!p6OSZq z4YxZty2sA-5kgmwk7likHb+D?xF)6eKR*J;!j(z@o`ZeO3t>!$5U?7$o|QU=?!THoXJL6-c3TDFPfAsX!vziDgesW)JO3KAi2^Eu zBGgJE%Drac$?KuVA8*U#)q#l7wg{xw5Sn>9Q{FdnISiS{5AF2Lo9$EI$@Chp9=)65 zup!Kz0#rsTA2w@%Lt__N%tlr)fZ-#ZtrE&=8?s~sSRm9V_SCngd7(1gq}LI`yh`ki zC?J~tYVrinnDac~L^3TFs|8#aUqo6oqN zajhz9T6L{e)vYJ8+sr49|57`7uJ+fZy?)}otzz8;JP`9*bE{#u?~Rs;6S`|auwel7 zflLm5it-^--_EX-FYicDfv+?a$>Z{73CN=C*=2}OQE_WHAZbNjmG-e5gbNCFtJz~$ z30T-ddhBZYQRR%)3)9Fwi6v%0ws2Y2xt(UWx>7jnz)c$ zxk;3zvz_l0Zu%pxK?m1BMzwIMP|<4fvhO^117pu>ps<@!j+oDAN)^tuC40AN&$BHb zO3K!ekaf|44)4e+0aV1OKEOL$&#qiWwq^na4UkapC#F9{UFiR6YdsA=xLY-=O#Z;Y zTLrOx$hD{HGYiEa$(b{?;y6^K(+ZVwtm);0tg4f5zg~3t7pH|r_x;Cwnl50qBiFm+ zlr&ab)4SU)YYqo-3fw)-V`Zev-`BB~Z!&T3d`u}NY0Q0AY! zbIL2UF$(sD@mis4+UBRbB@|q+MpR+*kM{w(ri}X-Wd_Ller~nQa@_>UvBd5`yJ+nJpSxh{!@sEgp`3RW>-5{^9{ zpmwGse!iRuj4zPnJG!xtFxOWCl!EKU7U1aB+t1ruw}Y_UCO3J89cNYLTb!{1Wq1zA zm1}O-v{K^B9ICB+9WzvFSK$ZMp00a|K!LaC zuE1NB!fpbR8++j!P4Ht_Sq0E@?4wK!0_*{#TBCa%h}kQ$sTHTrTDE<}i?F<28+^CT z@gt@;BAk-XY0I-=bOr;Q7tlHJi#{u%96OzOX_k)i%JRpK})Uk`{7^Ru^hSGO%?t} zK%Gobn%FxLkoJsd_i1%dIYV?d2rijmimQR%k7pG!2i=+3dPJ~=6rI0)yz1kd8i$7+ z^#`3#S$u!+r?1uaIPOvU{f^pU#a(yWez5Os2s*nx1#?kBYrD~j?I$81h4Bx@-~Q_0 ziR4|U;xZnDDJrWvn?Kr>Yx!_v>z3Ox-3Q4-yYlc6sOj2TzuwPf9GjA*Y%HpCjnfZl z>wR)9wyS<%x-_esVMWVgd9ECy7Ec}U6EA`X^WNT!^~CFphAq!xA)q$snb$e8NTFf`69y zTyLg5_ksh~m@WTRX)nL*N6m7IukPO&7rs40Awb_ukFx(Y;LiW~cDlhy%Z7Io`8IVO zYMxFL05&y@Jo%*jgmh2i+g6pyL66JVyd=-Ec_PB{EE&i@l^!PYUhwpkA1i6tJ|_gz zXXHV)_`H>p7=?ht9SrV{?X^E_=7R7Azg6b=!0N-hUtJi!fV$OvKmw4S3~S5fok8aZ zP~WlU3i8rsIvhmR2WVA*T=BTF2tYAw-SYIjVTTcM8li@pfKr8T%r{{zQKWgr#vgCw z%uQ_$bPZ5xtMj0n-$K# z)B(Ang}izKfO+T>UPD@@rZ?gOkm=5UNJc4`74@Hwoy*(2VR&*OcB#m3?wmn1H(*!} zn=1LDK>>Vg_466CTR-{40-2J%%xA11Yi zD+DmM+&b2=?YRuKo6A+a8Zu>zxII1fcd4QxYGM?nl5VLfvr*kT?l4QGN4}nj@N>*q z!s3g(hX0rlIF20x!4cgfZO_?(69|B~3fo*;>TTmOtwn(rT|`IKgn#i*eTm~i9ZmlF zR~oRD(Y3pYFPA?(dKC9c0l+zn0o`8h?-73X#&^_n{j%+#9Pa#?PRsnh0sR5pPpd}~ z-EmsCXsd3nOVjht?^6x@0Q=Yo|0Wi`u)I$XN@5hV2P`vrx*>Dq;<#aG1>lH9v$MJK z(*;#bd!CuPpRjr8KAA-;*mqB1_whk1F6Nt$)33aBe(Bx)eT{{FhaF8-FY5De`oS9? zSVPtNzk54xMZ0pkNV@f!-TeI8^}y5A_}5mY4AA(8-nFc}B^C$@LYw_x#Jzbq)cgNG z91)c@6IfY6K*-2>`OS2vK};cSsKY6#$+1|V;IIZ zV;S51n$Gw0{e3?7^}X-=oZs(U*L_|7sOuV6d3(K|ugCU$J`W_?XvukEh-u1!@-12K zeOE&T8sH9aTI-AYG0be$QxUPh#>4|mks|EM?4AS{I&_i~nt42pa^KKwDbL0cqvAJ{3 zP}1|t8mREaHrTZM!vl6?bvR_4|Fp(SuxgVz!ban>26~$%Ez(2ivJTo=AM>ZUSBnO` z4@%%sExyqf!&$qlK07(R3}gehsQ02KIYyZUcbSgmWy53MV<%UZVbSMWNLFE(cv&WI{jJeUkwaR-}4{T70!HTdVFq!3F!>-fX+i%Y6w zfG*wkqa-=WZ)CN2d6?7dU*DTvV`;BdnuO%-si=9|xNm2in`_kIlf^!^InmcOZb4$* zMIu`6+*=B9cTJe83)LljMim8oXkag&^c23d@x2RmHw0bL-Z*qN{+IK5@^=<ubtZWMdpTowXKL@u70vf7KJpa|wlina%f-5N)HJgtiOn;&@ zcR|OvJ1kwMSueWKRV-&2%=$!=19I(m1yOD_9op)*JqToele6(GjYRn=vRpklN+a)L z*t{v;5)3DOa52nMR}9_$@H&134E#y=O~1xlO`h7@c}-+Vi|&aHWU$e}h|Sh#n#;&rCa8-ReZp02o}W1D*$I9n$xk+NX79!?8&Ls`@@U+T6wBbq z_o+>!zBOm`TojIX&xOz{ryt$-{$02d8QqwL(crUuwLTAMZ&k8S>k|Wag%eAV zr|f0R$XRgo14h`uq-y6|Lfyrs)mNh~r(eqIbbd{8YUR;h45J^kS--q+!L=-78qV38 z4o+ zkBeIS+qI3C|vTL12q79AE zeMgpBWJqLZQnxagb(Zk!dP-0M%(K3d7951$e-~U9`6Qag$c*vGS(}ZofdMUAYQUh- zDabgTaYiSou3SGzV{~kv>bnG+?j>AYv{-^=qp0MS%g4F?>X+@nspkiISCHBrAh3S^ z7)D;OmdG#}^6TW@g~lU=_tIR5}MaMZhapZA+vH-8PXVHvAz%awl?&QyAzpR)Qy8R zwmP>0O!vjozt|^Ot_~x*0>kv{#~t4Q>4cQW-#-cdEBGz**xq%1$1iZ_jE_0{)2{J; zE$*@2?!>RcIqTMHrnRcszKcpsq`P>v%VHg1X{7r3&}-KLj{2YtAoa`HDbAyAh@j2V zHvONHJ6jGIQP|L1L(F8;!d~0I9_(44_pkoynBdvE9pVVBIJZXn8s9-A(b&c=Ge5n! zR*ii?QS&L<>(`f7oV-th`DU!zhdP#7V_DIn_qvTlb}T-VI7V&ByYY{_tk7Tms{RR7pu`0S7y0Ael9$N`YKg0_hU$%EDg|RV^4DTl47zzo zL+-JRk~T}pK6~HBJGeW6qMuvjYtY%DEmdH8dmEbM&_d!F;mrJWuEChoF#3?59VEZQ z(*3Gdo%E}?;PvC}!i4pevFzIGo2>RcxWKe@pFg1>(X_j-nWuI_e5Bjm+91R%iX3jQ zKu|_!doCY8dI^hldho!_GKrubLu5D^8Lgr*P%u~Syu&Dnf_`!4tPE8YNHRjiRIf+~ zX)l>1l{PAG0zj*<;CLecA3iu@;-Xt&! z<>;20G-`dExhA?d!Kp&gbLq3_8p`s9KX70NtN^n8pe|pZiek;wBG0^(t$*8`-^b0> zxwNxZU%zWL^|&Gayv1zFFY6D3Cc|a6Y}Y{TFX^<_PC-o$7#Fp=ca&=dR=)~+eGuNc z_@Y&T%=uWRQ;P0^rUT#D&kty6Z|fCv3Zymy$kQXcT5k(#b(^0=7KLonk}pL5MU)9X z_DTNQ51{Gn9yByW_+*p<>GAkjsL9ap#m08Wv?L2lb*x?_DP?7ch}W)ODA;Kp3%6B8 zS3YgRbW~O@j(fUkX73Q1cKgj1Y!4V$h99YtKI5;foou|L)`19K-77?ZN- z+e67zW=Z-IwLnAiX^K$zsaG9YMu0Vm4b7IvJ%*}iW z3kdELfeW~D_FCUo;eo-r^9+#7611xV%_`alpl0MINxQ-#l~xj7$#8mf5W2+5GHh>h z+)G)fq8ISr9^gbf3NF6VzifMseS;geM^^TGafJ1DRYioRJ=~yKPOD!JGA~r!&)9#@ zWBJ*=nyhMIty`b%Rx>H3_P+*zpETR9dZp{d_Ucek5a0qM)pI~wP)=Wp*^wyNd~@dI zLHUX|ked$oe*n)#w&KMc>cT=PiFDv-U#b6qMb0@$kw&$QDw@5(0#n8*?Y-L3Z+Ul- z4_Z z6Vy1*5BJww1N_$cvftM;x!ydI9=iQNnN*;yYY6WT6XN}=Ush@03T2}wX|()_sfpdbeJ?NcS#Ss_;D|nj9dQFXC95fX3h4Jq`fw-6kXD4c_}{9EW8IA zxJJNGJHizp(h=p4G2-~F+;lB+0lyUVDSUdp_!Qb9X%$9UUlf8N4VZ(^9yNApWoHPz zy#8|vw?s*(M0S)!b7cBMe?iNf?VKfYF_EcabMt&uZ%b7^6DQzF@cZ2^Lp{b#V9jy+ zs1Rzs6h0SKZdT1h;l#`IkXV*NwjqQT85u%B-MQ2DB{Y~;aJ!y>bk`NBHLIMFyeWR( zpdP+jAKG0)oRFA4C=v$avne<30X2vBobP^)A$sse=(f)IeiJGPuNW%Lck1kJ(R;8c z@3e(EnYyH*QxAekj2u-TFbwKfev6rdybkrP=|%<3P_(Gf&XUY-Nl^a>>;4|iE}Td2 z6%?C4Ul`9wsAIexnFcHdHUFTfc6AnTH!OqHxC8uxoK2ui@pLG+NQ_Voq)0IZi$8=M*BAH)>(lM z6^VugU*iNm^~8Z)_;b_;=J^9#!9Vo6YIbN#-cP-=t;k5zwajL=>$j99XuYWQ(X6}_ zio1>=Dq(lhWaq)ed7&Eqae$SP{L|BzXgO5V4m&Bs!r_P8v_^rKI6pS8&$VL_#ON{f zW8;2U-k*nldb^gQ+k|VqLWgk|^ZpO8NkM)3oFL-JwVw(L1&gz`)o4}u6yHNe7ht1kqHb&tJq(~Apo&d zi~oQkA^?iGo;`*+0~S)uy>wULf0x@DD(z_y_(#AZZUbGe?RbA0!-yIxgG<69;-uYX zyPHNRwz1M0o|Bgn<@)X!rUvPCr3x#>2NV3t>f}5pe>%E*7tSa5*oyT2=UrPpICAZA zMj##{I^AoXQ`@mc&3VR?`e-<_4;`0vR03ZC-7ZH6xuJxJ-Eu@B{;yET+l-BtkpcX>7ROOx4qZex4V6E z2vhHzgS>aaxH>{{nDpC40YTWgwLoI=AgYOxf1fr`wBUT#&^exQXfMrb38-JGr9i(> zO$W#fo1Y+P8@gC9YuR3$nF9Bm?%>@Lq-7EpV|G9+@YdS!w6-7hf{#|PLqnAhjrDMH z9EVnz>Ns$*!Al?l?mx}XTlxU1aC{h0O#0|Xr{C(7vF1|qQy;k4b?2|z0A>Wv#~Dh0 z-yY-9c}IIarf!mbK~&#g`H9ZKIojk)6Z+aP9dU98<8drp)$!+E@zo8=&T@T{xB2pV zo(b}O9n&F?V`Wi-BE6$+qS2-Ju*7HR_-=2;P8k_)8-TR((E-X=RjxKOPbBl=){1gu z&GtOJD1pOYgtIZl67WJ?|HiG|alh4gT#cj8Zl_;eZyEqj%6bbxk2l&vj(zJrt+UZ8 zUMguB2`!|Dh)~!^dtL(SpB*czUpx;CDbYs|_hF(Hc(*^-TK8RU*?2xx5n4=KU`hwg z^=N^caY0OY^ma+9>QRr9Nw#_aL1%Z7bbDv$y+^#o@WfG{B-P_rPdfZ%?c!6R@edRf zkqn{=a*I70e{|3NioLkqqYVkY@Xf?%K}|b<>5^oRT?;%pt?dBAOIch`Ui$ZbVXWe} z3B9rYD&giSU^$MkU?VLBydeztKNeHD{?t_Nc98b|SOxMV&-DnRYo#uVN}h zTjmEF>eU7NM6Rjoo{$#2bPhImd9|BbhD(9O_r#V%pOTdf#`N!SYjteI(5;R)CxHfa z{r-g{t*p~`tAlQv2&_e7Sbcg7$NBW0pi^4~Siv2-umrQ?^L-6DSTl>-evL2i$w6M; zRnxDkL-g8*9m$ru@2)O)nX%C|hWMy1bk9@s1fjcGF8-3+8#OLpejk4gk27?B75w?E zwUY9&5Yr9c5b?RVaa`rXGf|_<+WwV8=p@zd85 z6$#$t`pBdW_)Vt=6;kr#GWN!P3*M{In1TYa#na5njq3ptdr-Xm`5G{H?VWY9hP?c7 z5;(rIs*wYqPwbwX=H~jXjJctsTQTW1^}2UQb!69_dd4K+w-!~FoF!LgoVEG>!j+5N zf@=-9_FmV*e85jx(Q1aIRIo-&{_pAMS}jjfL?L zm^M38HojXJtgyV=Vmx=mL7^?{CTOEje z>Z6=*07T?OvBi=qC+(Fam56$|tlw6)}ew|6YhP1S#3dqAg0zj*ZBG&I^0 z@Iq-zJUElk`rcvZ?;sGH3qOkSUS}|?BQi|R??I+bioq|*4b;yMF_?0=zO9jt3M8gSLQ+whG&FQ~==c@ox-QnFUC`#NDF=a0B#gh+em z*J?IYbv(tEOuA0fYu|0IJdc(nv}7QU-OKUmq)I269C>k0{~TrfY36b6;!4?V%~vVk za20p$&R@5;2%%7&zdBtRb^?<`?d1)mn}gTYoLpDhktri|FPtCcfNaYrct!e_Z z$8;!~dtQ6dvp_0@Lh$N%r?cW~(r$8wM6synM771AC(6kxK4WVYjs2?Hy}CxFq(^~! zAODnNb(v_TAme|kZYdpJXShCW4XD-t98J)c+=zczS77cUVcRngjxKS)D+6&xRA_yl zYcgC=d)@Zqjj0F`<98(dd~#eH=f$BPTG1@~`W^wIS0nw~H3hekQ{f`0e>E4$0Lv$lIKG1m z*~D$fuWwVFJd`TgF!x^;@ThT^rFV}$6D|dhyBQD25;(oCfq7re@E?LW?40Tcw&pY! z!vynBD%31CVy+olKEHo`u_+Z)t3uY--OqE zhV(C&v8vnOFLw53$0{0j_vUt7HSr0Oa-y}Oouo{4pRvgYt6HT!N#zHfwL74ue4t?S{cI@K@74;M(mZrYrJRs&uL<|`d4zoe98FOZPgjX{;+G@7c~W*JTw;{S^Msk z@kss0J*%@lGXgaG(*f1&q9?u(0#Y94?vyX)Ta}h{ggjUVl9FALag7J^W_Logp1Mxh zVe>qZpj`9UId`}}vIFa|l>&8xY*t#kl2bN|A z)f#v*t4gJ(b_&v_vSUdzY*E(-T63`va?Qr0ft&dUrd|~3JUZ%U>NXp#E;q*)@dNBu&^nFPbp5W6`=V zffa;Iqgm!!+mo}NG)^UggnB)~yydN>?kC~9H6>16S{pioJNNL`x?-C_+w1_lNXW|# zO`DzN1cmj@X3Tnscn!$8&+JyK*Zki6Syo<1*3x@}onFq$uLN z-l2``Vr7gZ*X^qyA4alrH31LgVM3e(VrdKkZj0EQJSxy+8iR8-7Z=KxSvl;R1 zw#o|%KUA8|$U7%3m+(y52M$pCt^l+hnsf+-)* zyfV0&oY$qXps6=o@l90d)U){qOMSW8<=JsI=A8(6kZ3KJ0sM_{Z7)3>elFKeBJu!# zp{2kZ&pYEoedAsFp&7ed(?5bBtYek{ZuY-rw`B}yO+&k8P(USIQ$HPSv6(W;$f2_{ zShxGzP5^}C-jWjLueT?5>*5pKa{5|Lu644rPcP*xFpq(|P1~6*+My*YUH#WAfcKC^ ziXO*IeAbI-^x4P9A9H{hI@pdpj z0E};8^!aqHmmwz1MI5XjozRmAD2^LS&exj8fAcOA>_A_esMNGLHDZ1XDwr{^RD(=&pGFmoN=3*McSC^R%e@{x{+n7H9K$-6r2wCmj zKFQa)2-xCV>-I!nY57mK@F$V}@<%()vPrb`Hq~$~ma5UV0s>$KY#CN-9I|!pbc}}i z_3FeD%aF6@wI~2s^K4loj(y#Avy;Xv0XtzdXaS?@yLgJj(Fv~G4JTBTl3+WLEBI%t z3p@G22{x#J+Uu*#q7Y%61` ze?K-an@dWrM2;pTK$WOM!AD&2FH1XOu|8$Oun@?Gl|^s57oj{!SnmkG<1gS@W|cap-{ z*gO2;%dy=jsvx6Ly6NAm7{C^%1pPnltzyT~tcpGBKBwU~VkK04FQQCdT5W@~XpLc? zMO~w08xtT+&_Syer0o}Wqf|9}m5u!75(HOigmh?RcUR`|x3XJJsyk9tO@cQAWHcQc z17tu4nm0RzF;J(K=`&?fX`(hB0mh47d;Pj9)D|iJ{`(5R9EdyH{ve#zU%TAF>>b_d z)_}a68Utq&{%y^4l&CABBPe>j9&|bQiP{8v!exxt&$+Bhp9MzKr>;E-T>dof*iLpV zP`%D=8^j2${JzMd`@UW5?j_dVhO${I%0RetYZ0vzoGW@Sa?2Mm>bd&u>d&l12h2F%8_r*M0r6;2Ql%k-vV1dpgidLyFG(u8*VrYLp^y z8rMZe-z)=pwaohQ_^qZJ?D74+xH@LR2Ns(qPbo86)&H`=eVofzpDhHCavQn10)PI^ zL>PX;?4ERB`HYIw?|BhWE#k$M(uai@sL^J=Fdl-BL@_2M@Uu48`!QI-I)-!5{xBB9 z4W`hWj8zF(bTeGDLFesq0>nLqFDmfWfndXvNuUshbTs(x5{y4^T>_K3pMmP|OYgho}!dnu%XF zs@sfLVmFfiS9;@|s1SZ>@OAAP(E&SX){aX>2#;^AbS-p3r&H56$n={tMZ1|Xuxzodbs+% zr2kmh$a#1`8$D9B#?EbW7l^zgX+iW#4L4t#IZbfMm#9}Kr&An9xx#8@?-b2yZ?u}w zA6c}c4usJFUS;~dBHaN299C}z;TnW3{Z=0YEGwbW`Q*;skKoQN9D{cQS}@|7>7ep; zXLEtHM7o{MHnEtgmgy7l@Ajgsin7HV)!Mv?v4v5Q^u>t&s8db{{;HiJWcKz)d`Ivj zi0_buYJdr-*DKO_br&LtV9w5+pSIuADBgpqPdM6*h})y2x;?l)5ncqNP=#Uk4)psn ztg3=&fgXdH1kpsYQ|yKLX*|r~q9|&PJB{TFCk)`Dgt~^4+n;8uT1g?+?&lzPK6@qY zC2>FYjK9$yOP(Gy5^Ia>Hjhz3KbX8Us8Yv^zHB1dodhe5zRhc-b~^kJd~`u@&!upE%^xQUho6m_tl7X-|j|U9KENMB)v`Ktk5ICFQ)(=<0HV zAj-ofZ0WB*Mcy#0&>y~#EFVae-T8xf)<{NGaJ!d*S?RWj9Z^AeTVH$=vbntc25iM; z5qU6$9R;J(K67sTbNNS>m(0+t)uif#kLXnY*)z@NG7|RuLCtxF{3}$$a|me~V5ZGA z&1Wc(qZTRE%%(^g--$?O^rOs*xF_-R;x7|Zo03v5yGlz13_nP^t3(iQp6R-(X)n2> ziLzZE@*oYi>uLHL&=Op9aPlQl8(-j~kWN69_vr)|S30d6zGGvfp}yS%)~bw8=t__V z^YrxsBV5Z-}ym$Rk=dEIIXxLWkHqOqz&N;5oPC;rVm|ueDAdULE+=9GHf?bY zBw-ur)hosZzmF&*Ni5sb1QzwXj5=4f$_M+Fst#HJQFUqE!3p@$8^SB(aDGoXJ_V~L z9eiXUW-|E~F{fW)ex-*`X8!s;=E+dU3!D}gOx00-yR~6_Pa&0d-$v)K7r6;lEK3d6 z*rP7JRgMdC#3&v(WaG6={a|zRPCW$d*B*D;hD2`v+$X!w4)eTAS@Cpy?g$U8>l>qFIAYs00RpLn#pr9!rr1{gq`2v`SIhC&59HW)X1Ejp8> zXUA*az2|dSQW2E%#|X4C6}GLM8Dkc22^l4)<9 z*V-g1=5!IlV7XG%A^Lq$m!#4@8Hy&@YJWux?POb^pe=HF-28DGx*2oSCHiAPUyz5x zkY(Qkhds)K@ZyI}`9os!lgg^T1fmc^32v9%BAL$(Et?6q(t*852nf1)Ny2koE~Wqr zK|GpHon2JDmqbt&c9KTeuDtk+U)~o{d(-v%A5UZtac1*QayI^K$s|Y#gTYYCU(Z(m zuyVM5SUFnwKfT|n(~BTZRvQE)w_z*K&qqdncqx;obs_uCdb2!b-b9s?3SfCG#j{9t8PCFJfWklNgRrU zLe+911h=$5@*(s29Rmba1>XpjEG&)fI?UsFa;kpcNZb1|!eC={vAN2Q;(ohU!lOXY z;p{v|e$!P=L6tncUae2AeW$S~iv0VXF@h|5^Fd)zHZ;o77!|QHfyJzsPuVFHjF@dL z8YapSE@Newi7RFnG6vFHV0qtQX}n8+TZ8541YoGywsUj+dRZpp zIRFCR)p~+jW$_^LU0MxNI|~UVv3-1DLS_-4>Ne>^QXr7i9|*2!Z$P@~C(>{JtpxR- z!4_AxToTWRJu6t-y9$O-y|HqD%eY|}ca?K-$-;J>CpngTaL9lFY8!qa(DD8gmB8jy zf?g3n+puQ|8%iPb^xYVY$2ho)Eu8h*WdxQYDh1n4EhS)k0+I;9z{*5EGUd@icoRF? zsLFjf+Qi2jys0ONzn<_WxPOfm!^&jU#qPBZ;&oGbvqk2J(qHVamny*>Uu5!4KEOyR z3Dh!=g++}yoeN0PIMn1IZ!pl_Y9t>~v8q($vjm1vDaBBQCkkdN#R7!3lO#;|u$3mQ zU^BHyQUV*8%YjEs_W!K$H=y6Yry%dj{dn6=r7U&TsveZwOpj=v2a04y`Xd8Yfy+cL zPTX!XGh?vMm9Q>AHj|t57{%YhN)kKltOD6v{LcBh#zd9liast#=>)d6Mk~lw7GOJ( z8b|MxmqIY&eef0Y`T`hz;{IAczFIJNIGVX+*#0(MWoLHD{J2{Cp%=1EKNaR4(QDxt zG6)`MUg9G^dr!)TOdPQv{(wGlI(Fmg!NWv?oajU{v~qBGa>d1M@)F22qWW*_lxTad z3%10EA-vQSdQq58f8@LG1h;`^cQ6BR)&2#05Y>f0Q|0mh*b{nWcr znSSNzh8Czc15LBYsl`Hq(=-OVP0snU-ELQ2g!lUK7|lMMG-4i4Grf+qnkKZgSg%1k zlVb=(=3lI`bquM&`+IPXE z+KCynUapd~B9tqwLy4K|8K%A}cf7m}*2N@e;oL{wpLgIrmjsT`xnp;H+W!|Q`s<;@ z|Ni8MxF2{Y4+7RFo;gNHKwG=8%8wzbAMV=Z-05EO_?5%XI5lu9NsjdNXMO7XIP04UkIb+jdUQ(u6 zZ8k+BZDWYl=MZa#h6b)woMwn*HAVbkej{}Z!l9%&yR=kHE#BZLuXDQ&TMLzb-|@Dv z;7NVu*D}I|NEP4Y)h8{3$k#4u4yX5}Yz*F~3VAo(XW_IbTSPB)adU^<=xci%$7&vH zlavCaeQiRYXDw6#GT{%5XOm+qU zv8(yawzAz~EfJ;*L-d8w?&Mo-djSePC6zGXj&$v89Us;zG3Yub^yrt#=FW{IxxuG? zq;^$Mk@}s0akma~cZb>V<;jPC1Kt09YX15k{&l{98}$S8!OtF(wvi5MoFPBNsC{$l zXiBbo^aP6CCNy7gn&jlDB@k!I-B+^YM74$?EL{0w`NO2uB{z(n(L~9Rs4@?QB)`7HqIg?gx~qLh^e6Q ziO(JWd%V^wj;$PWI_Eh%^4v2&P5BU+r$JJKDa0t0iuIYVgXwOx1XFB{_+YdoJsEAw z?Ju;Qk$csG_V?x6g%KB8WVGrg9WP?aH>8%}WaiohPSj}-=Xi4Yf%}i#D+s5?kdG|< z^$^;Be9|oT&jt+UShye^V8~v#!LpfeFUCEmGSSI70S3~6A7>2LN*3;GW!FI%)u;A_ zAWP)(dmLI4ZrT;dR1tV2YKN~%szKU>feyraQ2XENo+c0St)y5jFJ+Lck z%`XkL>LkBf5{m0~SV~!Pqx*I)%&#c5v>=NOVw8_cA&?#Vl7Xu*zMw{T<2kT`PxIcL zS0Tj#B@N0+ZNcjwp|BUzbU;QB< z-v*TT7BJEGMKGtvmpLx$K=`*Arpmb?sfJp${q4fc_L)+O>|L!|0{G=g%lyt9zz$QN z0u|z(p#Wp>m_>u2j7;a4d3!??Q4Ukv;UZu!OqdnxvB*&8t!zgdhahL}_?b9Xeac{g zyHhH-<8yGBSn;P~y`EFPn5Sw7va3c2LUzUD zc=GZP*h$zKi5fq8$A(lxc+kP4Xekoj$)iJ|qlfFBd@@@zKzh%0)GB@~?`U&I`s52Q zZvzmv?rlgwm}QhV4)6E`$CT`=%A|&;`y4aK1~bQ?L7h5bv1D#plG1j$!_Tc~&X7iaR<$nA44^9K26#)g$XKVx?O|`<|Wh&;lN-Hwxiww|I2n1{= z!|Ai%dojiS3cc2SBQdB#3kihklMEh5Wfng(Kh9;txr|4g2R|x(E5w!H=nC`nx3kk@ z+%b{9q9rF7PyvF>tC=!#g4$8cCAh+oL_w(?0;~m+upzcoqRp3ABv7sGIGFYkko8(N zSqFGi?m{vfk?Z|4c+(BcQ@wj3e<|&|N_EyW+^iXSKcgH1dt(~&S*9M+$(oIlJqp?} zY06c(7Yecj1BNQ09$uq_cMbD8TwRCeq(dX3)D5H$+UfOue~z`fQ841K`~6)}r`RK9 zp2s}0qMv%oSN_N^?-ABBZr)Z_tyd4uTR6FQj#`XU0hfQPNenaZv!%uo!aw6M%d zRS2Tw)aZT6+4sq9S`sEZHK5BsuJT7c^8TmlQDfJ&Naj=~HW{rwv+A~&;U`y+w&S_w zFRvh2ODH@xBt~I4iZnG@S|zQD^5@42R72A&M5+VwpC~jA-Y;DGtlbW;uMm}5ycbns zlBz~7Ny!kl3!&J@ri(>vE4COLb5(El4OkAwDoJnOcG;T?E%Tk0jw(;d;;7%g!8n6SyGq2Ewf+dCRkSv%dChNpirfboh~Z(eeeVottkkkL|aHd`rqSVYWQ zfEFy6U9XkWnTS$SRp%PH0T%#kAteHg*^!6}1*0AdocsAU5E+qUM@Ibrnfna{pT^uf zl2t}>j8gst>Cs%gNFrdt%fy7vC|f(6_(Yc;mVrzYQ&T>?I~7qw=}D0G zUA1>N=pvilKKMD5El$p99(MFLEsTCY%l-SPn80+ZSwyV5-$jhd&ZL98wZLzMnIYAu zX;ec#+bEY6Qxa0?1fgL-oH)$0WG(%3?|W548dfGynqqxeu|CjXLb61|iD8M+zcW9_ zA@!Jq2c-#q)Z(M7T~x%UpV@`@z`cKl8oP~#>XLUsx?gYp$sP)%S;J{^JnM1ogya3q zvZc?Fii2h*f~r_RGJxi6B1I!$YrC^!M>QR*#!hgmPrUMlH=iKRhz=MaH$SzNQJf0W zp-QVSOl@4&oG}oAG@oNbHFFIsVjpzme8fO6>$1raNvGCsI)1RZKoAjJZ1JjcVmKUX z4|lMrEg3vk&=uD4Gz0PJU~=WRPUguBK_6z1w&c=hbPJ3AtBw2t4-{ekEeC~VhVDu2 z8>sL2l@I2#F64I$2uvo&5F8x5aXoB=DES9lRXjWT*D?5ie6m=a{SpUfJX+ZoaqU`U zcAK68WV?4Y4Z*QTs!=VK)}|J7k|)ruKuQWpjA10ov6NawtKkoH(a(F;kbNZvX1z2w zE$>OnrM{PFo{%dV>cL;e9r-pp`bACa4ZZ1kv2L&lY?=CI&&aMXcDLinNNti$##3Q3 zXhFLWt^94>*voKUzdzj8_~n*j=U$OEG+IiBO9D13KGrbE(jVE}E2?AvMPIVJ-Y7g94wm>?? zqeQXC2sNdmcicg5A8CZ%yEXX0M@glQ|8Pr4SkKgAtsiTpIf&&;Q2vTpJRYuSXh!Y|#{#NJQ_ih} zrUu<0o8#<_FPVzSFrLA@^{NAoZQIFW1fSKKbxC6It>I=|TH5Jxapj(l_i2juy%{Ph zKryFS>Jo7=06Pnv$o^5+AN(_Qo!wll;sNGPfOL#i05v*CMk4c4x{927^8C!(hgS@D zF9yy#-rs)Oz|-I^fDmya*C7z&P2@p;18D}q0aNV$wm^?>BC13AO}0&qRy6e3$U(Ws zIwdhwhKeffZZ7=h+K!tMgJss`&mc%)nvJ3^iF|$7bIOm-5#z=jyxNf3;cVCA=r5Tk|DoCk7-x>5+M?k z+KfX4o4sr*xxT4_2=+(sQje;Sou~H>RVQZf(KUwp2lUQ~94Xkx? zQ!?^{LT}yC5-PJ?TATGUyhZtD3o^mQ?@_?sM(d0E@R6$5K0k382m|j4!}wi(_*F1lJs0wYWL+slsddQl-WnrV&?{VKM?XcJ#zFbB^S&>D6VAW&z< zPhm895fK1GA>h;`M){CZHM9M@kc#m;O zG9$N_LQP{eUa=H!_1QOxspi)E3S@N%a!LepNo1MO7A!T;zweiM$E!qut-O)@SYDD- zV)Osjxe{&06(XY`p*Rsf1}1P&uHZgu?mYM4u*>+P6U>|ZAAHXLsNH|9=lEZe%b$`S zW;E_eoonFlGuYKjXvP1Jc8GeT|G(NHz|FTD1l^+((UVGOK@Zd8Ec;YNVe>Kh!nAB< z1tsbc`QyilCf|$gnnq!S{8sLWXFu)!qap(PO|%>PB4th;$mvSnaS1F*%66Ey5H{;I ziH!vjlb*9pVq5;*y?#b~8$EGDW{4Lu659CnNUq>wiLR>xjHn>x|IXnzCHH;ik-);h zM0t0_gu^-LP-T$9?2hK-DKv9w?K)N1J1U4+m%Oa-Yy63$D~ruHA~=b|&r#A}o2V9+ zABvBjDk;!Gcwd|fI==Ru;Dkwxj^k01(e6Apq}e3iI=n8Szb5+#~IbF&zj((+$1{C})${dd+IId!pfh}I!_$s_|Jr`13IgvjEPdI~S z?du=J98j;QLNo^l%ndXY+CgF+@j2qqj@9Yd#@iX@#1fq9S*Ckyr+@CP67(*xk+>EU z^f?13DQ03Ny%o@ob(a$ra(*^i%zhQhv)D;7DkfW1cu#;vqJBFDacj_j1RV=IDsx05o8vh$zRHDkLIsfe5 z9qTaAmF0TC?!2>rEY}?CQ1obUz8k^GJyi~(ZR;h3HVaolQE=&~7|OsvP2auglMz|7 zK+?m+1`^gJiT*;XUnDbDgQ?~(_g0rslgQYLhxEEK#HBD+F6b>Cd)m(S=kRg=7{c=3 z+t@ReDU+)0E}b$xF9meT26vJQvJY_mCF0^G$(f!Ud8p9DyUekHK{K)*k}>&{p+(oW z;)DrY&6k3&46)C1Dyl>gnoUwRp1r4l7DOL{Lu~yLJ*nhKU~g*}+(JZ#uxVQ`7^x)UThvrgH5X_f40fkM2-Td0`@B*IyWb^Cl} zlnQQR5KP4jfILz(%s0swJvf)lynsh~w9i-fv z2Q!RN1B9~NR23x(1b&mb`H3>cxn`j0S(x@FOBn=@qyz?w9^riW)EECzO@HulzOZ4KaEok2_(&?JtRM@rPr_&|hF1w+ zCA#%gKfg_~`cnkhxK43!6QEVgj9$=164vE9^9HQdy75s8A6KtiU;IR%zdc8@2Go8a zrq3G=s{5A7c~Kz(h4b=MTnObj8(F>iXG#>vFDg(d9Vr1K4S@fBFe-w|Aqnj>4LL~} zDhQu;mqDjk#g9r5M)qlv;@w^Q_rAfwi*F5wuJQKe!YzV;Ih@}b4%es>bohcE!&ZpS ztqZK!w@{>ynP*SOJ@M>wa@Rss$>*f=Ln1VrlcH57obxL`TI6oQ8qegs_d;OSm2;o# z4qwqAj4cbQGiRgT%Gyx#Tl2;gE>ikRPQmOB5LF;tHWZ4=(UidCwI>)E=;5uB0GB;l z>Jc|>CWZwe%ylZ(SWBDw)I~ueF+0}N}1iw#xM&BDP}E~Ei$;` zw(a%>t1$;_`^2E5V3Gb;o35-$!1d% z*&jc_YJw?NoYI3eqi7ONi+V-{JT+~1JNFUdM?>@L%r*1VMEfs$%CRT7ol=6Lm7!0F zn(E6Ht-v_WSBdJ)i1Tk&+X~qFw1^w8D^EiE&&3dcjqYw`FT4^*s&PwIX*c9Ut=l5H zDD2#^uQw~(!8oFD3m?@qMoFPcsXIei`=eqcs~Zei&H?Uyi!7Z~;Puf^_Rg;@dMtIpfkg zfDLkM1lrHvD~enegfQ?L_NTEMi8w)Di7lz6DLa$N2UiBQde;gBeeDad>D!rl#TKQ% z_~sAQq@$4{SRG#qHSwj4l8!b}XzgLmMijZ>o@d9^!aR^oEb~>pcJom3s}8e@k#hk< zdd0q`6tK8R672M=D`YbDWL352cqATo;`Y8FH`oMK-=pwmA746o8e7M{Wnn8I!G|Ki z9f;V=Quaa=-VM#Y2>XCRWbx`bx4Kvfh%3WxunvtOWSR} zP8sqImOp;|Q0p)Mn*k4B9ZtsV#}@~A&&R&)N>K%xau(q=dK9K03g!VpWyTosr8($8 zHHG)TG?@i=G+mXv3>cypSr4_{{k_diYL0NecXR+5Cn!sR?lhsro6Ry*fML*ARy3?t zDMN0hrN#x*KNGWNY08E%4QQy~Wlg9se*BmjExIe>hJU>6v}{SX{$Q4yG*fz*2oY8J zF7_#gc|8BSA`N1ovC$rzrUGfUY_~|HDDl893AnLr2fC6c9Y?KicN<9V@H)`4J5mRs zx$0XTcXF85o0D23i8T*ON`Nc?Km4C!U#*WJm#A=I)$Dt^e2Y}oHtwTQ6MRXaaIdbbSW`$XzeZI!(r{ zm2T5cz4|hQ`UPb7_srI}dnwJbgB5(CRJ62GMrBEMc1DUM5Omy~72c0xCHqw4dn^fh z=tQirM9KUpiWdj0>weB11s+72rTp=^ zaFCmQBXsNsOcR!<;~2+bHC#90Zoit+e>(U4n(^j$POHQJ8|3oOZ>bgy8|MyJ?$TUI z2;{Im0#I(*7MEtBrnk-D2Rip--`HAY8T6Y)N9yP!g9vB>*B3+5>eN)Gf`kq2waXC# zRTyz!uof~$6$Z&zNgu}B|BJTw3~NH$x<+YIwm?u+dJ_fR3P`V^h=2{yjnaGQMS3Un zDqz4uucCkogn%^Z1Oe$qLhl`d)IbRBu6W*a?|c7!`+WQS^6_~jkF2aY*O+6@ImVUp z{=xH8^&f-lR>6ug($Uzx5a-sTub{dN`lnA#IB=iTIrh5x%_N0#d!I}f$Bf_QaZWVl zkM7f}xhZKb7Z62|p!eS3`8pJ|gP`KR(xh|d*)kQ^Y$9vC2 z2b|Oy73zklc_Al1_btm>y_nlrc_Mcu5`7mMU(l})lx-}MnxkN_dxdrIa`+~`|B;5V zKg$nCxcjehRKe$ra$r>%kk(6ZG;(7CE_xDE@R@nzLWF|3Ag*v*2hmH`1l9p*S@>L_ zMa(kvBNB5pe6OsTb)KDAm0v(I%o{^5N!xa*>1Q`qa8@&bS+=1izAR09UdUVkGww^o z4gwdA4wR~(O@D*-N!fREZ(UdJu6R+y=cxraYNj`!NAyPmikSFsqjuUB{ya^8+pwi$ zJPO`k?||t4EQqOtCo_VW7^K=b{raZ-x;y>^+|pCof_@9l&9B|3ds>6{k(tsE`JU~Z z9Ia`Q4fxmD^@;w70CN;?tbf!9!_rEHWb6yB6s>9Bu5vb{rZCPU!+?v+Z*pA9UPQmm zzh&p~U=3t$?gcdFh`XvTB_!jtA$CV!L73~;I;RQ3@Yt9naLgzQOYCLAz5G2;O#3y(2`-zG@vFr zSa6T&Z_NMx?|80}3?>R(0XJaq!DqLL&&OZy|Mq-WnQAgjt*dk5Ti1m(Gc`>*bMFGg ztH@(;uuG;dpi9&NOKyRM8S|mcYH+t)(LjSNUqIO0QFG!v2n)FDp8Q1O{7c3OKJExL zs66Kt4he;9Ol6$y24|mgdG*io^54V0`mH6c8iVy)x;03VA~$S{si=v;d5(}5x{uB< zk;nL}E7jREke9xCcmB#^_D{*>rR111u3eeo-1@G{4gvFmH~+Wv97__Mp%uI^>^1-S zj2F)g8v~{==X<3X*(Njc({51+@#)p&c+SZxx>{{T!IwmpTOp-%M^<%q!lo-EU|lhp(!L&D7hDI{9ckzHxn7Ihyn7oW<6rbVPyE$x zjux^(918L1FE8)1<@$#D?x>`30P3!}TDhh%(RZsKOw+IPIY|!i-J9l|^5-150EO5q zrKSN{){d_|EYd-~Yurn@d~Q<|jfPRNznT(s!D_&nnIGTU;EK?-w9_At;4SQ3lakU! z$VtKo2-#{s&>9ux{`ssuI%8Kx`R4Jca~Apsk%$ChTPf1tg>|&kn&tj~*<;TBuMLXh_6rI$2qB#TY zt}Z;^w4rm$=8rsNxo}d5JoB{QMUuwZnXffH_)x_HQKaXRgc;ApUe~B&6M0qcrfPo7 zoeaz844Ep=MHNqa(cL&p?qx5GHgkl!t)L^naQRF&9N8TxJ?;#bHrH6f=e8x)#{(1;Tr-zyvBkn&jHdP`1KeL zGa%7aANz;>Nng4A$jYMXm=vzHx`N*RKvB+q9nAG!#{P@%xiV6*!S1md9U3593VQ<6)8lwcfaPs(gvw6Z!=FO znAKc-vQ!#@1A|l-IJPCWl5DdO((=DT#m&=EE6MBjf^&UkCa@7kPd9V5sv9%apWh#c zcE`|V{xDoZS9U8IPlp8+;ih!~N(mQnQVhCl@h^qH!nz>m#dkWMRJGXb6dLe~@MZp| z2WeV)EnX7HyP>uzDLxn~&d^b>ccK@`!vY*w39I>58fQ`nU*9h&ylW|g*4@g5zP?32 zfSQW@{dFW)bw4A5-mLf)(1;bS2;q{KPj4zq4!wXYNU8C@>jQzNCw@KxQD!`s{%oXXFDY>Y%H zhn=H^L@W5F;Xy~)1FSG#ZAqCJ62#}yrCLP2e>4KXq86zDcsB!bE;kW7SWl>w z({4f8t0N_+SA%Y(IXj&SZog;pXZ{&dsT*ib2RXa@th`yu;mJxkb>_Us2Av&CUq={c z)XlHdjwm`+)LY892sa(C6pa!t+W*4j7e#Y&`S;&iP*R(gtS%SMhfLJsx3axjlB6)L zwzoe2nfaWnRlD8#6(&iVAR&ZW;plXKFR@O;as?Fp=R9L{YjL*o&_cGW^e)Ovvx;Ji zm51%h>2xQ}0-$8|Df*ELF|FdG%zy-RO+u>S=YxRxHT zRliP_@feaWpOq{OgvXN&aY#8Z90MQvGT({9%F9PjewO6tDaDsTzPX^ zH@lS>lcO00!?d#G&n0|RAwtU~^7i4?C+m1-7@fOvKNWPFP>PY5fK(W}uU!tM@swPh zQ1`uqErQ(C9hBe)BB3lDh9b1lO z(CG>6gtq`}Q}cSZ5W4!yal?t?)v>vPG87rO_=U zB?bQ&QG$7QTcUl?TAf_sWU#)DB#jBej_MDMyTgjeVBgbc8!le0Yvls1e@J~x@_7Zf z_qm*Yck}7$4%>t8yys8y!NDd8>#)c6_VyQg16IW)BmH@OOn5%J3dXC|y$cMkI z{`e%tqy97D?ZCD0tFV4G|Mrnjy@Bw}gOlQ4b--buE^B$R#V=rZxojUkIb0jiTQ(dp z~eAvye{EUPW(z`YAIfm~*Wu`Fuyio@paU%kbcp| z;brKbpmOC04R!VfR+eB|?pR7aN(NQ*EsPR3HAOHt14W1;12x&-{L2+p3Xz~YQ~COI z+!KSU$)XB>oQ&;h3`){LMr{zZ9In2|1l});8x>_a%irW_l>E#UTZ1JdZ%N<>zQlEv zTXtq1W1?w|P3(Dr>Tr1B;4yY6g*@eh(Ei9!z>-b`q`tj+rn}cpUBKWz+Z?7=_|9vj z+ofd!RS%lFPEt|vKFh77=su+mhjulgC*{V0L8VVkQsfsRs3@GmbV*(nE{!|>h@<5) zzl(u5`CE>>p5`InYwsJDp5?){w6z^CgyDGdD&&gb7}dOMcdg2b#=vz%423g{M9)~)0&z1RFE?-+FY zq5w0f@QP!&ZbJoG?uQwp%B*+rubO#R?jUJn`odx*?xvH*9#Ac)VDNLRZo2|ks6Uyb zmoXKZg=I+v5OO8uZ{35pnj_e`qI_ri85!?7WsI>ts*@-1a@{YV=ML2u+N48O-eBEY zho~5s>p$Me7rG@GNl#WF!zal-#C5S&c;?4u61}vDlDT-KVs0g;#nMv^TGrzP-q1a9 zPCq*p&4A6p06*i`0l-(mfIT*!a! zxIAz}I!;&gEE1N0Dp%DP;=wUr3tBsx|g$4OhC0| zdT+HZszwi0BJD*Go_G>kc@O^`1EyORoDSW=Ju+Kf-r1Hh6U^mMPjHJlF5Rhj)jl@t z?=15*DK08l`9#VRHYvP8(tOcDu;JJ>@d*Pn4KXSybl#AL^>4lO`1`^5@5@FJ9DafL zQ3s#2`MLY>3i)*_IiB1kQxV=i+Jcmqv6r1j2lC?tWTJ*zeSNE{V~0vD5mVkBBg39Q z?;<2z=f7e8J%9HG(LyMzV8q`Th7IG$hWNyRU3zjFAx(_f{a- z^*-d(_Oa(XRcv-<#^J7LQx!YTpp=~c@_sPI=B8qDgmHxrm8E8}N$`2@kO=i{{nc&% zNKRNT_oX zF0_+0+r(Rvn2FVzbNol?>R%^hYIcvCoO&Mqd5DJEtMWpHqmVCZHLGGXos`6a!9Hs^ zv3&Cp?ZTQJRD@8Xw<;X@HMH$Y9lr>7Xw;`HiH;Fv>?%%zOT^qwsUsR44*kH%BGKZ^ zj1F*HEc*QALW=lMy@v)iN8d`}8?Ltu?{|9-W99G2S9l}xf^SGl`ny)Ikebg+Gq>OKL>z^(X z@*~u&%fxBYVhfUv_k+JUsi^e+VHSx<@+@3wSCZRdORIB9u>F$x?kG<~XZP#-U-Gm4 zu+4CXiwUO8Is8Fi9&GanpZg-3c%2RsiGue41vkahh~MxmUEfMop?Iyq3_!%P6I| z*BK1;YqA@?J8~826f0%iu`Nj{L#j3X@*(a1lIe}0V$`LLgUQ4qK}95}FXRF%2Qkq^{If{HnYA%}|Gj1{ zC#NZ-{|%jHuO!pS;0RBo6v&pU9DWWcB?P+&y_^ipG^U5SeZAgue}&tvq=UDz!dK-5 zyF=yvUb=g0%DK~11=iO6ei-9jWb-;pV#yL&=d&f+@FkR@(1UheB#@55b3{wh zx7`q1L~0zwLEATVoEc#nfJK>UPIeenbcPGLI(A3K?YGSAWVXX51;*LOGlNQ`)cbV| zUCtf-ck(wk1o4QxY&DKyyW#Ak&HJt>BO0Z_t_gzY(U)GyPX6^ zZdw$hdL1_axW{!(u4Id1>NI6yTu_Csi7sV!@Sp)^1MfAPEtwVzNVoh~Z4 zBvi6kI6(ko9Poe{B>u@|3JOK)xL8GiR6}or;GDg@{vRUM->LsRFAXeJa2#mb?sxo4d8;S->zGZ95w*?ClXCbJ826aR2eS#?> zb|`&?P%C1d++Z1#fr=s*8Y)j_GFc#$tXXq(6f#za2?^IqE*7@tc(&^sEMySmR@65i+JgoZcH{SRWJaJ?*`WIE{ zSn>Y%Hht9cTk?}1o#D`=?F0@q3EA)brBXw8F1Vk82*kYqNgzhjY~&bLz44uf{9@fS z{kf`vEV}+ih#C5N&M;!i?ii?6Led_=J2m2S&{I`}5=r`7o-1pxhXQ?!C;xbw_wBw5y3zc0Ns0R(syw-f-uZ8+FcQ zkL{WMT;8n1I*7X=gLpFxI5)cPwc<(1Fvszj0B1r~wL@m5mm!BAbschgj??zX-5gf+6ZoFQGV=wpUua;rTNuRnnYj* z^0}9V!{&Jt7#osPq_M}3mrBkez@OuWqK2`3Yu?hfH3H%Cg9hi(qNL{FR(c@+8%!h_ z0x*$El;pk~8PaG&tdqrR0ja=hjH3U$bj1Hx0dbeyxf)LzwkhN^cS7k~vJ=*n!PMv)iV}bbmy41$a2>KTVpJD;&{Jb9KnS#vYO2 zi;a*SQqdtO-lZJg433{^Cju8GG zh}r*OAkuR8#rVuc^SfSb0uW3m&Dc$wP&oU0stsBz;+?ubsto=wbSLf6!v{n4&o4tI zj7J7?HyFqcSI4!dORsbK&6ye?F*%TJZY+-HH zqC|CpN&$w7G{lKx39``cUSqzHc{Yt6?reoCSI z2gtUW}Mn>EGEFlw^?s>dMQMwxNFLl zlAL=#-WSWEuh_#)YT-aAM}4O>IM{0EaeE)?g`|T|E~!v{LbuJH^Tu}dmvSH*WVB&s zY69(Vhs#q;IBtb0)Jo5814%TN+VTnqrohj-t&N@+bJ$g{l{sT448rO!g>_kAs~>0! z7EHm;yJ)pUo|A{;8!s39DUkfGEg*)S5bXwPnv|4K2mPsvbWoBLbx4B+{_S8n|VaZ^w^ z5h}VBRDES#yz&aSW1pLnhr{B2K`zoQ+gj)XqEl`G47cg8ak?J=;GeY)SQm~wSzO?a zboq*A%IrJ_RkDa+z-tsvMW?NJqt7govmxMATP)?a1z>JkxG9&HXf>|BR8wV-aTvWz zNF`U;(A$pOLuYnEX#LoJ*=M+HsrA~OCT@7|&YfpL;9HAMy3FMKOVE@V;%xbsJr0L> z2RT{f0xpJb#*csIbpy>tXJiG2B7KS5VkoMt`y5}w$n7i73F}n4qr-$5bF1qKq9D=*Q z&_opy8MO>;obP--+%)C)X`Z8O{*|m?b^FyA3zD33H^gLqKager-~%Z`I-4oc43Zbv z<0JDHOx<10&8tj@LVv>RFJE3eGPh^fKIZmC%|^%3ZI>%s303;^rBzzW8mwRC3`5H8 zpTw}^ld}M}_I4f9d7+NURd89V!bq&ee#$(07Ey=Nub5yAXceZEiM;*FR#Q=ztZ6aHr03!vWV}4!f+fuS zspaK;Cu$4W%$Dm}BKc|QoR@Pd>4wx;{x8TdZfZF^@fq>X(i0DIwq~2{-cS(|XM!#o z?mg-p)B%+dr}+vAr^0=J0pmT}dFENz054V@ZFbw+0uH~mhK*7Rfa}Fs%3H*5>-NtY z4Cfi$%4FbT6Wqi7p-KBoi{nT}vqnG$hmF%&mK5}jf_{iQ@)?-w{kE0)*}*noIfCYH zu0MPiuYadD{Le~~gRv6Kv*{oo-R$%`@>YCxJWNgAThPrO-4ULFK8LLvP84u;xr2EMXoJ@`0EPHR z&ePu%V$>qVKgY0w${SFK_Cmh-8_&IhvZr#9LLS9?+Gyaz{6~}MHAOi>#ipYWp%f)< z(s>2Y^dfnO@n4j|pRYXe32Fwe32f4JGq{^{Kl6+_6ZO}t+DGj9dyQqa4-*Bp+mW%y z3w#h)Z_owkTpLOnKEgPN%u2=fG2ZJNHFz7og5da2yH8$A;QM(waz7HdbA}b|<6hQN zk{N6UCvUCroW!SPU1s3H?p+tGy(MqhYVHBibTC)K4<)&PhPm=Ne96_wEy?_Y?;YoC zAxH)AFXUzTxk)r_42f+WR##&81F1_D{GZp{y3E8Q_s+6&A~746cp0}t5eA?aWq|Kz zz17OR=&UKbsCO{|c1NY7u<-*J4!0W1)rf(Ofp#g^Q2JN4hzt9KLaM|PXq8`BHpOODDvc!93fiqLr!(q;6NM=qEgZ^yv z^s7P_f@}Yzyj3xic}HM;yM1psBHd%k7qLkLuG8EdX;RWlcXNplv!CG~%=>=i)Z<-< zyKkU%gAzxBn(DlDuHJ$U3#c3g!|}uoho5G*Htm!Z>Q{KQeZTfAZMByK>sGfr$$R4n z_Jg0l)$S~{wHhCc^`;jt33JvPhAv=&vjF*Xzrh!REZQ$@Zy)ZRe#yu9AfMNf_VLBE zMS)o8y}8uAa_*RB)xKI6?F~KDVyH!UyAr$W7oP}FQHS)qq{>7^~J5(Z8o1>)?3?7OhUvKmBOicE-n3y=CZmd0) z9D$H%-(ZPUgRn47)ow8y_VMyl$r~=HwW|2LGk_jgHx9 zK}B|vBPOIUVg6*cca(G;@4s^6AmI{R9Put|?>i(NswmeiI-sokB$HSw!?fROH~RV! z*Zzv_7?a#SW~ek=4FQpvAF7U5Y9~~GMLI?y1j5ou&o$iW_#X1^7;kzWLCa+kUoN#` zN;mQzjff!)yFM-sqVKMa#qa2|_y?m8q;^dzZK}8aLd~Huy(A9gPV}{3kV7&-(Yx|mib-bBS^=UtFAjAsRf;StIn^m(oD($X@eb;Z;S5OFqB>-TU{u zXi1zf+ls#h#~5N)za-97V=G&kGT)Js`4;sL+8ed0sNVLia@<3@nc4RwZXB;OpQPh+ zD}~aJx7tzHIenv!v8(4L75vr;cbn%8I^%*T(kJ*`u|H@o=v04^jtx#{ZnX~oD%!BW z`*lc@$yEh42)KaP4gX)mLM(T+a_6>f~<82QX}{{Gj6T+Wd_4TNk9?fXuUm zLglgD*0hdz=W^a+oPmxJmAts%R=n^mO6`?^iyjW<y8(vCmBhynM|`P9qWx;dtSlODt3h6k2CDHD&+WLBALIGr*w^1lHx$r;b93U{#{?<(?bcMhzq?XI#i@X; zE2*U1(0`hM(rL5fghyZR_j&;*%%Y!f;)a}N>;{56wD0#{$JkP_dDY9HCX2VL`sT z&yP>Nb)o(hVop=u^Kl=8cYkVW3fNCCKSlUHa~pWTkNYk{qWn7r zDjk451(P^1J2}+@wv)g$PK^(mR@N(Db2xp5oBmUMH+@+yA7~WI?|7jvR0Dq_&FfCn zj{Pc3julhB>r22D-m>g?r}JRw<0t_ruiMZo9B(Zp8oWsPptI$4w(mrDAj{EDOS?pC zXy`o~{^pm~8A0@zFx)W3?%YWFnU&Qi;ep(6#iZxB2zPd2!+?~=<5fo|KLa;#>8mon zz9{{{cTVV-5@_k~S=NaI`IVpB zCAxaIiN;G+!*!D?~V%Xd6f8fp`eqQJ$Pq@ zlNXlr0P~DVy%v29fmbdio$gK^(+buBM@J`Mb8Ibk+~$_WtT=P%0#tar3LXS}^By+# zb3Cje#c1`zw=P_Y@@5UH7!mg9<$#(_7Db-?a93y%YKA|7{>`P`a~`HX&+rKhEHvB}9eN3Fz&puOHZ65? zy?>U9=8CEJn-N}Qjd+3{bkK&#hB!Hqh|emriD$_KLW`DCUWA+)~~Iedi;R{A+~ zIb>m7s-p`AZI5&Dr)2me;82*4ER=PtmDZ!73P(jE=)G`JdAEKGb1E88aQL+&;Pm;v zZ}XEZSxB8@fqcgi6)7t|-;O=&Gnu@7>SdyV4h`Sgj?h`DA~`iM@Y%uvb-|4Xikjaw}QjINco?A6S5o}Ze7CN zFs`GKp4iF*C)D>V-JrA8|06;;*I%tM$c!W68i7J}y}0JZ1<@cyxBWX;ouEOA=)gb{ zv-C|iX%k>w_DU}3$?){4tV74_yEuulf>HRvB>x0!vOn-POXFtqKs!S~jL>G?2`b6% z6=rRd#+j{tOcK1lRrsOFkD=}qhjg0SNvw4LGvYI_eH`{UN;NCVJ*~&qY}Q-e&#Opz zY3&`viZ6bwmfnZz6s&nn$S`?gxVBs)zU5ats39v3@uA*rLq`uPdxGc9RUiEmX(U9YemMna)FQzPY{6$R>?eL-GC8HaE>kSHN z4EarWGZa!XNRgV2gZ6o9OoYEStAgX{Gd1Nz8J~@WTV*ciQ$p$Xtn9~287UcK5fka< z0`;xMj%(@dsHQ8`_t-7=;EVoac0J{@o7Mb3jB zNx3Eef|Wur;RoN1aXQ~O$+Z=qPU`f|H$zIf=be?s7KgW^LbK>jLdIWyJ8l){_mdAg z<>az39%(XwpjOHLnkqG--+?`H#5C(KO9*~Be20o`Uwpoa;!QNVk1Y@7XYzB1I_IR` z{?+pPX;sB`k-I6xF5LkK2Fxx2$U+-#{aS>a`VF_w6Y90R`>dK&@J$vnUC&WVw$uiD z8DOxIO0;atu&H2umIa*7#afKbqkWXc#LP1TPY*vP_}!eyW-}qdl8` zDG8Yq{&d~sa91|LW-C8>G}*?sc@m6AuuW+T4rR?greweyO@f@8FPC7-M^1eUS?elo zX$~Hmudz!Q11HCT!%maLmRu*38WsM#}HE$ymJuKD8ELPi%tFkBBki|7 zs#1Oco^}my-%w>9c3Dfv8C*Z5BB3!ZkLss%1N>Fyz&?%OtnCa^g1jzv>yA0)tNB0n2XFk&_&W=dIUIJa+Sm5IFt#b1gS zzYc2L3VcKer8t%poUyNl;$-s+LzLft&Is$S5{W`L1k4EQkC|;2NOHWFIrvF&Q~HXmxlV zKEg=eoOpCc!HE7(b5`@bftF?eqBXlz&BdMc}Wgt98PA<#aqFgHoFP zSHhtp+UDMGR^sTKnnIp!#*L?5mIV!y#x`9K!M&E8?X2eN zT%39tS%TW;t7^uw1_>#UOes7Y;+^hmKZh!+jaS_?)OX){uv1Wqn2BE>C7VNE?IwJ4o%PHK zxYSt51-4;iFBJ()hMt6oaA=kvY|u>VJv z$`_`S;3rdo)nnSnYLCy7c7dypOzgJ8XAp8b?KCcXoVpR(*01x`)* zGklg(x|^uDZ%ilTLpN-@ zL5>*uIemfkGs|D`zt%~^94jX)s<&I&)Fs_Be*C!L5%g_4^No~u9_`i4%l=Nb?ADD@ zlrC)D(wAqO&kM0HNbu@`l;Yf*F70Nuuq~S-e>0$BV~BkVeCR z(Tbe#ZVA#&cr#r!hC*(X_vd4Vs<-lueY@k#9Px@C8v7m&2O}eeO6(5tV7iNEqgKa( z>NP$2yWQ|hHo{}oNRO>6;Te(-g~xD<*c_#8Am1wXf*B5fGX}(+>@#B0m~OkrS9C;^ z-?U!5N{=R6$fw`Xtu6`fLcpQVOyw*_(vZgMx~;J9t;eSK11wj{ZAX`?Dr{|CQte&I z$ehDeRkEk4B|o2?I6Cc0*b{%#X-ex*MV1X1fNO4ban^a?JRcy)y6q49s~$t^a;0l`wS?ZHm2A? zRGmzJZ|o@I>$u&RptJ!Joz7{q`>=5!47Xc zB-TMf7Vxw4!5{TQXZ9vX`e>3MF|26%=Y%UJ5kmD_;X=%L2Kj7?x=wXCJ~8Y*)zxo` zyDV!p2yfCALHs)q511XfFF_F}GK3RE$4l z#62UYtzDdM3L=&Oi!66{Men)EHCWI81wteHI~#BtPPp6M>K03SB@=eh>F5k_1}hbX zL@e};@(jSs{G*elmREHLQ+^==Y$dp($AfraSX});B9tOMwQ-e(VH#H7tM&9`61Ebv zTqnj>#Srtx@s;eas)*TZEBOj1w&*^Z&>Nvq(>`myQ@fcuKjk7N#~sRcIF#?$$@w!k zkNU0`nVlDY>kKg9H-UyUExO*gqY3u?^j{Zyt-V#T;A@&(?v9o{o-CqjwOZf2M$T#Q zqT2FD7mcXaq*p^L_HPEt<46!FdCE2=^l+@HWVT&RcWbUWX9j=`Fj9G`Y zORU`*jGWjCnu%jL-LCJ6%kn!ZsMBT?uRb*C6dMSCH=iYEw;5Ka7NQ$^K%v3-vcG zq}pL<2F#jn>e45V5gO{L^Xl10ziN=g#`p`CSNy97?_3~!BPibE(YKc=G?7H|W8&Qd$&QK|=bg6PEHYO|`fecsFQUyHT zJ3o<8vhTC(Q!#iC;)x`Yp{*}?q^9Lo_rlG{sl}28@mLyCFq^3&{h&!dPk-GnFW5Uq zpyGzpL}o|5P`=sOs%D_?gcKWmQ6kJC++MTX2dgxwX1Xza!7%rjil~LQw0wtAl{NRVc0Q+~LUpj~d_o!X*ZqJxpkqTt~E0r~(+rt8ayA7Oni) zgr`oIKlkv(ZlT*o+PN*@)xtkNA|KyE4FJOO-=*}6;`2#u zN7nrMR%+76l}pQAyKr5|mRLUuTAm4vX1s6fV}H22?b<1zBQ_1Z9r}ccWRQspaPjsn>^D2l6PZ6e#=NGx zde};3;=tpJl8#oA7C9P;j^i}gyXb44jc)z+7N~2dcaAJsZ$ep2xZFLu!JaxDCQ^el zqZXy#PjR)_Z>c2hGezrjN!I0~P2B%5X-9;lD zASSnG;yU9lesMAxw&2{@B4zep!!J|{YPZXcq>^WN%xD&lP5mD%Fgc`$LCyuI5E+P+ ztKz-Cn&g8Tjc&IyG>5w2gZwzlZ|(pKOC8%MElHF+0+kaNEBYM73kEEHq*Yy~)b9cQ zUJ5;Z8>#$Gg>Eme0w+(ZbkvEna4!fOF0U3mHD@u#LpaGC3 z`6(#2hi_Mmm|t&IqT+bQs!At?6~#ih`(nGw;+T(>FN14WmkNASYa-J2Dsa9eIr5Xi z(}zjG^|ib1fZ#MC*itBRA{o3(c|b(YWv}On^eSMW+TQ9;K%AzQ{p!F2BAK7zsgIta zxaWrV0=}-z!wOdxWdCaWbm&VGOxp2nwW{I`7*nt38c>*{pwMWY*}%?FI#!HYX=R!= zMpLmletn9{-A>uO+Oqr&z`@Izl5@LO$1VjgjvGKNQKLm^#cE%X2@~?|k71=0<_=IZ z#(mcD=oQp>eh6x6L)J-n#m`<0nqIbWr6`5*Ies#<{_JE^lIwVe>bZK&3u2>$(+?}$ z^s7zb)Wr?ZwUV@p6E0NfoxwqendXD}F410WCX|ZP+tjB*GYekwJ*36JEc|k+mWK4l z^R%i&Ie^jLeYZE+AQFr&K=b4$XEg%}S}b7$77}L~JMi5N8rn%vfT-mCVEub@CZ-O= zJ|?I8X&`(c)AjfG(MKnS#%TZ&icG347;3g9}{_su0pJ(svr}0|56I8%pu1tp>fv8(pNLpi!dwRqJFg`~T zYb_VN-1<7?ORYF#Ah(%REW!8u7xH0=t&wcWo3+VSRHvHY~hthNNXXmLI0)e%sST z%l*~n-gzF!5^hI0RFzamCeaeLoX$+)^ydBrhB9Y zTl$E}vvShY-WZTuNl?0KoGmk}K)Y89^GP|U;>x;JY1RvpV98It7B*qiO(~gjrLC;? zVv+2w_iy$_5R}SY|2(HYO+Q$>4BfO10HiY0Akj9Pk@BXM@7#R_O@Q{{t_|p@H!ql* z6RdWnwI!=WO}9EtPD?+`RyTW55r7A@wno@Y7{fY#>Y#o&qcOO9yNzqQ@aw?Cl5^G( zR8|k=)bJY6O`qPhh33scBycJJ zcmNwK4v&`=Odh6eEb}QvLi6*#1x9GEy%A-`?~E#>1@iw;5{w$OdIczoPY++p{mtwi zOB`*9%}F)Y%?NV#`Z7{cxAHwNaID^qk|bWK5N>RMsTUHC|MCUbzJj*;*v39U5Ayg) z<;t` zum=(MuZ6<9^r%1RU1_R4m)e-FDv0dv5-h#vy}3pdv7a(@W>On0Wz)CjMT!G3XgdLc z@pw(PwQGX6M6j`gr7C>#BbFqj&+fv0&pBq7Rj0m_#2`zD86zmGcKgO7*3J?-o<=Zm zcA=?E4JB0uM!Z1)Xoj5fKz#0(fmWAB{O@3!*hJI079SKdc?W1sPA=3NLh`PquUJADZM1>W$i|A~V~1EdOT zN|%4SE%!Kr=W*I2u?*++TB(%7b0nt)x>>uM3QF#p&I^AR@Kh0d#BvLtNhvfHvr%1{ zu1A%tya(^I^r3Rlg_V^dOcE42yt2}i7!S*ZqR)+7KK=NJT|};PDuI~bq~J$b`++D zsADR9a4*CxER&>|?|Wp+rNSQFD<9YmoZi0k9#Pz4@WWP@JO#5Z0p2@o%2RAZS#b5% zOE#|Np@y!ALZqbN7n3W;`0Rr3{;keKnsQs=@nFEev~(D0`G`~7eXNY1AIB4FO=9-R z(-9CtHvl07>Y7|0E5@7ap>UF5*{mM`?7;CsN5IdX@ex}3_;IwA$CUYGpw_;FSi!#i z%q0r>7;BL3KMJR)jw!hVwm|}P(T-{=@sLubeMNS~2W6s z9>IB~lTx$xAOWV$0kCKVP#?VlAL-Z>rRHNrfv?S84o=|ljO|x>YzdmLJ#TD6hn$+& z9rF>D^EniB8z6H68!^T3?HCgWW=xQc_LBOZ_#_t~_%$Oh(5;I-esrSr^0YC=bFhe5 zb-$ z!-#F{Za_PY{j~#Xju9*flW+yXN^aV7ZM~1Q%+9@F^us=3n4CFXqInYr?P_rg$~$pc zHG}x+N)Lt3rdrF*vvgm4bX)k&C7koaKlr=umu>r-^aYdJyBPI(=hAb>d!;Y)1rTvM zRlhqqHR1Nk^aDyQsW^(YEDG4G!oR6l@vm?0szmSUCr!AWnTFIXg@$7Cpz)r{AcC&{ zeoN+MmhOEqdeqh2K-Ow-^Y-zkTrlPTR1=j!3Ccjv1QXL$C-hkUkz4f}l{ z?KTXBo8OZQG0lINA%t#;IL39?C)$p`ls%H+cXjN_S8(0k*E!~k*I*1A%A*(Dq+2oQ z9J)Z3Y5tQpRE^I$XeEi}aHaTjNZRuOy24;Nc=I=O=AmThnI0x%DJX~0J!DjCJe`|b50xA%Y7J3PWUP2&r_`UI*d++z0d+#}C z&V1Lp>-X2pnl-kM@B6&_*?T|x*{nSC=yezCz+6ay8^D0=;u){)i*cC5V$J%J>@REL ze;ogPqdlND`|Fdlp4+ec1GRuH=+$!|BIQlG9Q4T^g0A{Z~xCQ75+!e+7 z{6#M^v^#vj8uV0Fg{SKz`4Hz2%6JV$+21o> zJMFm(0pi`am{!6#m)Pq~iP$rpf{UZqp1*KD9KC_(97#jOIHB3HJbpu&IZ_kU_S^iA%et3UiK@}UmPAuET}sqoRy;Ta?^ zA#$&`v;G8KlKLcpWn6l>4{S<(X};gC{M*{yz}77vy7@JA#$@aG)Y2r-Z_G^kq`76! zwWe!}sQvU8fqM842l(=zpv2JHz??d1Zk(Mdi0EHl#iBchq9uLq*mgCKV!q9ZQZmb= zJ2W=3l)1b+y&dAxG?<>i-ky^2C$yrZ=d2IaJ}!~hQC?amy0+yriX514aQW(vD^#3G z@^bI@fZ+K>YH6rH3kr@J7Zp2A3b#msD-m_!s=dQWqMmPybJTj&&C;`C+8)PhN}F6S zJ>L1CD34iai^$ltai+*ZTqPSTTkSX^C7Im`P$dzJYnX^V5ChuCVQgzDFpL|eZ^d7` zL8PXX*4U)+598Nrr1K`(Ql1aM?Bc&V!26$ktyD-08yhxNjSSms(81OtT0fk5RMxNT zwfs?}R4T_h**?KHjKQQ#<^aJJS`Ku(`$~T@>3#H#ULqQskFRf9h zaYoEJhbYZ^~6!o&f1h_ zr-kW7sL0CyYCisIx)+Zq$hanErCmxQd&gMDGD4--KqIwcGqH;KD(JE8tgp{MGq< zx9=>V$ynM&<%-74r||?Y;1ieSB68cLv|?!d8>CGM?)92 zxGbny!*@ zJOA|=`=m6GA4kijN;Q`C5_7iA#%`2uKPXbx^_h)a4KMRw;Vs>yXY}=J$eYw1!^Yl@ zhB0k7X7K!xlGQ#FRK(ZZfhD zs!t~Pl*5C`y zre{wvFbBzK-idxcU`;$qfT?sV*Ec9fj$RV$aDRj<@&qLzz0+Bd>y~|Mmg3Il;#S#> z)Zm5vg7gq(e_J>=)bgqmb<-qs%Tr+8R<~~Mh6~g>&|kjt=l#zePoBTw7n6nJfZeb^ zlKs^dMs1MXhD(pY85Ye5=P1D!z42!!ww4y$_S1nYkv|oJTaGwoYN9tCdbs~DjcU~Y zFSI`5RJpM8^Xly`b>q+vB1$n&aW28lLq=<;(dTH3eK^1~Q^X^@U6wk&=tL4g3))-gJFA#W1!k z-O3Q^>XGV8ed+8$C_hvXbuZgNfDs(wrKq4OWRtBL@uM^wU z231saFO&`W7!_~QQUl7A#rfX>N3c0)(W;&7cjT^pS{-$?sUub?%~8N%6P2ofjAjJeEq|(xpLZjZ7sFr;aX}h02-N_&!R#sroqBxxwi7#U3;R;dY7YcZ=rgb4|kH0i8F4S+xKx=!6X^zwJ0TQ@h*T>q=MA)O}y}k3mNSs z+T%I2REMa><-*$*fG2zRNfs1T$N&RH@LTW<;spp}XUb8xJ%E!haBlZ8VfEz^DyX#X z%zjjc+#rEF{<>szU+N1h1WXrm2_c`_0h( zrG3?X@O$aE^15HI+GpLhz^w?(gl>(_JZ1=Ikn;lQm|cK^m>TVUemQgT1e;}MdA77NMPlCAT4$J2PG z1Kfg1%(TKdOCgLB#$Nb~?Z7dXr7S+$UNx-#5XVh2{z9Ev+wZHUU2**Qc!U8*-j93> zSjE51w}|h5Z*z4byYVv2^w)Zkn!P-do`6-VcgZIKaZt{aBxon))uzjbwBZf4iLnW_ zq`V+k&ridWi=`H-&v;%Q?EN5!X&{xA zMjKu>uT{U5?uQF(vCOl6KrecT%BQZPS9hIvnz=M_*4-C}!GPCllaj8F4-(SjXAjb~ z)s|^K}oA(+R zoaHA04+3~+-2wNJbchLBwK3}qXuTPy0o%7Cve)T^52P9ODzQ{RAli?5x;SZ!0iqA*s-G2I_EVjnu<>_9BXvyA+tLu`O zmB$&@TwK0y#KRvZY)J<7f3>x!?Q5EYw825up3O?t=Wk_oFJA)UF?+x|(>Y(wXdl_D z_hZ@RfYq+%MHRT!Uk?d|Zj0}yr4d-in@@Q8YM7{+*MmEPCY0(KV^5dBMEw#(9iuCq z$2{#FY?nQMuQ*%j{Jdk_`Ccr`%=FCqy@ZsS1I1a5uyoQPGj6JX<*U4%&kA;GVLM!Z7XT*={Fri0V|WPFn=v_Q|K>(c|I2F&UGi>2%PDg=ga;j zfuz_uEyqy&F4(eZ+4!5OAL2pS)o(EIkeE1mMS5}4&}B*Vhj((^aK(;_i5z(%SUS`j z2bI*B23V%06|B+HLW`1bBsBbX^-z@-Hn3Q+O9=nRoehA1t5Mp;x z@{$xB`51$8STmL~Z|3j5_rl!t+|HdQRtU!o5*yhf#mJ6`Zs9P!O6~K{FMpuZ)J&j( zg%So477X)3=A__%6E_>_PO}EZv{~%zr`3wSBR zgQw;5emn|p@OUMq^N%6f=Mm1YaRAV2>#NSP9cYJb)N}tv%@4017tYwY*yVXO^asEH z+})D);lRiv6RHwvu*Qyl|N2h^nm-p07I$^oZW}ky#O`Yf!$>>O1Yt;)TQqV;=Wjs9g`Ip-u@T5cH0>)0sN}zaz}yf zCUhm_$sIEwfYmMePiqZ=XgqlH?14?(GA%g6dG^jb-I$9mEKkB=Kn1+P6sX#~dy;h${PVADwTu7w(i3h_Xv1@-K?DcJ?%|UqzWBkcqW#H-$ckU-nEkdBCHo?arYPDPL;)m^FOjB z*HQ*;(-fpSw-?O9&hGXL^6v<$Ssw}B-Fy3;o;~_p$4zeSytaOn0ERl-IHHk9$;zFR zhH1qj{8cX6M<-VICJOjGZ5FVbKsyxbmNs=396c)Tw?&+KVQRDg?EEdsro!*tt~j(% zj%TiEnWI8H&*e-VtIT`ZeeEy(pB9PS@wgz^;Tk9JLnW43!EAM}`(o=!^$;a)%zV73 z&Vpq^VZQh0!dB@>i|$VmhWJD*ZC$6sTfdtJZyXZZ(l5+WQ`<65j2>#dnH0?RQ%k5d znAjn7{J?iAlWt?TUpf0dtsy9=)Tc+AxT#3E?68?DMJ~6Zbc*{!_jh6TPZMn0eT^UP z#_ZB8#j02qT*qEdvxRMeL53P;#09c8x)>i{c27A{Pk6Ht$}FO>gwmjF+;BH$ES&pU z(~bF@7oe8MG@@$22*}gwrka`8sb5luG#yZ{o?5tQ#D=qTrsi!TGyv1hr6!734yzAX z&?E<$Tp9IDmSi4J{PyeDG0wIeKK^cC`whQr=TzKkdiGMgWjLfa5sa zJjuqt-%+QX?V}8o9zzS`5ct`+l2*OT989$X9^~&6A2^~QqL1j49P`ZKfYB&nL8)4K zmSMXJ17GVlmre69i|5**0M}P4%g)&acvAskE~BUrLqLwbzbm}&UB7;DVu1+;dP2~^ zBXRbZxe!E{f^@%1YP$cx+bm72){D=3ELTj1b}8QhdPvx;`W65@d!CIQzt?qEi(2Sz zq_JknJj|$=(QRAJke5m+kJ1;|BhLu)n{|_kH`>;pjoy3yTI}acdYbU1*-?YqDV4VE zfYL-|N%C0hI0#vl9s$>*5A@8scRZ@;O)ISv$4mFN<^t++NjqR2;We&z@wzw30TcAJ z$v=KFF@G3XrCWCvZm@xagVDQR$ncEg6qez2*!jp7(L`hkxZ&>fS|Srxw#!z(83h!u zW^@?fve%7u9J)!X4fN75!tq5P$rW@+|A1HRkC1|ksMz{GAuS99BKMs*E!mSQlyQ1u%B9HG(zlT>?f z7BMh+iYpSPd2-$bg#5MO(~?PV7+`pYxf+!X5}CH>r(kLi{AnbUboz(?r>RBGqwt!O z##dBgqVCrJ>rk9q{0?}G6vUJuZgZ7qd``=1StRF46cfqvexkxxud&!q93r>tGTuwTExsi;57xlOLv zYuKl;a~|nP-UD^GD(#|@ibHNS@YsouD4B8;b~h6q^Evta_6>yhQa+e}iaKt&|1&T< z*Bws=(*|)>$x4tWc21Wm9APaF^>i@v?Y5!r)-`9oDfihiZtwf-ImcTgH#|1ga9kp+ zF&X1K1B73iIK0`yg{4JrJQV$T?2iX~Gm^7&OKk4}FI(6T#=!o>R~G;=;QQvE5I25a zAK+zuV$Lpl`iT=`)8neb*puX7`(JHpR+jD;w`=8Y0?o_{SLkZfMpl99@SXB@X|@TV zzYmM`1t4l}YL(;`5dg2#$p1M0R^OtS9`I<1Gv~7xd52H~MjJdt6A%A44{8m2Wd7jK z|GEHC1o178wE&UdGeceW^ca%LU3x@oH`c1TsR=&2T%w!0vDkKn3{2sQrQSEMUFX({ z=FQ^|-5F{W7C*tYSro1=>pe!iB+JsB+&bo(UEK2~4V>z<6j^ZG(lSf+8n3g~5m#L>YxoZ>;MryRU!hBVRF^@N$*TCJWcCu`U3s9M=5>lOyraL3BH2- z0S(3O{1`0fzQ6Xve>wLS1%^{7Jv!BAQq)fy6c1;9i9Jw_*gYs8sPBAB?#eruO0$m` z8$Yf3VCZR;MYaP(=SSbqZ?M?sD)r4i&7g>NmhK|~*vmFBJ!YMIdU^MBVALVeUqmm1 zKJ9$Z+EnL0pP~E9@1CbUjqKb@dMbThi|N&~VMhGx04g`t;MYfuthU|!3KnTmzD;8Q z2cxXCY+$%sRFp zjqO0EUVG}!W~=M-MePendD(+r-#Gc3BHnoDOeHL{ybs(deo7`$Z=yYQm_+ zQOWPhR;b_u2Z*AAV;8xnUp_YZr4eS&Pdj3~s?tS{)cAZ?A3D>OvFD5aawexd-6up! zK*~$0S;$bLvu8;6(@XPK)JFO{-Sw2T#c%k|QF)+cf7h=1d^%Od=p6B)oedLis2MZ? zsLqVlrrmyA?M*ham`TJ~fNMv6|I_QXR)n{@`NAXZr$|w)W6ha z{n#ZS#71Fm-+7+(bJXM4+f{mL2Y0nUdwl_}Df8bZDk=ac%KwY}`@d9_c@F$YEP5z? zR$$elGp-+uPI5J9g8Xr{8d~0}Rby9#G4%*0@bW|+Zb zV2hV z7rDyrj~DoO3?%-&FgIb;W+Dyw4qf5r8W99Kwh8rr-o;BS< z<})!KpV-tA=%GVb9z;LMDgq|A(j91`@KX4q^5W=cfQ1TK!(U$(7AmF)w>KukafNT? z|B|-_D#6n6tI2P**u%?G+kqmKHFF5{Dm0bXwn7Q>H6;5N;8$S^oR>m9U{g}t9iTWy z?CuEMcK!0eVH3*ElfQ65jK*xywRCj zz&CQ^W@()6pXZSF+OcK=GLNh@{1?w(useLgNr^dh@~p@oOT>HSXC^l^{a&<7jA*E} zylJ*@b+!0y~DGXnRkOTay7i^*a=WKkWCOrQbqYW5;Slc6Ty|vzto` z`t&*7IuygqZ0TPHFB<6E|G`2eVvhfiu5nC_GZ3>C2VkPl%|?@UOUk15x-cg+o<||l zXNTUL^jKD-WD1Pd?Y?|04~<`c`us1M{>Q?@e}sBT1cPvw57&Nd_l#q0_pF%Czq|y6 zrbKY9T8<9dwn+OvPy^ejv`T$2-JN}!9mPp8&9|W|gD8*leh|&Q$;TjtcrCec&u8Uf zqsG8EFZnjkah&_Oi0)^~){9(ZpZ|1`0p3nG^z8Gi$CRv;O&tXz&}c4Mp-(b0iI+;< zq(j=mGnjcB23ro~@7z%}{Ocv{8XMUtR_;c15dB`fA(q;UqbWdjC=LGKJG>%5v%_dE(S4;&`at1a{ryPBT|VABugmhKZYnj#A2 zSJgJE9KT*NCf&L>`+R1*mkUu#Gc*Zlky@plySurqRj_U_yn)1nuvs`=nu?4Nc(1mb z5DgP4eT1=aha9VDTRg)-9ah?v4+Lo2H77?aruX=%>R7%$C!S?k2AdSPFQe5cV+5>NKK!B z2pE}6Gli+ve4n4mT4dzEF&h=RNiCY-?u_F%b#sd;lvKi0v_*_mpC9bMAwrkJekU&3 zP1ZN>%u6#GA9vOIxW0$(#-1hr26yc&18IBX(ji6RQ+JnTPm>1fxS0ccq0Dxb$@lZ; zx~Jyu{CS<4m+$@SuM^#|r{9Py$&cUHeWCl)B`>yxKLWN~N)ES+>XR-$5lu^Y@zJ=l z()^Xi*}EEhX5G31nU}NweDkx|k&-`O%$zAhF9rMepshzYO+sz9rxTa~86y7q0X5VC z@>>s?>Rffj=E$a;LpbQ+s)1V`T78|1ajDvUFJ!qnk}GO?FaoW(_D)lTD;0%@5RYx~ zb!qk5%eUBMC~hPa%ldUr#U0*ik%2m-BUi1=b(h{I1iJG31<9`DA^EYk@5|w}VP4u% zu6+f>lR}o4GI@D&z0Q{{wv3(l2wH)Ppv7EUFPCsb+wD^GT}>ImaGr}}DTZV1+Dk)l zU?E6lOp!ge4u4c$TAw5BhYAJ)MzS*K(^*?$^*oD}Z!6rJE!^9uPt@GzJi+?GQU`=$ z^!|f?t^Ug6%Ra8q-E}b1@bbMRe6*Dd)agr5a*_qAV1Qd(>*Fg9-xa|SYc9R`#zaf< zzy?u~Y|QVPg&bUibg3nZt*R&W++a3FS>lhvDj5Co;xy!1?0AE2;dJ*HVvU%w9ltQq zMIH%8ht5qHQe>LS>l}tR(K;K6uKh|o?Y!oZ`kR~IKd;qKL;tAa_VVPLJICOqL_fts zgTF;*VZt=um`YOf5LX99${?z6*-BzTuarpo7SECqTy2G%5MA7gL&wTM^$q9mrE6?u zF(`wg7SM@m>-v!Z$yvvwh!R^}IVtP<{)3!9pL9Ls%kCgatPLwlyxz(BD(%07ivUGi zT@6Q`xfG*{v!#=z zV%8+z#3sTNAyvCp;W2_JIloSu&*Q{nxfov;b6#mrT%N0)WBDI?AYnNYi`lZxgU8UP zX^$I`3*1`=4g@|j`0*_(IK7nLhB*p>DSQU?k@9QSR?&ViwcX zId)qAC|2@p6Vxs4;W-OobhqCwmi1T1BQEf-X(r*i>pl6ml~~J3edtu=rTGwK0Ck?E zXk=pJX!X`T)QvFcmwXI_=S=JGR}glmYI~tsUn^)>vVJ^@s7sG2`A{rttF0&-8P*l) z*y16y4k8_>2dDJ0>yz|(8h;nFXshLV3q7y)C)MMvhE8BRDXc_reY*R(t2r6Pyv9w3 z=QW*Aq(|?5mca$2AAe(R5c1}xWa?&92YOL^>2r;eoK%|O3@?w_uf424oR*`Fo@I0H z^nZQ@|NS?rw>sHzFtQQXlg`T{UuAVq8sn5B$wU#J>jy7P!%1(18?og?gW;xW8H?eb zaGVcaCa?7l)u4kY6j8L&F^ZesYEySAFAeEgFpV!>L=zBJ3rK`d5VIe_9Rz|zgcvkL zC9$d4F?-Zw-$Cn)N{E(X(?=C=%aI78;T?Ef1+>LLNJhmjttZgJaZ}n#DA+8TAg~Sb z6WXR03smmTo2KF17N_7CYIdE7(EOEiB9IvK<<75KjFgh%BkJoHr=(4_y{GfiItM6E z&<0uiD+f8FUKHBZ6%?u-D7y*@URk`$p?UCyY%dx9rx)pe`ybj*{J2=TCg5U89$gfN z6n|@VE#6YNo*(ii&Yn8{=)heQg8xLP5VAA^AU-|T7*N} zii%^&-UA(JlND^5@PSzRZQ?kC`#Ewdt$&Gk>v!~dceMOOzH0ZYB+Yrc@&|c1li>O$ zE-^y_+Y1)T85Aurm2in!Iz%3Sxt}*gE>)egoG}$3PE%SMq5_Y}YXx#S(jPWA9*pEg zE`W{lzgh^h4$-Z@eTZfbe57W7{MytwucF+S*J^|gVhbsyPC5AB*f%R<%xxr#t4C{~ zEsyTB;UpTLYVwKwY{3Nr>=Spd*%8(eEy)bJJXg& zboNE@%7KBI2unO+8heP%CMJ*2@YEWdu5IMD$ttSD?pJ|b^Q65P)eeNZ>O$e@-bVM^ zti==xa!OJ#_?K=Hc{^KX>+|~1^!4V0k*8<_C9b4X|Kk~Tul%2-{lE0~{jZBx{3|$? z(Yx=g_3V!^W_xn+@rUJMc;)d{?`)ZZRx3sks^EtHl=sMUYhMdFK?T=@46C^cIW-r> z#)ZuNp*Ty7fM2R^A7$Z+4sPn>3_da4a(3KsnoOwh+Af|-L)-cKpsG}h1|P4JOyCHi zS(kv4Xw@R~#;v>IWQRKQkO38s6Vrh;WnbvfS4x?o}Wu5lCETCk@c1pqL&hySEccG-H#t#TSojIYe zYzQS7X9$j+8RONGlj!dlbjG#6aj!|d`F;YHdn39sKiVXI${wGLl2h|V=3j#Px4R0U zK6)DO@Q5757JgFLtDpMBHTwBRuZ(|zzD*r4DJ9myK?!fBfR*MC@=k#g>___B2MWv1 zeq2Owi7!#N4OftZmW5=vTl2JdcTYBMQtr~FMQGk)%(0Mk0u<^N^iO*uDwYS z^mXs9FUasaHW5P~m&A&=7M*C1p=P+=h_H^VQL~t5=0Gl-pL0+iv2^M|beWlwx?pvx z^B|MG!!+iQtb{s0+QH9yvQto;U(jv9ipUVm_Ixv#Y&E(@m4OHyQ@~!CAZn9zyI&Pd zIh;BsP2MU<;~mzpV8&<##Vn1T;$RdF!o=y5j)rC2ioLgbqT3_hko`XNH#6+Zn#92; zS)Rjl{5VVHfBP)?vWLq{4JkuuFM~u|P`7o`xI3G#mh1RYiLPjWiBu8sGC~R=f|DF~ldHZ##jxVh~--r+5f8Fsj(vwi@aDx<}8s&Fv)(V+; zsadD*lt|T_8Gg+v^s0ZVBs!5FmrB7VrZ7URAQzz%;dzZ<=wG)lTOdeal{X-{bT{AC zl)1xJh4Crc6pUUBdb4nyr*+M3wYjMu&O0|WSeeJ{Yl3DG$knomH&zWP;?XAZ=%$L9pRe#8%VU~}WY9@so~_koP&E=S=R5*ZJUk7L0c-zg znO%*R6SU}!;TqLwS0QG%Ud(sIJlR%10GBR`o)34w9^YV6OPpU@AaIXb@C}Ih|Fi@B zeb`{jabrsKw<44m!2t8~1d;fAV-m^J-4}B1Wsv8vP$>yyf^qresjh!CmE_vDT6?%; zz^8RqHU9YQiFqN5otWKDV%sh`0a4PLEw9Fzy4&&Apmxpj?W=Oxr~rkvzB zdHHkL7~;U&h&!n7SprE1r^%Y}$nVlz0E04K9hh^F8No5M`rbp&Dl(&`cT2|Ao!+EI z%h^==?oCg>k(bhwu`&ja(cA++@R15%{MXuze}j@x5A{R@1-Adp;pM^O4~uwOIM}B4 zJJViw3UMzG#~a({RsG$HL)^*~Tdm1<7ZeC$F@7BjZV9h9tEgu zT|~?#h7|g>jd=nSf?7j#GoAFA7j6&s) zk2ObyF2*KK=jdoMb3`g}EBTt;ua2En>|NXGbu_K5$y2{-be`;{v$lQUfbT!;83S$a zLN=(&4vEjBHD@+mIa&i`iZeF7CjtqgkmBA&t0@Uz+WXJr`h9BM3zs-BpvN-y!%UPV z*2G+*41PrrHv;Cg= zf{OYLwN*uzn-lpJ`-0~+&*HYW3CsY=g8U4Pl@_9!8s}iau-MirT5WcxaC@n4U*HGM z)+xQh*(=0CkG6jsJ+d6UXkXtC;Hm$T&H7s7C)htqs1^6*!P{RIpV$zjedN<_QO-q&ViM^EkiDtw%K-6qDao-_LTwgZlfGHA;s)|P_L3!?>%-Y9mZ4K%f z{m>0W#8hKWqUrFBM&GM%TqThy4pZlPoz_CEqi0?wdwoMU-pz=9od^B0t8m_*-B~?4 z$y`=sJae{yMwBH4PxpSm^tMD?H{-KT(?bqXAKKRHx^-SmNK6U04q3l8i94#2lCRh- z9G%WR9Cx6%ul+Z|S)8B6=vP*wh^mhg3<$E;D^G7LaqY8w#FKXdy!n5YtNrbd2AV*= zJv#}AaCeJYXTP`gt%NOAH+QUJQ4^rT@G}|9_*`<*0BxpiXL#(DM(;C(l`vNVtir!(I zW|xj0Fnw%O$DPVcR-7h{m7S@4u^3k|k%2~4Rcu);ka=%D*6^$66|+h4L%y9dutTmc z6_AcJB16fy&WRih3}rH2vHK$D8(oaI#C7{lM%So0wqSZgoNZioa*GGtZZz0r!(veTawA@FabVHTfb$sl<6AOZxh%13kTgM|3D)R_k zT8$qllLpoREk2T9b+vOH|BQ-_V-HVpM}0{jbxItH4szL@Zhb&SS`1nv!Hx+aQ$MlX*Hx&_(BBWj1F46|0a;23HF2sNiC4J zUgUMlaOoRTgvkc+;8)tt?iv-Ft$njOk0QR#oVmj1{|QlQQ|D*3`}G1;_a_uFL)E(N zF?R)zza!Srf=T1|n`yjH4rH!QVksRJVP4Iapn3~F>fr6tJn@@YYMp_yh$hGU2FrBeV7QVn-xStZFYyjy@?EF;*5; z@)_-AH++M%T&|w+l)GxTLx@@28q%U~P2UutB#UH>etMoqxOY^VU~S>nbR%`wP1!%W zjE**)Z=#T~z(Hj5S^M;9NoAANito<#>p=4%R{x2vAgf~swZ|(wPH1mc2Pl%{V7M{B zej#3mNjee%({_~f#r8@a%TO&MqZj7s(oFk5n-}|ON2~l|J~c-aT`%fvw4Pr@J7Jj) z*{3&)P53Y_zN_0d7I?L=J z(cf<*l#D2(wdY_Zr;5z@w7? z1hsv3lDt7q@oY9=!L^tg94 zvki&Y7&U=8l~0My6O|i{p?-qCk$VFz3^z)rl@R(ZD)jnx)gwb=pV*8ATG5G(1RFjo z1WQ?1vWn>f1n$J{D#UNDSf{jRf_KqxL`AIeH}lj5TA&7Xjd5aYM|#=8a9O&kl|H)_ zbS27O%dq}`WC1LP-+zFts}NB0LBTLw+XvOV7w{L;c8O>cl7uhWB-CLr1M4C~@h4x9 zD*;6BI{iKSSw$Z2>E4plrD!T${*Z{ETs)ux{)sjHUpTl5t9uo0PA^mN%!a5UCDXQf z4aNCbeQV;ltVc%1*Tbzo#m^1SLvNKn#1|>m8QXy3Ac#-sA#C{jxpx=snIPxzHgSlWha)p zx7k5^A6!&%ItWhV!6qMTX!p{|MTzhP^{y(_E4Y(ej}sr~jw-w4M4=il?{9u%TdR@K zllbUjye(|tPX6`$*3GyY9O!#@iB?Gx^M^$Q1$Q9UmA*5~?CfkgsdK+>AQfpDs5yjTD|JLJ`DZ=)orBb$@gWwV{1TRkOSKvO7BeN(h#e zOcgm2)8MIdR<%fm&{o-W#4vuBo@xZad`l9=!WV1c4Y-0U@fF=^eq^22!SyUP)p^tE zrASG@Cq{`^Awqwjv>-Xv!ZlU0*mWSc(&WE?71h2V;vj$3XDZOwjqm&R1p;~zpJ*BP zl$!`uoXtb04@0Xq`Sye((&13~Bbk^Kwz`se-K$^i4#*#Cosw#*!A*27d?)k-u5MnP zhQx!$J&_6sxN}!HEm&~#7wgo&-P3{MPQNz3nEGcj-Kik0AqZ8|DKy{eT&!e{u=}n|I~V2GJQ=4+eHlF;_4 zRGPI9{45>&y&k)@B1lGtxFuDD)tjxZ&Gj{_#nx+qjvfdC|BN!_`$xGa9P6Oxz#KGU zFK9){@GZ-bmVe%8LzX^=)ACaqX`Q;=NHr|!W}gJJ*Wr}FC>FXkZcY(yj#u~In4asW zOBc+N9vX!}C)#9twVL?5j%1VJOnB?tRNd}N@aQ#^_Ebq-&6{Fz*LMF?V=7sq_xwL` z1bgi?^*=F?o(c}yU6G%r_su|2GWGfS$6f3DyOas* zt^rl4sS&P$9)b&ywY3ZIh`XZ|uCzD(GTSS3p@?#&Y-2kYsmV?QX%8k*HfoRZ_DVuU z1|Y)-{a!oMv>=?%%v4^5H}j-P##)r~+vwrFf%#@aAOoR1cdqrdc?6|G7F4*=KG?pZ z;%2fpIVuX;B;nA}!ZDbJcwqV2zz{3Mys%uD;AsRV0`k7OmFoWN@BZ9Wig|Sl~+bdauSk~ z?gchgYOVjg&JKu60r+294VC5FtTiFZ-}2fYD0?OV70&Le6u0<=yt`zqOM6Ky5wGKu zPJUgB!DyMc6C_-30+wv5e(L)H@@1W%#m=|)%p!24%)!T6%*Gs@Zud|}EcebNM$KZ& z0c|^+>@dJAgPbK2jJ1iTXHKS_-m;pasicU%H?%%@87eO=vD5n#k6#g4b3?Qeb*V+M zuUODj&e6_y=Ya6t-L;$e8rAuwpp7qVyZyrWH(j2!UYQ{37|YNO>SP+tg8X4hSeb=>F1iX(Uv znef1vAe%?cFv?F!CNzscV zqO{6|IQ~w<#3Yf9*y3ihvdYaZ%lu0csD{@eI;p#B#1oU*gTm=>r>>GLOmCLQobI3J zT?H{0fWD-{7$a4z3(|a~+|-a{qxUOP41#53(nk|QnaOHD*rvfHK1DpHhH+GG-fR4D zbSI{E7`}~xVgx-s-B#C+gzd(T{~o>@9ee^vEt%VLv`vGmX484Bt^5hW2t3dz@g@IE z6^_}#acppG^xKe?vHc@`j=$7KX`gQ|7` zYZCb2F+u!ToMl>4u||RhTx~Y6B}>k+0MVjMc#0*#CxUhwVgkl+Osi<@P976BYf&a& z5wrHjb6ArM?Ujkva9j>@n&ay#t;4xBAq`|r$0zF3bhl?N3E=wB2C`1fgax1e@HKww zfdh*Fzz+;!*uz5|GcG_k_sS6WWYK@!6Cibf{KpT{I|=;M#mUzTZ9~927XZKNpfuRF zqXzkiD^)gX%hYA`@C^y)guaOzYc?rh%*G*i!XZ_g1siXXh}F%8rLelQM0i^4^SlU4a z4@kd1ZnmUGImf2X^}}G^%nY;!{sPPgGzP)799k7{h9+fO4qfv#2@t(rzP{ZDBiVnp zGG(y_$?4@`%U?v!9o!=`?G&5m5Gw<~I3oK^?yon;%dIl?d5h<4^pc&2Ds@5tlzQj~ zdShEm1zURbI5tfAW;@~dtW8MrvHrGGy;^yb(yfl!=Bc8y;?ZqZ9@}GOOJ-$6LR>IU z#Vlz_XH}|sZ(azr{aqD4Z!^$*D zMIq*__MLYjA!MMW%ValwZEifL3Q_(JZ#BwQemE1+cF0&xGV^itG*yYsQNo`T+}ngt z2=Z{Tfg1||5uk8!HUygUUcVk#?I%^*@I!qUhLyUy80N9jX~~dr3eoVvA5Yd z^~Ft93$V&OT1lL5nunOeR0p|K%Wa@BFeyT=1CT169f}Yre9(~iS0Xh;WnP`oSK-CS z)w{pvp>5pe6UY92(rkt*xcD(|dcZzl6Lk&fA;c`-Gf^B!sG8cv_z8l5{^vVdwP z$1D-xgyCw30jLFR^ROnNC+WrMh|LzhpD4`iV-wKy8)*00%~qXRDMEBl`6tD_BHbX; zQh_pupUWGFUoKL4R5Z9fWC~Gny$Mh^KZmfhAO3uU)ejlD?R=d~-mKV|jG>0u&*f%riWWc9kuS=1!UIdvuBe|Jvl<@`J6)K1KXpsyRqM)%B{UM+)F z;us0X3*7DewuPyA+i56Mi)~B1H6g^GtWQt`{a|$v-Xo8mN0}}g3{5sUY@A^dPgF3L zc(!goFC<2GEZ|--Bk{C}pi~J@EpfkEL_)i>avJx*58T_xi}29h7S4gCZflZ9Hl~*@ zabk{q{lqcx6L$4|JJx9-kJN_f3~K2zk@Z>3$=33VOK0kA9NkN21U`XM9qb3$<&;|rf6fM~ttsR^Eo&WC=Zfyqyu zY*TxpD_j-~Y&gXsNk0ktu6z*2CyGWS1i4Nm-$Wft?a^s>K^6;WX*SuT@R|R=vQt?z z^#Kq4QOp0oWj#C0UKi%&ONv<%<*co!%^g|d!-7Y)VfHrFLE&+VtA)MKf6H9eD;|0! zN-5GB>P8xHePaY&iZ-sIGgm{V>l41 z@8_)0*>5l+SLM{}*Sl+junaBLZiFyqzMA8L>AmM0L7~1EbvFs(yR+qCMI`Gg|Ag|B z2Xa}G{n3K&6YR%XBu4&!%hkw|*BWugpq%m1dUCJBjvuwvfucU9P%j%=rxep1$kruy z+o{#671MdvQue)Ky2ZVqws$*54FW@_2$3l79DI!3X}{M6lhh`5H{v@o5a@9x zimW+RJ3ZO%?`mHryA+!q7<{6;XVC@XYM&FeW+gNmQBB)XxH;&+X6{28$8neMTvT8;| zS_-e0qp|M^J^ zturL8s<+)Gk7IZ7v-F7N4i9F2Blh;6z^3A!*wB1VU1`c$om>+_!Emkg4~_y6v|%Zz z!EmpEY!kZ3uvJ+^ypq^^0-`;o z8m&BDb{ZEMcc8Y-?OMc3){eU^{aD9~`udgORMIh>U-E zP{C_>)bzjc5$ly7>Dd7@4T{Rk(^4K*FCqwBqe&1!8u9ov;9t`>y`c-hkS#ON2~MH( zb?xHb?%S#vqPG&&69*`to1-#av$_0t^NIxx;~`69RhAJ)y)R4bTX%^~o|rEoI+p2% z2)bB7Qt3@fxr-@L!6yiN;0cB~=HJ6zxT-N;?wrhwxdp(@n(phTWeHu-x*;lL7lgiIEl2u0+HTPv`3R zLNA6CWVh)MxT{o0z>T_R7b?MWFV5BfGvr55&j>&)YHQTfIm;LaP9mp|Yj4HzHmSu_ zN;Re4t(0hh@K$svEt_$au9736g zD;aa7WF*9`%8}21CE<3V=Q@0&)Ul(tD0^)E!7TKfNTY7E*H9uzS!$Dt)|4g+I!;;BVrK3N zmQ&7TW=)f6ZmDBtE@bWkVree9&@yG_Le{&qazit719vMIG!=2h70eA4Sp~?UG1{lReUs}wMI~uY z0`zAYr13_G1Hb^B&qQQhH|G(mGw(#At^8C#}QS$@a^a}8Rg)dUO^9kh_n7C1}P9@^#_gImD zL$v>)G+o*nuFU;Y35|3iNER4Pc0N9M`G33*YTHy8rI|(7W`JCAS3}}a{q(L>BZQag z!feMC7aRCNL;Cc6yF-nKj6J-%(>u+=Z%pa!Cf^}w@RL?thjKWrUEYDha$Zg$N}06Y z!L4WQv4kVSFmqIm*WM@H=GEI3EqsZ_?^sjjXZ2d*rL^LP<#8X*`K3fZ;`U!^%xbgE zs}$rfMHqnykv^NsBl>5GM)~V!xd!Q)_4f@2fRNDZ6p$rbEk`M@)>$6yYY9p-%QaoF zoOS=cloal`>bml-T;N{Z^qy}fYaIWveQI;#VgQ(Pv_Aa#>MrRtsIdZ&F8|Oc;$eMt zSuzPw68EG`wd~4Vp{48ZHytqr?b*gezKWy#eC7m$NCi(?%)FmBvMqS`wf969-vYfO zKU~#y$fTS;a)%HVj9rUR#uV6LxkEjlgP&xJzhF-LcSO+^+RX=M6iN81*7C23mqraQ z;!0E^pDhTiXs%$5n4TQjzGqjMN5?Knw#9H~Kjj9_o%XExjjVh3?3Y5QofTZ5@e&uY z_lY`8h~DR2wZC3iPS96+4)umR`hTVKtM-{KRH)jF&4Z>HxI+F#`AnE#bEEgmMyn~$ z-C65?%&sb#SS8QV{xqM_&R25b*m5{DgjU$`RJS#6X9`{a*j1YXzg&YMn(jg-=L6jM z23vdRO_Pn~3pmuEZ~0gPn=zE=k3Joc>(`Zo-huBhX7*S~(vooR?$XPh=})~6b^&!! zOF-9`af=o=U>n@M#oT7KCW>^lY9o@LY_m*czS~5ijo^Uhrhad_=8Xr5rQgZd+!-~! z@#0a6=`uj-r8m2#PGwh|P2lV-HvZ;Gsx9o#YR>#Ub zp1%6mi47(}|MG$KhnlP1B3z@83iXZldN?X)7mgYyX=ar2@h2UwvdfPobtnVec zV$ek`izsl8LUnz+K>+-no_Wk9wlqgYBYPkJ!1#@ex2|{G<~X;@`sq>Cd|tr}6wDiQ zBVk_PlZN3rV(NL`sZL*HiqTek2d~nDOTGMW!wE(U{FFabL9EGi&= zQxq2j!+r35@@yBB-Am&@!jkn8)wht13hi^_gmcs%658t43oU7jiRq;TpCudR$$OND z`qoU!JYhl%~ z^#d|T(i6>A)>mcF@tFak*GK?G?o+mC98gyAS|jQ`QJ3VrRxA#I)^%5D~n3vZQhLbPN<$O?nttDkAk6_ z*TV%zo2&+|;&b){tro;R*99bSu5VL%*S)89R>GPg`eVx*5A8MrOcHlBfYnK$_iPHn zQBG!uQ>%8fz$D3qz#%T~^0)~k{yplB&xQg_+M4#15Y&2@klPT8I}n3w>6Zs6cE{o& zzsG9|JHtvJSO{r`H2sf&RQYjo0iP4{1LHY5T(EsuJbe+`@BzL1)|*pDPS)Zxl$?@J zB-vCJ8xeD$c-*g2QSHLNDT4$RwLDvJlhXN9hmWCdC+0oGIR0_ejcaYmo(_tW_mq&q z!VOo)t534}HE*nFm#1OkAFl__fde5iGN6##T=~xbWr8TNy4g9!eD(`wxA0-gsHP*^ zGSQfl?52~ULCOkuoWB{~T>f#abZNtHIenc*l|7%-mZ1%9OC8}?+8QO%IHNzV)9CY* zf$ezHdxh`>wzE}@^{4XJ8JiOP(AT<>a$H5Z7c7h{p~eDAhFk$_MrKmQ(SL}begl2_ zMi2eU0;jwTbSjXT52>>9Krqtznu+{ zorjFgjkz(qZdDD5fC0gqOiYPAB|^PxrCOKI>5=kq=}>+qdwGd?cP%#5*F1R}u0COPrnfAbnn8>r0C7N!(S?tcPn36uWu<`a|hG z05KgWhNRA#f59{oK`(4fH3^wf?6R0oOTX%SF6(jT-1^DQ#w{4Hj=UpPeLqs1Zv`Y- zbuZpNr-Ug6Ud6znG;)Jj5dA=QLhy*9wu8}B(pwQ0lSW4Ju4u zIo`@(t?iusjSi6|DvjmX#@+T<{zsC?!Yx9w>gWI>Fn!ioTJg) zWd%;S4U(9TPyXDNiZ(vJc9fwIcN#`xEZlBB12dmYDOJ0ZSdkDryG{MZ3*FX&sh7Kh z3rX)q%$TOSUH(G%=_|w0?7gy+7?bGdx?H`1?OSQz<};Hs!&V0$dAmjbP=lBofBC^` zP?-CdE_-5j_Ik+TP=)8Yf32Ha0@f4s@1BTfQGN`taO1(Xu!QU=|4?S_y4Pkinu^yh z4C7)*v3)9b?ZG_8m@_)un|X^n?KE5s9I)~TeYHsA)z2aLbBE(K)^z1YbNh&J1P93U z0pJ_gqn8uELbBL%tx_Ea)+w12FqDivqcd^5hhlD$|9RxT)#Oh{S0lGgj90$4E{MZ+ zHMDhG9Xy#{m3uexma6c@l-g63g%W!7LXjtq(sWr4SeYY#&WT~)mBkh|PiE0Sr^xXc z<*AFe9I0kNS7~JhJ&2Cy%L7Yx2w+Ph*V;DyCG)=`ZF~QT%>OX};9l-^(U0|2T{R)) zLmkh`kNKu`DH=CzEc8_58NR20H7g;Svu)?51CQRetNBu;Hz&q*M%9Z*9b}XJ(f{^o$b1yPnQw|sTKO# zGCKd7-A`ZJ()cIvHL<%p;>(YbJL8H0Z9C(tXid`c794720CwyP~+IFtcXWIEtZ*FEAr>ybWPc^QiCC~RbKi}!AK00hLSs2(6}PQxy;O(4Sfw7c#H=PknEMEk8?&_T zH+Uz4Iwr~2kRCm~qVf*NH>vIoQO`PJAa)nOyYgofEfR4kjG1wjl~?FvX%uM|d$6_I zgbKeq)O-_$Q7|Se$EGDlirCIQs*Wdi*xAFp)1a^S0=Fs-(>#dlny~y1_(HD&l`J1PFfS=P$hPGIHF+KiE_#+-ZgA80v>(e8wb1xJ>R~$R{5@4 zGA>@uc^sYFG6F=iwzeHQayjxkgl7u#OBSUjPo8?8oB|{Y%5lE9RHq2 zahp0^J>sq8uOXSU`MDJ<aBhLQ6 z=~w>W#Z#7S>58dRdH`rvJ{2slt{k=NY&vTOVSkW$~&(104?+-toMCuWpgX^)|)%o8VdBM@1^O_)N2fhC{0D@UU?AHfYF5Zy3> zK^N2#$_

OrrCaNJ5zcNDde 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ԵQ4w4W$B9N@4x8ieNrae9z7 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