├── .gitignore ├── .prettierrc ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── index.html ├── package.json ├── src ├── component │ ├── Canvas │ │ ├── index.tsx │ │ └── styles.scss │ ├── CanvasBlock │ │ ├── index.tsx │ │ └── styles.scss │ ├── Note │ │ ├── index.tsx │ │ ├── styles.scss │ │ └── svg-definitions.tsx │ └── svg │ │ ├── Clipboard │ │ ├── index.tsx │ │ └── style.scss │ │ ├── Computer │ │ ├── index.tsx │ │ └── style.scss │ │ ├── Favorite │ │ ├── index.tsx │ │ └── style.scss │ │ ├── Link │ │ ├── index.tsx │ │ └── style.scss │ │ ├── Megaphone │ │ ├── index.tsx │ │ └── style.scss │ │ ├── Notification │ │ ├── index.tsx │ │ └── style.scss │ │ ├── ShoppingCartAdd │ │ ├── index.tsx │ │ └── style.scss │ │ ├── Tag │ │ ├── index.tsx │ │ └── style.scss │ │ └── Users │ │ ├── index.tsx │ │ └── style.scss ├── main.tsx ├── state │ ├── index.tsx │ └── manager.tsx ├── utility │ ├── cn.ts │ ├── min-width.scss │ └── storage.ts └── vite-env.d.ts ├── tsconfig.json ├── tsconfig.node.json ├── vite.config.ts └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | !.vscode/extensions.json 2 | .DS_Store 3 | .env 4 | .env.development.local 5 | .env.local 6 | .env.production.local 7 | .env.test.local 8 | .idea 9 | .pnp.js 10 | .vscode/* 11 | *.local 12 | *.log 13 | *.njsproj 14 | *.ntvs* 15 | *.sln 16 | *.suo 17 | *.sw? 18 | /.pnp 19 | /build 20 | /coverage 21 | dist 22 | dist-ssr 23 | lerna-debug.log* 24 | logs 25 | node_modules 26 | npm-debug.log* 27 | package-lock.js 28 | pnpm-debug.log* 29 | yarn-debug.log* 30 | yarn-error.log* -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 80, 3 | "tabWidth": 2, 4 | "useTabs": false, 5 | "semi": true, 6 | "singleQuote": true, 7 | "trailingComma": "none", 8 | "bracketSpacing": true, 9 | "jsxBracketSameLine": true, 10 | "quoteProps": "consistent" 11 | } 12 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | Thank you for your interest in this project! 4 | 5 | ## Philosophy 6 | 7 | 1. [First principles](https://medium.com/@ameet/what-musk-bezos-thiel-and-feynman-teach-us-about-first-principles-261967d3e347) guide the development of this project 8 | 2. [Category](https://www.youtube.com/watch?v=jBkO1eerU8A) [theory](https://www.youtube.com/watch?v=-FkgOHvNAU8&t=0s&index=2&list=PLwuUlC2HlHGe7vmItFmrdBLn6p0AS8ALX) helps us think about and apply first principles 9 | 3. Design decisions should not be made if they don't have to be 10 | 11 | ## Code Patterns 12 | 13 | Code Patterns are *very* important. Documentation is TBD. Please infer based on existing code for now. 14 | 15 | ## Dependencies 16 | 17 | * Will be added only as needed 18 | * Should be secure, up to date, and actively maintained 19 | * Should be selected after comparison with other libraries 20 | 21 | A great tool for vetting libraries is https://npms.io 22 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Stephen Bussard 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Canvas-sketch 2 | 3 | A web app to sketch out a [business model canvas](https://en.wikipedia.org/wiki/Business_Model_Canvas). 4 | 5 | [The app is available free online](https://sbussard.github.io/canvas-sketch/). 6 | 7 | ## Environment 8 | 9 | `node` and `yarn` 10 | 11 | | Variable | Required | Value | 12 | | ------------------- | -------------- | --------------------------------- | 13 | | GOOGLE_ANALYTICS_ID | For Production | Your Google Analytics property id | 14 | 15 | ## Install 16 | 17 | `yarn` 18 | 19 | ## Develop 20 | 21 | `yarn dev` 22 | 23 | ## Build 24 | 25 | `yarn build` 26 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Canvas Sketch 8 | 9 | 10 | 18 | 19 | 117 | 118 | 119 | 120 |
121 | 122 | 128 | 129 | 130 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "canvas-sketch", 3 | "private": true, 4 | "version": "0.3.0", 5 | "homepage": "https://sbussard.github.io/canvas-sketch/", 6 | "type": "module", 7 | "scripts": { 8 | "dev": "vite", 9 | "build": "tsc && vite build", 10 | "preview": "vite preview", 11 | "predeploy": "yarn build", 12 | "deploy": "gh-pages -d dist" 13 | }, 14 | "dependencies": { 15 | "@types/node": "^18.11.9", 16 | "gh-pages": "^4.0.0", 17 | "immer": "^9.0.16", 18 | "react": "^18.2.0", 19 | "react-dom": "^18.2.0", 20 | "sass": "^1.56.1", 21 | "vite-plugin-html": "^3.2.0" 22 | }, 23 | "devDependencies": { 24 | "@types/react": "^18.0.24", 25 | "@types/react-dom": "^18.0.8", 26 | "@vitejs/plugin-react": "^2.2.0", 27 | "typescript": "^4.6.4", 28 | "vite": "^3.2.3" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/component/Canvas/index.tsx: -------------------------------------------------------------------------------- 1 | import CanvasBlock from 'src/component/CanvasBlock'; 2 | 3 | import Clipboard from 'src/component/svg/Clipboard'; 4 | import Computer from 'src/component/svg/Computer'; 5 | import Favorite from 'src/component/svg/Favorite'; 6 | import Link from 'src/component/svg/Link'; 7 | import Megaphone from 'src/component/svg/Megaphone'; 8 | import Notification from 'src/component/svg/Notification'; 9 | import ShoppingCartAdd from 'src/component/svg/ShoppingCartAdd'; 10 | import Tag from 'src/component/svg/Tag'; 11 | import Users from 'src/component/svg/Users'; 12 | import useAppState from 'src/state'; 13 | import './styles.scss'; 14 | 15 | const icons = [ 16 | Link, 17 | Clipboard, 18 | Computer, 19 | Favorite, 20 | Notification, 21 | Megaphone, 22 | Users, 23 | Tag, 24 | ShoppingCartAdd 25 | ]; 26 | 27 | export default function Canvas() { 28 | const { state } = useAppState(); 29 | 30 | return ( 31 |
32 | {state.map(({ name }, boxIndex) => ( 33 | 34 | ))} 35 |
36 | ); 37 | } 38 | -------------------------------------------------------------------------------- /src/component/Canvas/styles.scss: -------------------------------------------------------------------------------- 1 | @import 'src/utility/min-width'; 2 | 3 | @mixin VerticalList { 4 | display: grid; 5 | grid-gap: 0.25em; 6 | } 7 | 8 | @mixin TwoColumns { 9 | display: grid; 10 | grid-template-columns: repeat(2, 1fr); 11 | 12 | > *:last-child { 13 | grid-column: 1/3; 14 | } 15 | } 16 | 17 | @mixin BusinessModelCanvas { 18 | display: grid; 19 | grid-template-columns: repeat(10, 1fr); 20 | grid-template-rows: repeat(3, 1fr); 21 | grid-gap: 0.25em; 22 | 23 | > * { 24 | &:nth-child(1) { 25 | grid-column: 1/3; 26 | grid-row: 1/3; 27 | } 28 | 29 | &:nth-child(2) { 30 | grid-column: 3/5; 31 | grid-row: 1/2; 32 | } 33 | 34 | &:nth-child(3) { 35 | grid-column: 3/5; 36 | grid-row: 2/3; 37 | } 38 | 39 | &:nth-child(4) { 40 | grid-column: 5/7; 41 | grid-row: 1/3; 42 | } 43 | 44 | &:nth-child(5) { 45 | grid-column: 7/9; 46 | grid-row: 1/2; 47 | } 48 | 49 | &:nth-child(6) { 50 | grid-column: 7/9; 51 | grid-row: 2/3; 52 | } 53 | 54 | &:nth-child(7) { 55 | grid-column: 9/11; 56 | grid-row: 1/3; 57 | } 58 | 59 | &:nth-child(8) { 60 | grid-column: 1/6; 61 | } 62 | 63 | &:nth-child(9) { 64 | grid-column: 6/11; 65 | } 66 | } 67 | } 68 | 69 | .Canvas { 70 | width: 100%; 71 | padding: 1em; 72 | 73 | @include VerticalList; 74 | 75 | @include min-width(600px) { 76 | @include TwoColumns; 77 | } 78 | 79 | @include min-width(1000px) { 80 | @include BusinessModelCanvas; 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /src/component/CanvasBlock/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { useContext } from 'react'; 2 | import useAppState from 'src/state'; 3 | import Note from 'src/component/Note'; 4 | import './styles.scss'; 5 | 6 | import type { MouseEvent } from 'react'; 7 | 8 | export default ({ Icon, boxIndex }: { Icon: any; boxIndex: number }) => { 9 | const { state, addBlockItem, removeBlockItem } = useAppState(); 10 | const { name, data } = state[boxIndex]; 11 | 12 | const handleAddClick = (event: MouseEvent) => { 13 | const item = prompt(`Enter new ${state[boxIndex].name} item`); 14 | if (!item) return; 15 | addBlockItem(boxIndex, item); 16 | }; 17 | 18 | const handleRemoveClick = (event: MouseEvent) => { 19 | const index = Number(event.currentTarget.dataset.index); 20 | const proceed = confirm(`Remove item "${state[boxIndex].data[index]}"?`); 21 | if (!proceed) return; 22 | removeBlockItem(boxIndex, index); 23 | }; 24 | 25 | return ( 26 |
27 |
28 | {name} 29 | 32 | 33 |
34 |
    35 | {data.map((item: string, index: number) => ( 36 | 42 | ))} 43 |
44 |
45 | ); 46 | }; 47 | -------------------------------------------------------------------------------- /src/component/CanvasBlock/styles.scss: -------------------------------------------------------------------------------- 1 | .CanvasBlock { 2 | background: var(--theme-surface); 3 | padding: 1em; 4 | display: flex; 5 | flex-direction: column; 6 | position: relative; 7 | 8 | &-header { 9 | display: inline-grid; 10 | grid-auto-flow: column; 11 | grid-template-columns: 1fr auto auto; 12 | position: relative; 13 | align-items: center; 14 | margin-bottom: 1em; 15 | } 16 | 17 | &-name { 18 | font-weight: bold; 19 | color: var(--theme-surface-contrast); 20 | } 21 | 22 | &-list { 23 | } 24 | 25 | &-icon { 26 | --icon-color: var(--theme-primary); 27 | width: 1em; 28 | height: 1em; 29 | margin-left: auto; 30 | flex-shrink: 0; 31 | } 32 | 33 | &-button { 34 | cursor: pointer; 35 | border: 0; 36 | color: var(--theme-surface-contrast-soft); 37 | outline: none; 38 | background: transparent; 39 | 40 | &:hover { 41 | color: var(--theme-primary); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/component/Note/index.tsx: -------------------------------------------------------------------------------- 1 | import './styles.scss'; 2 | 3 | import type { HTMLAttributes } from 'react'; 4 | 5 | interface Props extends HTMLAttributes { 6 | text: string; 7 | } 8 | 9 | export default ({ text, ...containerProps }: Props) => ( 10 |
11 |
12 |
{text}
13 |
14 |
15 | ); 16 | -------------------------------------------------------------------------------- /src/component/Note/styles.scss: -------------------------------------------------------------------------------- 1 | .Note { 2 | --transition-time: 350ms; 3 | 4 | cursor: pointer; 5 | color: var(--gray-xxdark); 6 | display: inline-block; 7 | padding: 0.25em; 8 | font-family: var(--caveat); 9 | font-size: 1.5em; 10 | transform: rotate(1deg); 11 | position: relative; 12 | transition: filter var(--transition-time) ease; 13 | filter: drop-shadow(0 0 0.1rem var(--yellow)) 14 | drop-shadow(0 0.1rem 0.01rem hsla(0, 0%, 0%, 0.25)) 15 | drop-shadow(0 0.8rem 0.25rem hsla(0, 0%, 0%, 0)); 16 | will-change: filter; 17 | 18 | &-content { 19 | background-color: var(--yellow); 20 | background-image: linear-gradient( 21 | 135deg, 22 | var(--yellow), 23 | var(--yellow-xlight) 24 | ); 25 | clip-path: url(#stickyNotePathDefault); 26 | padding: 0.5em 1em; 27 | } 28 | 29 | &-content:after { 30 | content: ''; 31 | left: 0; 32 | right: 0; 33 | top: 0; 34 | bottom: 0; 35 | position: absolute; 36 | background-image: linear-gradient( 37 | 180deg, 38 | transparent 50%, 39 | var(--yellow-xlight) 75% 40 | ); 41 | z-index: -1; 42 | opacity: 0; 43 | transition: ease all var(--transition-time); 44 | } 45 | 46 | &-text { 47 | display: inline-grid; 48 | place-content: center center; 49 | max-width: 15ch; 50 | text-align: center; 51 | aspect-ratio: 1 / 1; 52 | z-index: 2; 53 | } 54 | 55 | &:hover { 56 | transition: filter var(--transition-time) ease; 57 | filter: drop-shadow(0 0.1rem 0 var(--yellow)) 58 | drop-shadow(0 1rem 0.2rem hsla(0, 0%, 0%, 0.15)); 59 | } 60 | 61 | &:hover &-content::after { 62 | opacity: 1; 63 | transition: ease all var(--transition-time); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/component/Note/svg-definitions.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | // Definition of sticky note path 4 | // Added here to make it responsive 5 | // https://stackoverflow.com/questions/28311741/responsive-clip-path-with-inline-svg/28312070#28312070 6 | export default () => ( 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | ); 15 | -------------------------------------------------------------------------------- /src/component/svg/Clipboard/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { SVGProps } from 'react'; 2 | import cn from 'src/utility/cn'; 3 | import './style.scss'; 4 | 5 | export default ({ className, ...svgProps }: SVGProps) => ( 6 | 13 | 18 | 19 | ); 20 | -------------------------------------------------------------------------------- /src/component/svg/Clipboard/style.scss: -------------------------------------------------------------------------------- 1 | .MonoIcon-Clipboard { 2 | fill: var(--icon-color, var(--theme-surface-contrast)); 3 | } 4 | -------------------------------------------------------------------------------- /src/component/svg/Computer/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { SVGProps } from 'react'; 2 | import cn from 'src/utility/cn'; 3 | import './style.scss'; 4 | 5 | export default ({ className, ...svgProps }: SVGProps) => ( 6 | 13 | 18 | 19 | ); 20 | -------------------------------------------------------------------------------- /src/component/svg/Computer/style.scss: -------------------------------------------------------------------------------- 1 | .MonoIcon-Computer { 2 | fill: var(--icon-color, var(--theme-surface-contrast)); 3 | } 4 | -------------------------------------------------------------------------------- /src/component/svg/Favorite/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { SVGProps } from 'react'; 2 | import cn from 'src/utility/cn'; 3 | import './style.scss'; 4 | 5 | export default ({ className, ...svgProps }: SVGProps) => ( 6 | 13 | 18 | 19 | ); 20 | -------------------------------------------------------------------------------- /src/component/svg/Favorite/style.scss: -------------------------------------------------------------------------------- 1 | .MonoIcon-Favorite { 2 | fill: var(--icon-color, var(--theme-surface-contrast)); 3 | } 4 | -------------------------------------------------------------------------------- /src/component/svg/Link/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { SVGProps } from 'react'; 2 | import cn from 'src/utility/cn'; 3 | import './style.scss'; 4 | 5 | export default ({ className, ...svgProps }: SVGProps) => ( 6 | 13 | 18 | 19 | ); 20 | -------------------------------------------------------------------------------- /src/component/svg/Link/style.scss: -------------------------------------------------------------------------------- 1 | .MonoIcon-Link { 2 | fill: var(--icon-color, var(--theme-surface-contrast)); 3 | } 4 | -------------------------------------------------------------------------------- /src/component/svg/Megaphone/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { SVGProps } from 'react'; 2 | import cn from 'src/utility/cn'; 3 | import './style.scss'; 4 | 5 | export default ({ className, ...svgProps }: SVGProps) => ( 6 | 13 | 18 | 19 | ); 20 | -------------------------------------------------------------------------------- /src/component/svg/Megaphone/style.scss: -------------------------------------------------------------------------------- 1 | .MonoIcon-Megaphone { 2 | fill: var(--icon-color, var(--theme-surface-contrast)); 3 | } 4 | -------------------------------------------------------------------------------- /src/component/svg/Notification/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { SVGProps } from 'react'; 2 | import cn from 'src/utility/cn'; 3 | import './style.scss'; 4 | 5 | export default ({ className, ...svgProps }: SVGProps) => ( 6 | 13 | 18 | 19 | ); 20 | -------------------------------------------------------------------------------- /src/component/svg/Notification/style.scss: -------------------------------------------------------------------------------- 1 | .MonoIcon-Notification { 2 | fill: var(--icon-color, var(--theme-surface-contrast)); 3 | } 4 | -------------------------------------------------------------------------------- /src/component/svg/ShoppingCartAdd/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { SVGProps } from 'react'; 2 | import cn from 'src/utility/cn'; 3 | import './style.scss'; 4 | 5 | export default ({ className, ...svgProps }: SVGProps) => ( 6 | 13 | 14 | 15 | 16 | 17 | 18 | ); 19 | -------------------------------------------------------------------------------- /src/component/svg/ShoppingCartAdd/style.scss: -------------------------------------------------------------------------------- 1 | .MonoIcon-ShoppingCartAdd { 2 | fill: var(--icon-color, var(--theme-surface-contrast)); 3 | } 4 | -------------------------------------------------------------------------------- /src/component/svg/Tag/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { SVGProps } from 'react'; 2 | import cn from 'src/utility/cn'; 3 | import './style.scss'; 4 | 5 | export default ({ className, ...svgProps }: SVGProps) => ( 6 | 13 | 18 | 19 | 20 | ); 21 | -------------------------------------------------------------------------------- /src/component/svg/Tag/style.scss: -------------------------------------------------------------------------------- 1 | .MonoIcon-Tag { 2 | fill: var(--icon-color, var(--theme-surface-contrast)); 3 | } 4 | -------------------------------------------------------------------------------- /src/component/svg/Users/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { SVGProps } from 'react'; 2 | import cn from 'src/utility/cn'; 3 | import './style.scss'; 4 | 5 | export default ({ className, ...svgProps }: SVGProps) => ( 6 | 13 | 18 | 19 | ); 20 | -------------------------------------------------------------------------------- /src/component/svg/Users/style.scss: -------------------------------------------------------------------------------- 1 | .MonoIcon-Users { 2 | fill: var(--icon-color, var(--theme-surface-contrast)); 3 | } 4 | -------------------------------------------------------------------------------- /src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom/client'; 3 | import { AppStateProvider } from 'src/state'; 4 | import Canvas from 'src/component/Canvas'; 5 | import SVGDefinitions from 'src/component/Note/svg-definitions'; 6 | 7 | ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( 8 | 9 | 10 | 11 | 12 | 13 | 14 | ); 15 | -------------------------------------------------------------------------------- /src/state/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { createContext, useContext } from 'react'; 2 | import useAppStateManager from 'src/state/manager'; 3 | 4 | type AppState = ReturnType; 5 | const context = createContext({ 6 | initialized: false 7 | } as AppState); 8 | 9 | export const AppStateProvider = ({ children }: { children: Children }) => { 10 | const value = useAppStateManager.bind(true)(); 11 | return ; 12 | }; 13 | 14 | export default function useAppState() { 15 | const value = useContext(context); 16 | 17 | if (!value) { 18 | throw new Error('useAppState cannot run outside of its Provider'); 19 | } 20 | 21 | return value; 22 | } 23 | -------------------------------------------------------------------------------- /src/state/manager.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import produce from 'immer'; 3 | import { loadCanvas, saveCanvas } from 'src/utility/storage'; 4 | import type { CanvasType } from 'src/utility/storage'; 5 | 6 | export default function (this: boolean) { 7 | if (!this) throw new Error('Improper import of useAppStateManager'); 8 | const [state, setState] = useState(loadCanvas()); 9 | 10 | const addBlockItem = (boxIndex: number, item: string) => { 11 | setState((state) => { 12 | const newState = produce(state, (draftState) => { 13 | const part = produce(draftState[boxIndex].data, (data) => { 14 | data.push(item); 15 | }); 16 | draftState[boxIndex].data = part; 17 | }); 18 | saveCanvas(newState); 19 | return newState; 20 | }); 21 | }; 22 | 23 | const removeBlockItem = (boxIndex: number, index: number) => { 24 | setState((state) => { 25 | const newState = produce(state, (draftState) => { 26 | const part = produce(draftState[boxIndex].data, (data) => { 27 | data.splice(index, 1); 28 | }); 29 | draftState[boxIndex].data = part; 30 | }); 31 | saveCanvas(newState); 32 | return newState; 33 | }); 34 | }; 35 | 36 | return { 37 | initialized: true, 38 | state, 39 | addBlockItem, 40 | removeBlockItem 41 | }; 42 | } 43 | -------------------------------------------------------------------------------- /src/utility/cn.ts: -------------------------------------------------------------------------------- 1 | // simple utility to join strings together 2 | // for use with className 3 | export default function cn(...args: any[]) { 4 | return args.filter(Boolean).join(' '); 5 | } 6 | -------------------------------------------------------------------------------- /src/utility/min-width.scss: -------------------------------------------------------------------------------- 1 | @mixin min-width($value) { 2 | @media (min-width: $value) { 3 | @content; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/utility/storage.ts: -------------------------------------------------------------------------------- 1 | export type CanvasType = { 2 | name: string; 3 | data: string[]; 4 | }[]; 5 | 6 | const canvasTemplate: CanvasType = [ 7 | { name: 'Key Partnerships', data: [] }, 8 | { name: 'Key Activities', data: [] }, 9 | { name: 'Key Resources', data: [] }, 10 | { name: 'Value Propositions', data: [] }, 11 | { name: 'Customer Relationships', data: [] }, 12 | { name: 'Channels', data: [] }, 13 | { name: 'Customer Segments', data: [] }, 14 | { name: 'Cost Structure', data: [] }, 15 | { name: 'Revenue Streams', data: [] } 16 | ]; 17 | 18 | const KEY = 'canvas'; 19 | const VERSION = '0.3'; 20 | const getMetadata = () => ({ 21 | version: VERSION, 22 | lastUpdated: new Date().toISOString() 23 | }); 24 | 25 | export const saveCanvas = (canvas: CanvasType) => { 26 | localStorage.setItem( 27 | KEY, 28 | btoa(encodeURIComponent(JSON.stringify([getMetadata(), canvas]))) 29 | ); 30 | }; 31 | 32 | const convertOldSavedData = (oldCanvas: { [key: string]: string }) => { 33 | try { 34 | const newCanvas = Object.entries(oldCanvas).flatMap(([key, value]) => [ 35 | { name: key, data: value } 36 | ]); 37 | return [getMetadata(), newCanvas]; 38 | } catch { 39 | return [getMetadata(), canvasTemplate]; 40 | } 41 | }; 42 | 43 | export const loadCanvas = () => { 44 | const savedCanvas = localStorage.getItem(KEY); 45 | if (!savedCanvas) return canvasTemplate; 46 | const retrievedData = JSON.parse(decodeURIComponent(atob(savedCanvas))); 47 | const [metadata, data] = Array.isArray(retrievedData) 48 | ? retrievedData 49 | : convertOldSavedData(retrievedData); 50 | return data; 51 | }; 52 | -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare type Children = boolean | string | JSX.Element | Children[]; 4 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "lib": ["DOM", "DOM.Iterable", "ESNext"], 6 | "allowJs": false, 7 | "skipLibCheck": true, 8 | "esModuleInterop": false, 9 | "allowSyntheticDefaultImports": true, 10 | "strict": true, 11 | "forceConsistentCasingInFileNames": true, 12 | "module": "ESNext", 13 | "moduleResolution": "Node", 14 | "resolveJsonModule": true, 15 | "isolatedModules": true, 16 | "noEmit": true, 17 | "jsx": "react-jsx", 18 | "paths": { 19 | "src/*": ["./src/*"] 20 | } 21 | }, 22 | "include": ["src"], 23 | "references": [{ "path": "./tsconfig.node.json" }] 24 | } 25 | -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import react from '@vitejs/plugin-react'; 3 | import { createHtmlPlugin } from 'vite-plugin-html'; 4 | import path from 'path'; 5 | 6 | // https://vitejs.dev/config/ 7 | export default defineConfig({ 8 | base: '/canvas-sketch/', 9 | plugins: [ 10 | react(), 11 | createHtmlPlugin({ 12 | minify: true, 13 | inject: { 14 | data: { 15 | GOOGLE_ANALTICS_ID: process.env.GOOGLE_ANALTICS_ID ?? 'UA-24399886-3' 16 | } 17 | } 18 | }) 19 | ], 20 | resolve: { 21 | alias: [{ find: 'src', replacement: path.resolve(__dirname, 'src') }] 22 | } 23 | }); 24 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ampproject/remapping@^2.1.0": 6 | version "2.2.0" 7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" 8 | integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== 9 | dependencies: 10 | "@jridgewell/gen-mapping" "^0.1.0" 11 | "@jridgewell/trace-mapping" "^0.3.9" 12 | 13 | "@babel/code-frame@^7.18.6": 14 | version "7.18.6" 15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" 16 | integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== 17 | dependencies: 18 | "@babel/highlight" "^7.18.6" 19 | 20 | "@babel/compat-data@^7.20.0": 21 | version "7.20.1" 22 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" 23 | integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== 24 | 25 | "@babel/core@^7.19.6": 26 | version "7.20.2" 27 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92" 28 | integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g== 29 | dependencies: 30 | "@ampproject/remapping" "^2.1.0" 31 | "@babel/code-frame" "^7.18.6" 32 | "@babel/generator" "^7.20.2" 33 | "@babel/helper-compilation-targets" "^7.20.0" 34 | "@babel/helper-module-transforms" "^7.20.2" 35 | "@babel/helpers" "^7.20.1" 36 | "@babel/parser" "^7.20.2" 37 | "@babel/template" "^7.18.10" 38 | "@babel/traverse" "^7.20.1" 39 | "@babel/types" "^7.20.2" 40 | convert-source-map "^1.7.0" 41 | debug "^4.1.0" 42 | gensync "^1.0.0-beta.2" 43 | json5 "^2.2.1" 44 | semver "^6.3.0" 45 | 46 | "@babel/generator@^7.20.1", "@babel/generator@^7.20.2": 47 | version "7.20.4" 48 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.4.tgz#4d9f8f0c30be75fd90a0562099a26e5839602ab8" 49 | integrity sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA== 50 | dependencies: 51 | "@babel/types" "^7.20.2" 52 | "@jridgewell/gen-mapping" "^0.3.2" 53 | jsesc "^2.5.1" 54 | 55 | "@babel/helper-annotate-as-pure@^7.18.6": 56 | version "7.18.6" 57 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" 58 | integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== 59 | dependencies: 60 | "@babel/types" "^7.18.6" 61 | 62 | "@babel/helper-compilation-targets@^7.20.0": 63 | version "7.20.0" 64 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" 65 | integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== 66 | dependencies: 67 | "@babel/compat-data" "^7.20.0" 68 | "@babel/helper-validator-option" "^7.18.6" 69 | browserslist "^4.21.3" 70 | semver "^6.3.0" 71 | 72 | "@babel/helper-environment-visitor@^7.18.9": 73 | version "7.18.9" 74 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" 75 | integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== 76 | 77 | "@babel/helper-function-name@^7.19.0": 78 | version "7.19.0" 79 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" 80 | integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== 81 | dependencies: 82 | "@babel/template" "^7.18.10" 83 | "@babel/types" "^7.19.0" 84 | 85 | "@babel/helper-hoist-variables@^7.18.6": 86 | version "7.18.6" 87 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" 88 | integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== 89 | dependencies: 90 | "@babel/types" "^7.18.6" 91 | 92 | "@babel/helper-module-imports@^7.18.6": 93 | version "7.18.6" 94 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" 95 | integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== 96 | dependencies: 97 | "@babel/types" "^7.18.6" 98 | 99 | "@babel/helper-module-transforms@^7.20.2": 100 | version "7.20.2" 101 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712" 102 | integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA== 103 | dependencies: 104 | "@babel/helper-environment-visitor" "^7.18.9" 105 | "@babel/helper-module-imports" "^7.18.6" 106 | "@babel/helper-simple-access" "^7.20.2" 107 | "@babel/helper-split-export-declaration" "^7.18.6" 108 | "@babel/helper-validator-identifier" "^7.19.1" 109 | "@babel/template" "^7.18.10" 110 | "@babel/traverse" "^7.20.1" 111 | "@babel/types" "^7.20.2" 112 | 113 | "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.19.0": 114 | version "7.20.2" 115 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" 116 | integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== 117 | 118 | "@babel/helper-simple-access@^7.20.2": 119 | version "7.20.2" 120 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" 121 | integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== 122 | dependencies: 123 | "@babel/types" "^7.20.2" 124 | 125 | "@babel/helper-split-export-declaration@^7.18.6": 126 | version "7.18.6" 127 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" 128 | integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== 129 | dependencies: 130 | "@babel/types" "^7.18.6" 131 | 132 | "@babel/helper-string-parser@^7.19.4": 133 | version "7.19.4" 134 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" 135 | integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== 136 | 137 | "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": 138 | version "7.19.1" 139 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" 140 | integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== 141 | 142 | "@babel/helper-validator-option@^7.18.6": 143 | version "7.18.6" 144 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" 145 | integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== 146 | 147 | "@babel/helpers@^7.20.1": 148 | version "7.20.1" 149 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9" 150 | integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== 151 | dependencies: 152 | "@babel/template" "^7.18.10" 153 | "@babel/traverse" "^7.20.1" 154 | "@babel/types" "^7.20.0" 155 | 156 | "@babel/highlight@^7.18.6": 157 | version "7.18.6" 158 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" 159 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== 160 | dependencies: 161 | "@babel/helper-validator-identifier" "^7.18.6" 162 | chalk "^2.0.0" 163 | js-tokens "^4.0.0" 164 | 165 | "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2": 166 | version "7.20.3" 167 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2" 168 | integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg== 169 | 170 | "@babel/plugin-syntax-jsx@^7.18.6": 171 | version "7.18.6" 172 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" 173 | integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== 174 | dependencies: 175 | "@babel/helper-plugin-utils" "^7.18.6" 176 | 177 | "@babel/plugin-transform-react-jsx-development@^7.18.6": 178 | version "7.18.6" 179 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" 180 | integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA== 181 | dependencies: 182 | "@babel/plugin-transform-react-jsx" "^7.18.6" 183 | 184 | "@babel/plugin-transform-react-jsx-self@^7.18.6": 185 | version "7.18.6" 186 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz#3849401bab7ae8ffa1e3e5687c94a753fc75bda7" 187 | integrity sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig== 188 | dependencies: 189 | "@babel/helper-plugin-utils" "^7.18.6" 190 | 191 | "@babel/plugin-transform-react-jsx-source@^7.19.6": 192 | version "7.19.6" 193 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz#88578ae8331e5887e8ce28e4c9dc83fb29da0b86" 194 | integrity sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ== 195 | dependencies: 196 | "@babel/helper-plugin-utils" "^7.19.0" 197 | 198 | "@babel/plugin-transform-react-jsx@^7.18.6", "@babel/plugin-transform-react-jsx@^7.19.0": 199 | version "7.19.0" 200 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz#b3cbb7c3a00b92ec8ae1027910e331ba5c500eb9" 201 | integrity sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg== 202 | dependencies: 203 | "@babel/helper-annotate-as-pure" "^7.18.6" 204 | "@babel/helper-module-imports" "^7.18.6" 205 | "@babel/helper-plugin-utils" "^7.19.0" 206 | "@babel/plugin-syntax-jsx" "^7.18.6" 207 | "@babel/types" "^7.19.0" 208 | 209 | "@babel/template@^7.18.10": 210 | version "7.18.10" 211 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" 212 | integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== 213 | dependencies: 214 | "@babel/code-frame" "^7.18.6" 215 | "@babel/parser" "^7.18.10" 216 | "@babel/types" "^7.18.10" 217 | 218 | "@babel/traverse@^7.20.1": 219 | version "7.20.1" 220 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" 221 | integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== 222 | dependencies: 223 | "@babel/code-frame" "^7.18.6" 224 | "@babel/generator" "^7.20.1" 225 | "@babel/helper-environment-visitor" "^7.18.9" 226 | "@babel/helper-function-name" "^7.19.0" 227 | "@babel/helper-hoist-variables" "^7.18.6" 228 | "@babel/helper-split-export-declaration" "^7.18.6" 229 | "@babel/parser" "^7.20.1" 230 | "@babel/types" "^7.20.0" 231 | debug "^4.1.0" 232 | globals "^11.1.0" 233 | 234 | "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2": 235 | version "7.20.2" 236 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" 237 | integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== 238 | dependencies: 239 | "@babel/helper-string-parser" "^7.19.4" 240 | "@babel/helper-validator-identifier" "^7.19.1" 241 | to-fast-properties "^2.0.0" 242 | 243 | "@esbuild/android-arm@0.15.13": 244 | version "0.15.13" 245 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.13.tgz#ce11237a13ee76d5eae3908e47ba4ddd380af86a" 246 | integrity sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw== 247 | 248 | "@esbuild/linux-loong64@0.15.13": 249 | version "0.15.13" 250 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.13.tgz#64e8825bf0ce769dac94ee39d92ebe6272020dfc" 251 | integrity sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag== 252 | 253 | "@jridgewell/gen-mapping@^0.1.0": 254 | version "0.1.1" 255 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" 256 | integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== 257 | dependencies: 258 | "@jridgewell/set-array" "^1.0.0" 259 | "@jridgewell/sourcemap-codec" "^1.4.10" 260 | 261 | "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": 262 | version "0.3.2" 263 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" 264 | integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== 265 | dependencies: 266 | "@jridgewell/set-array" "^1.0.1" 267 | "@jridgewell/sourcemap-codec" "^1.4.10" 268 | "@jridgewell/trace-mapping" "^0.3.9" 269 | 270 | "@jridgewell/resolve-uri@3.1.0": 271 | version "3.1.0" 272 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" 273 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== 274 | 275 | "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": 276 | version "1.1.2" 277 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" 278 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== 279 | 280 | "@jridgewell/source-map@^0.3.2": 281 | version "0.3.2" 282 | resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" 283 | integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== 284 | dependencies: 285 | "@jridgewell/gen-mapping" "^0.3.0" 286 | "@jridgewell/trace-mapping" "^0.3.9" 287 | 288 | "@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": 289 | version "1.4.14" 290 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" 291 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 292 | 293 | "@jridgewell/trace-mapping@^0.3.9": 294 | version "0.3.17" 295 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" 296 | integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== 297 | dependencies: 298 | "@jridgewell/resolve-uri" "3.1.0" 299 | "@jridgewell/sourcemap-codec" "1.4.14" 300 | 301 | "@nodelib/fs.scandir@2.1.5": 302 | version "2.1.5" 303 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 304 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 305 | dependencies: 306 | "@nodelib/fs.stat" "2.0.5" 307 | run-parallel "^1.1.9" 308 | 309 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 310 | version "2.0.5" 311 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 312 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 313 | 314 | "@nodelib/fs.walk@^1.2.3": 315 | version "1.2.8" 316 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 317 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 318 | dependencies: 319 | "@nodelib/fs.scandir" "2.1.5" 320 | fastq "^1.6.0" 321 | 322 | "@rollup/pluginutils@^4.2.0": 323 | version "4.2.1" 324 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" 325 | integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== 326 | dependencies: 327 | estree-walker "^2.0.1" 328 | picomatch "^2.2.2" 329 | 330 | "@types/node@^18.11.9": 331 | version "18.11.9" 332 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" 333 | integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== 334 | 335 | "@types/prop-types@*": 336 | version "15.7.5" 337 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" 338 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== 339 | 340 | "@types/react-dom@^18.0.8": 341 | version "18.0.8" 342 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.8.tgz#d2606d855186cd42cc1b11e63a71c39525441685" 343 | integrity sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw== 344 | dependencies: 345 | "@types/react" "*" 346 | 347 | "@types/react@*", "@types/react@^18.0.24": 348 | version "18.0.25" 349 | resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.25.tgz#8b1dcd7e56fe7315535a4af25435e0bb55c8ae44" 350 | integrity sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g== 351 | dependencies: 352 | "@types/prop-types" "*" 353 | "@types/scheduler" "*" 354 | csstype "^3.0.2" 355 | 356 | "@types/scheduler@*": 357 | version "0.16.2" 358 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" 359 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== 360 | 361 | "@vitejs/plugin-react@^2.2.0": 362 | version "2.2.0" 363 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-2.2.0.tgz#1b9f63b8b6bc3f56258d20cd19b33f5cc761ce6e" 364 | integrity sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA== 365 | dependencies: 366 | "@babel/core" "^7.19.6" 367 | "@babel/plugin-transform-react-jsx" "^7.19.0" 368 | "@babel/plugin-transform-react-jsx-development" "^7.18.6" 369 | "@babel/plugin-transform-react-jsx-self" "^7.18.6" 370 | "@babel/plugin-transform-react-jsx-source" "^7.19.6" 371 | magic-string "^0.26.7" 372 | react-refresh "^0.14.0" 373 | 374 | acorn@^8.5.0: 375 | version "8.8.1" 376 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" 377 | integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== 378 | 379 | ansi-styles@^3.2.1: 380 | version "3.2.1" 381 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 382 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 383 | dependencies: 384 | color-convert "^1.9.0" 385 | 386 | ansi-styles@^4.1.0: 387 | version "4.3.0" 388 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 389 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 390 | dependencies: 391 | color-convert "^2.0.1" 392 | 393 | anymatch@~3.1.2: 394 | version "3.1.2" 395 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 396 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 397 | dependencies: 398 | normalize-path "^3.0.0" 399 | picomatch "^2.0.4" 400 | 401 | array-union@^1.0.1: 402 | version "1.0.2" 403 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 404 | integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== 405 | dependencies: 406 | array-uniq "^1.0.1" 407 | 408 | array-uniq@^1.0.1: 409 | version "1.0.3" 410 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 411 | integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== 412 | 413 | async@^2.6.1: 414 | version "2.6.4" 415 | resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" 416 | integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== 417 | dependencies: 418 | lodash "^4.17.14" 419 | 420 | async@^3.2.3: 421 | version "3.2.4" 422 | resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" 423 | integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== 424 | 425 | balanced-match@^1.0.0: 426 | version "1.0.2" 427 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 428 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 429 | 430 | binary-extensions@^2.0.0: 431 | version "2.2.0" 432 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 433 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 434 | 435 | boolbase@^1.0.0: 436 | version "1.0.0" 437 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 438 | integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== 439 | 440 | brace-expansion@^1.1.7: 441 | version "1.1.11" 442 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 443 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 444 | dependencies: 445 | balanced-match "^1.0.0" 446 | concat-map "0.0.1" 447 | 448 | brace-expansion@^2.0.1: 449 | version "2.0.1" 450 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" 451 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 452 | dependencies: 453 | balanced-match "^1.0.0" 454 | 455 | braces@^3.0.2, braces@~3.0.2: 456 | version "3.0.2" 457 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 458 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 459 | dependencies: 460 | fill-range "^7.0.1" 461 | 462 | browserslist@^4.21.3: 463 | version "4.21.4" 464 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" 465 | integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== 466 | dependencies: 467 | caniuse-lite "^1.0.30001400" 468 | electron-to-chromium "^1.4.251" 469 | node-releases "^2.0.6" 470 | update-browserslist-db "^1.0.9" 471 | 472 | buffer-from@^1.0.0: 473 | version "1.1.2" 474 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 475 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 476 | 477 | camel-case@^4.1.2: 478 | version "4.1.2" 479 | resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" 480 | integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== 481 | dependencies: 482 | pascal-case "^3.1.2" 483 | tslib "^2.0.3" 484 | 485 | caniuse-lite@^1.0.30001400: 486 | version "1.0.30001431" 487 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz#e7c59bd1bc518fae03a4656be442ce6c4887a795" 488 | integrity sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ== 489 | 490 | chalk@^2.0.0: 491 | version "2.4.2" 492 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 493 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 494 | dependencies: 495 | ansi-styles "^3.2.1" 496 | escape-string-regexp "^1.0.5" 497 | supports-color "^5.3.0" 498 | 499 | chalk@^4.0.2: 500 | version "4.1.2" 501 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 502 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 503 | dependencies: 504 | ansi-styles "^4.1.0" 505 | supports-color "^7.1.0" 506 | 507 | "chokidar@>=3.0.0 <4.0.0": 508 | version "3.5.3" 509 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 510 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 511 | dependencies: 512 | anymatch "~3.1.2" 513 | braces "~3.0.2" 514 | glob-parent "~5.1.2" 515 | is-binary-path "~2.1.0" 516 | is-glob "~4.0.1" 517 | normalize-path "~3.0.0" 518 | readdirp "~3.6.0" 519 | optionalDependencies: 520 | fsevents "~2.3.2" 521 | 522 | clean-css@^5.2.2: 523 | version "5.3.1" 524 | resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.1.tgz#d0610b0b90d125196a2894d35366f734e5d7aa32" 525 | integrity sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg== 526 | dependencies: 527 | source-map "~0.6.0" 528 | 529 | color-convert@^1.9.0: 530 | version "1.9.3" 531 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 532 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 533 | dependencies: 534 | color-name "1.1.3" 535 | 536 | color-convert@^2.0.1: 537 | version "2.0.1" 538 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 539 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 540 | dependencies: 541 | color-name "~1.1.4" 542 | 543 | color-name@1.1.3: 544 | version "1.1.3" 545 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 546 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 547 | 548 | color-name@~1.1.4: 549 | version "1.1.4" 550 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 551 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 552 | 553 | colorette@^2.0.16: 554 | version "2.0.19" 555 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" 556 | integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== 557 | 558 | commander@^2.18.0, commander@^2.20.0: 559 | version "2.20.3" 560 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 561 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 562 | 563 | commander@^8.3.0: 564 | version "8.3.0" 565 | resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" 566 | integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== 567 | 568 | commondir@^1.0.1: 569 | version "1.0.1" 570 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 571 | integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== 572 | 573 | concat-map@0.0.1: 574 | version "0.0.1" 575 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 576 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 577 | 578 | connect-history-api-fallback@^1.6.0: 579 | version "1.6.0" 580 | resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" 581 | integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== 582 | 583 | consola@^2.15.3: 584 | version "2.15.3" 585 | resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" 586 | integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== 587 | 588 | convert-source-map@^1.7.0: 589 | version "1.9.0" 590 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" 591 | integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== 592 | 593 | css-select@^4.2.1: 594 | version "4.3.0" 595 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" 596 | integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== 597 | dependencies: 598 | boolbase "^1.0.0" 599 | css-what "^6.0.1" 600 | domhandler "^4.3.1" 601 | domutils "^2.8.0" 602 | nth-check "^2.0.1" 603 | 604 | css-what@^6.0.1: 605 | version "6.1.0" 606 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" 607 | integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== 608 | 609 | csstype@^3.0.2: 610 | version "3.1.1" 611 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" 612 | integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== 613 | 614 | debug@^4.1.0: 615 | version "4.3.4" 616 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 617 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 618 | dependencies: 619 | ms "2.1.2" 620 | 621 | dom-serializer@^1.0.1: 622 | version "1.4.1" 623 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" 624 | integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== 625 | dependencies: 626 | domelementtype "^2.0.1" 627 | domhandler "^4.2.0" 628 | entities "^2.0.0" 629 | 630 | domelementtype@^2.0.1, domelementtype@^2.2.0: 631 | version "2.3.0" 632 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" 633 | integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== 634 | 635 | domhandler@^4.2.0, domhandler@^4.3.1: 636 | version "4.3.1" 637 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" 638 | integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== 639 | dependencies: 640 | domelementtype "^2.2.0" 641 | 642 | domutils@^2.8.0: 643 | version "2.8.0" 644 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" 645 | integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== 646 | dependencies: 647 | dom-serializer "^1.0.1" 648 | domelementtype "^2.2.0" 649 | domhandler "^4.2.0" 650 | 651 | dot-case@^3.0.4: 652 | version "3.0.4" 653 | resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" 654 | integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== 655 | dependencies: 656 | no-case "^3.0.4" 657 | tslib "^2.0.3" 658 | 659 | dotenv-expand@^8.0.2: 660 | version "8.0.3" 661 | resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-8.0.3.tgz#29016757455bcc748469c83a19b36aaf2b83dd6e" 662 | integrity sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg== 663 | 664 | dotenv@^16.0.0: 665 | version "16.0.3" 666 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" 667 | integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== 668 | 669 | ejs@^3.1.6: 670 | version "3.1.8" 671 | resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.8.tgz#758d32910c78047585c7ef1f92f9ee041c1c190b" 672 | integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ== 673 | dependencies: 674 | jake "^10.8.5" 675 | 676 | electron-to-chromium@^1.4.251: 677 | version "1.4.284" 678 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" 679 | integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== 680 | 681 | email-addresses@^3.0.1: 682 | version "3.1.0" 683 | resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-3.1.0.tgz#cabf7e085cbdb63008a70319a74e6136188812fb" 684 | integrity sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg== 685 | 686 | entities@^2.0.0: 687 | version "2.2.0" 688 | resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" 689 | integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== 690 | 691 | esbuild-android-64@0.15.13: 692 | version "0.15.13" 693 | resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.13.tgz#5f25864055dbd62e250f360b38b4c382224063af" 694 | integrity sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g== 695 | 696 | esbuild-android-arm64@0.15.13: 697 | version "0.15.13" 698 | resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.13.tgz#d8820f999314efbe8e0f050653a99ff2da632b0f" 699 | integrity sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w== 700 | 701 | esbuild-darwin-64@0.15.13: 702 | version "0.15.13" 703 | resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.13.tgz#99ae7fdaa43947b06cd9d1a1c3c2c9f245d81fd0" 704 | integrity sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg== 705 | 706 | esbuild-darwin-arm64@0.15.13: 707 | version "0.15.13" 708 | resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz#bafa1814354ad1a47adcad73de416130ef7f55e3" 709 | integrity sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A== 710 | 711 | esbuild-freebsd-64@0.15.13: 712 | version "0.15.13" 713 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.13.tgz#84ef85535c5cc38b627d1c5115623b088d1de161" 714 | integrity sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA== 715 | 716 | esbuild-freebsd-arm64@0.15.13: 717 | version "0.15.13" 718 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.13.tgz#033f21de434ec8e0c478054b119af8056763c2d8" 719 | integrity sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q== 720 | 721 | esbuild-linux-32@0.15.13: 722 | version "0.15.13" 723 | resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.13.tgz#54290ea8035cba0faf1791ce9ae6693005512535" 724 | integrity sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w== 725 | 726 | esbuild-linux-64@0.15.13: 727 | version "0.15.13" 728 | resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz#4264249281ea388ead948614b57fb1ddf7779a2c" 729 | integrity sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A== 730 | 731 | esbuild-linux-arm64@0.15.13: 732 | version "0.15.13" 733 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.13.tgz#9323c333924f97a02bdd2ae8912b36298acb312d" 734 | integrity sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ== 735 | 736 | esbuild-linux-arm@0.15.13: 737 | version "0.15.13" 738 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.13.tgz#b407f47b3ae721fe4e00e19e9f19289bef87a111" 739 | integrity sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ== 740 | 741 | esbuild-linux-mips64le@0.15.13: 742 | version "0.15.13" 743 | resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.13.tgz#bdf905aae5c0bcaa8f83567fe4c4c1bdc1f14447" 744 | integrity sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A== 745 | 746 | esbuild-linux-ppc64le@0.15.13: 747 | version "0.15.13" 748 | resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.13.tgz#2911eae1c90ff58a3bd3259cb557235df25aa3b4" 749 | integrity sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA== 750 | 751 | esbuild-linux-riscv64@0.15.13: 752 | version "0.15.13" 753 | resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.13.tgz#1837c660be12b1d20d2a29c7189ea703f93e9265" 754 | integrity sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow== 755 | 756 | esbuild-linux-s390x@0.15.13: 757 | version "0.15.13" 758 | resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.13.tgz#d52880ece229d1bd10b2d936b792914ffb07c7fc" 759 | integrity sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag== 760 | 761 | esbuild-netbsd-64@0.15.13: 762 | version "0.15.13" 763 | resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.13.tgz#de14da46f1d20352b43e15d97a80a8788275e6ed" 764 | integrity sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ== 765 | 766 | esbuild-openbsd-64@0.15.13: 767 | version "0.15.13" 768 | resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.13.tgz#45e8a5fd74d92ad8f732c43582369c7990f5a0ac" 769 | integrity sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w== 770 | 771 | esbuild-sunos-64@0.15.13: 772 | version "0.15.13" 773 | resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.13.tgz#f646ac3da7aac521ee0fdbc192750c87da697806" 774 | integrity sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw== 775 | 776 | esbuild-windows-32@0.15.13: 777 | version "0.15.13" 778 | resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.13.tgz#fb4fe77c7591418880b3c9b5900adc4c094f2401" 779 | integrity sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA== 780 | 781 | esbuild-windows-64@0.15.13: 782 | version "0.15.13" 783 | resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz#1fca8c654392c0c31bdaaed168becfea80e20660" 784 | integrity sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ== 785 | 786 | esbuild-windows-arm64@0.15.13: 787 | version "0.15.13" 788 | resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.13.tgz#4ffd01b6b2888603f1584a2fe96b1f6a6f2b3dd8" 789 | integrity sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg== 790 | 791 | esbuild@^0.15.9: 792 | version "0.15.13" 793 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.13.tgz#7293480038feb2bafa91d3f6a20edab3ba6c108a" 794 | integrity sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ== 795 | optionalDependencies: 796 | "@esbuild/android-arm" "0.15.13" 797 | "@esbuild/linux-loong64" "0.15.13" 798 | esbuild-android-64 "0.15.13" 799 | esbuild-android-arm64 "0.15.13" 800 | esbuild-darwin-64 "0.15.13" 801 | esbuild-darwin-arm64 "0.15.13" 802 | esbuild-freebsd-64 "0.15.13" 803 | esbuild-freebsd-arm64 "0.15.13" 804 | esbuild-linux-32 "0.15.13" 805 | esbuild-linux-64 "0.15.13" 806 | esbuild-linux-arm "0.15.13" 807 | esbuild-linux-arm64 "0.15.13" 808 | esbuild-linux-mips64le "0.15.13" 809 | esbuild-linux-ppc64le "0.15.13" 810 | esbuild-linux-riscv64 "0.15.13" 811 | esbuild-linux-s390x "0.15.13" 812 | esbuild-netbsd-64 "0.15.13" 813 | esbuild-openbsd-64 "0.15.13" 814 | esbuild-sunos-64 "0.15.13" 815 | esbuild-windows-32 "0.15.13" 816 | esbuild-windows-64 "0.15.13" 817 | esbuild-windows-arm64 "0.15.13" 818 | 819 | escalade@^3.1.1: 820 | version "3.1.1" 821 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 822 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 823 | 824 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 825 | version "1.0.5" 826 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 827 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 828 | 829 | estree-walker@^2.0.1: 830 | version "2.0.2" 831 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" 832 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 833 | 834 | fast-glob@^3.2.11: 835 | version "3.2.12" 836 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" 837 | integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== 838 | dependencies: 839 | "@nodelib/fs.stat" "^2.0.2" 840 | "@nodelib/fs.walk" "^1.2.3" 841 | glob-parent "^5.1.2" 842 | merge2 "^1.3.0" 843 | micromatch "^4.0.4" 844 | 845 | fastq@^1.6.0: 846 | version "1.13.0" 847 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" 848 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== 849 | dependencies: 850 | reusify "^1.0.4" 851 | 852 | filelist@^1.0.1: 853 | version "1.0.4" 854 | resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" 855 | integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== 856 | dependencies: 857 | minimatch "^5.0.1" 858 | 859 | filename-reserved-regex@^2.0.0: 860 | version "2.0.0" 861 | resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" 862 | integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== 863 | 864 | filenamify@^4.3.0: 865 | version "4.3.0" 866 | resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" 867 | integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== 868 | dependencies: 869 | filename-reserved-regex "^2.0.0" 870 | strip-outer "^1.0.1" 871 | trim-repeated "^1.0.0" 872 | 873 | fill-range@^7.0.1: 874 | version "7.0.1" 875 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 876 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 877 | dependencies: 878 | to-regex-range "^5.0.1" 879 | 880 | find-cache-dir@^3.3.1: 881 | version "3.3.2" 882 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" 883 | integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== 884 | dependencies: 885 | commondir "^1.0.1" 886 | make-dir "^3.0.2" 887 | pkg-dir "^4.1.0" 888 | 889 | find-up@^4.0.0: 890 | version "4.1.0" 891 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" 892 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 893 | dependencies: 894 | locate-path "^5.0.0" 895 | path-exists "^4.0.0" 896 | 897 | fs-extra@^10.0.1: 898 | version "10.1.0" 899 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" 900 | integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== 901 | dependencies: 902 | graceful-fs "^4.2.0" 903 | jsonfile "^6.0.1" 904 | universalify "^2.0.0" 905 | 906 | fs-extra@^8.1.0: 907 | version "8.1.0" 908 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" 909 | integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== 910 | dependencies: 911 | graceful-fs "^4.2.0" 912 | jsonfile "^4.0.0" 913 | universalify "^0.1.0" 914 | 915 | fs.realpath@^1.0.0: 916 | version "1.0.0" 917 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 918 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 919 | 920 | fsevents@~2.3.2: 921 | version "2.3.2" 922 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 923 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 924 | 925 | function-bind@^1.1.1: 926 | version "1.1.1" 927 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 928 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 929 | 930 | gensync@^1.0.0-beta.2: 931 | version "1.0.0-beta.2" 932 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 933 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 934 | 935 | gh-pages@^4.0.0: 936 | version "4.0.0" 937 | resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-4.0.0.tgz#bd7447bab7eef008f677ac8cc4f6049ab978f4a6" 938 | integrity sha512-p8S0T3aGJc68MtwOcZusul5qPSNZCalap3NWbhRUZYu1YOdp+EjZ+4kPmRM8h3NNRdqw00yuevRjlkuSzCn7iQ== 939 | dependencies: 940 | async "^2.6.1" 941 | commander "^2.18.0" 942 | email-addresses "^3.0.1" 943 | filenamify "^4.3.0" 944 | find-cache-dir "^3.3.1" 945 | fs-extra "^8.1.0" 946 | globby "^6.1.0" 947 | 948 | glob-parent@^5.1.2, glob-parent@~5.1.2: 949 | version "5.1.2" 950 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 951 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 952 | dependencies: 953 | is-glob "^4.0.1" 954 | 955 | glob@^7.0.3: 956 | version "7.2.3" 957 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 958 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 959 | dependencies: 960 | fs.realpath "^1.0.0" 961 | inflight "^1.0.4" 962 | inherits "2" 963 | minimatch "^3.1.1" 964 | once "^1.3.0" 965 | path-is-absolute "^1.0.0" 966 | 967 | globals@^11.1.0: 968 | version "11.12.0" 969 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 970 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 971 | 972 | globby@^6.1.0: 973 | version "6.1.0" 974 | resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" 975 | integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== 976 | dependencies: 977 | array-union "^1.0.1" 978 | glob "^7.0.3" 979 | object-assign "^4.0.1" 980 | pify "^2.0.0" 981 | pinkie-promise "^2.0.0" 982 | 983 | graceful-fs@^4.1.6, graceful-fs@^4.2.0: 984 | version "4.2.10" 985 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" 986 | integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== 987 | 988 | has-flag@^3.0.0: 989 | version "3.0.0" 990 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 991 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 992 | 993 | has-flag@^4.0.0: 994 | version "4.0.0" 995 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 996 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 997 | 998 | has@^1.0.3: 999 | version "1.0.3" 1000 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1001 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1002 | dependencies: 1003 | function-bind "^1.1.1" 1004 | 1005 | he@1.2.0, he@^1.2.0: 1006 | version "1.2.0" 1007 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" 1008 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== 1009 | 1010 | html-minifier-terser@^6.1.0: 1011 | version "6.1.0" 1012 | resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" 1013 | integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== 1014 | dependencies: 1015 | camel-case "^4.1.2" 1016 | clean-css "^5.2.2" 1017 | commander "^8.3.0" 1018 | he "^1.2.0" 1019 | param-case "^3.0.4" 1020 | relateurl "^0.2.7" 1021 | terser "^5.10.0" 1022 | 1023 | immer@^9.0.16: 1024 | version "9.0.16" 1025 | resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.16.tgz#8e7caab80118c2b54b37ad43e05758cdefad0198" 1026 | integrity sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ== 1027 | 1028 | immutable@^4.0.0: 1029 | version "4.1.0" 1030 | resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef" 1031 | integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== 1032 | 1033 | inflight@^1.0.4: 1034 | version "1.0.6" 1035 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1036 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 1037 | dependencies: 1038 | once "^1.3.0" 1039 | wrappy "1" 1040 | 1041 | inherits@2: 1042 | version "2.0.4" 1043 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1044 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1045 | 1046 | is-binary-path@~2.1.0: 1047 | version "2.1.0" 1048 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 1049 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 1050 | dependencies: 1051 | binary-extensions "^2.0.0" 1052 | 1053 | is-core-module@^2.9.0: 1054 | version "2.11.0" 1055 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" 1056 | integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== 1057 | dependencies: 1058 | has "^1.0.3" 1059 | 1060 | is-extglob@^2.1.1: 1061 | version "2.1.1" 1062 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1063 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 1064 | 1065 | is-glob@^4.0.1, is-glob@~4.0.1: 1066 | version "4.0.3" 1067 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 1068 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1069 | dependencies: 1070 | is-extglob "^2.1.1" 1071 | 1072 | is-number@^7.0.0: 1073 | version "7.0.0" 1074 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1075 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1076 | 1077 | jake@^10.8.5: 1078 | version "10.8.5" 1079 | resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" 1080 | integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== 1081 | dependencies: 1082 | async "^3.2.3" 1083 | chalk "^4.0.2" 1084 | filelist "^1.0.1" 1085 | minimatch "^3.0.4" 1086 | 1087 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 1088 | version "4.0.0" 1089 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1090 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1091 | 1092 | jsesc@^2.5.1: 1093 | version "2.5.2" 1094 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 1095 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 1096 | 1097 | json5@^2.2.1: 1098 | version "2.2.3" 1099 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" 1100 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== 1101 | 1102 | jsonfile@^4.0.0: 1103 | version "4.0.0" 1104 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" 1105 | integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== 1106 | optionalDependencies: 1107 | graceful-fs "^4.1.6" 1108 | 1109 | jsonfile@^6.0.1: 1110 | version "6.1.0" 1111 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" 1112 | integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== 1113 | dependencies: 1114 | universalify "^2.0.0" 1115 | optionalDependencies: 1116 | graceful-fs "^4.1.6" 1117 | 1118 | locate-path@^5.0.0: 1119 | version "5.0.0" 1120 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" 1121 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 1122 | dependencies: 1123 | p-locate "^4.1.0" 1124 | 1125 | lodash@^4.17.14: 1126 | version "4.17.21" 1127 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1128 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1129 | 1130 | loose-envify@^1.1.0: 1131 | version "1.4.0" 1132 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 1133 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 1134 | dependencies: 1135 | js-tokens "^3.0.0 || ^4.0.0" 1136 | 1137 | lower-case@^2.0.2: 1138 | version "2.0.2" 1139 | resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" 1140 | integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== 1141 | dependencies: 1142 | tslib "^2.0.3" 1143 | 1144 | magic-string@^0.26.7: 1145 | version "0.26.7" 1146 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" 1147 | integrity sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow== 1148 | dependencies: 1149 | sourcemap-codec "^1.4.8" 1150 | 1151 | make-dir@^3.0.2: 1152 | version "3.1.0" 1153 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" 1154 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 1155 | dependencies: 1156 | semver "^6.0.0" 1157 | 1158 | merge2@^1.3.0: 1159 | version "1.4.1" 1160 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 1161 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 1162 | 1163 | micromatch@^4.0.4: 1164 | version "4.0.5" 1165 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" 1166 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== 1167 | dependencies: 1168 | braces "^3.0.2" 1169 | picomatch "^2.3.1" 1170 | 1171 | minimatch@^3.0.4, minimatch@^3.1.1: 1172 | version "3.1.2" 1173 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1174 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1175 | dependencies: 1176 | brace-expansion "^1.1.7" 1177 | 1178 | minimatch@^5.0.1: 1179 | version "5.1.0" 1180 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" 1181 | integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== 1182 | dependencies: 1183 | brace-expansion "^2.0.1" 1184 | 1185 | ms@2.1.2: 1186 | version "2.1.2" 1187 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1188 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1189 | 1190 | nanoid@^3.3.4: 1191 | version "3.3.4" 1192 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" 1193 | integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== 1194 | 1195 | no-case@^3.0.4: 1196 | version "3.0.4" 1197 | resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" 1198 | integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== 1199 | dependencies: 1200 | lower-case "^2.0.2" 1201 | tslib "^2.0.3" 1202 | 1203 | node-html-parser@^5.3.3: 1204 | version "5.4.2" 1205 | resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-5.4.2.tgz#93e004038c17af80226c942336990a0eaed8136a" 1206 | integrity sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw== 1207 | dependencies: 1208 | css-select "^4.2.1" 1209 | he "1.2.0" 1210 | 1211 | node-releases@^2.0.6: 1212 | version "2.0.6" 1213 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" 1214 | integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== 1215 | 1216 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1217 | version "3.0.0" 1218 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1219 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1220 | 1221 | nth-check@^2.0.1: 1222 | version "2.1.1" 1223 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" 1224 | integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== 1225 | dependencies: 1226 | boolbase "^1.0.0" 1227 | 1228 | object-assign@^4.0.1: 1229 | version "4.1.1" 1230 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1231 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== 1232 | 1233 | once@^1.3.0: 1234 | version "1.4.0" 1235 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1236 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 1237 | dependencies: 1238 | wrappy "1" 1239 | 1240 | p-limit@^2.2.0: 1241 | version "2.3.0" 1242 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 1243 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1244 | dependencies: 1245 | p-try "^2.0.0" 1246 | 1247 | p-locate@^4.1.0: 1248 | version "4.1.0" 1249 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" 1250 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 1251 | dependencies: 1252 | p-limit "^2.2.0" 1253 | 1254 | p-try@^2.0.0: 1255 | version "2.2.0" 1256 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1257 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1258 | 1259 | param-case@^3.0.4: 1260 | version "3.0.4" 1261 | resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" 1262 | integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== 1263 | dependencies: 1264 | dot-case "^3.0.4" 1265 | tslib "^2.0.3" 1266 | 1267 | pascal-case@^3.1.2: 1268 | version "3.1.2" 1269 | resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" 1270 | integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== 1271 | dependencies: 1272 | no-case "^3.0.4" 1273 | tslib "^2.0.3" 1274 | 1275 | path-exists@^4.0.0: 1276 | version "4.0.0" 1277 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 1278 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1279 | 1280 | path-is-absolute@^1.0.0: 1281 | version "1.0.1" 1282 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1283 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 1284 | 1285 | path-parse@^1.0.7: 1286 | version "1.0.7" 1287 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1288 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1289 | 1290 | pathe@^0.2.0: 1291 | version "0.2.0" 1292 | resolved "https://registry.yarnpkg.com/pathe/-/pathe-0.2.0.tgz#30fd7bbe0a0d91f0e60bae621f5d19e9e225c339" 1293 | integrity sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw== 1294 | 1295 | picocolors@^1.0.0: 1296 | version "1.0.0" 1297 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1298 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1299 | 1300 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: 1301 | version "2.3.1" 1302 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1303 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1304 | 1305 | pify@^2.0.0: 1306 | version "2.3.0" 1307 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1308 | integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== 1309 | 1310 | pinkie-promise@^2.0.0: 1311 | version "2.0.1" 1312 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 1313 | integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== 1314 | dependencies: 1315 | pinkie "^2.0.0" 1316 | 1317 | pinkie@^2.0.0: 1318 | version "2.0.4" 1319 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 1320 | integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== 1321 | 1322 | pkg-dir@^4.1.0: 1323 | version "4.2.0" 1324 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" 1325 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 1326 | dependencies: 1327 | find-up "^4.0.0" 1328 | 1329 | postcss@^8.4.18: 1330 | version "8.4.19" 1331 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.19.tgz#61178e2add236b17351897c8bcc0b4c8ecab56fc" 1332 | integrity sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA== 1333 | dependencies: 1334 | nanoid "^3.3.4" 1335 | picocolors "^1.0.0" 1336 | source-map-js "^1.0.2" 1337 | 1338 | queue-microtask@^1.2.2: 1339 | version "1.2.3" 1340 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 1341 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 1342 | 1343 | react-dom@^18.2.0: 1344 | version "18.2.0" 1345 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" 1346 | integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== 1347 | dependencies: 1348 | loose-envify "^1.1.0" 1349 | scheduler "^0.23.0" 1350 | 1351 | react-refresh@^0.14.0: 1352 | version "0.14.0" 1353 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" 1354 | integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== 1355 | 1356 | react@^18.2.0: 1357 | version "18.2.0" 1358 | resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" 1359 | integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== 1360 | dependencies: 1361 | loose-envify "^1.1.0" 1362 | 1363 | readdirp@~3.6.0: 1364 | version "3.6.0" 1365 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 1366 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1367 | dependencies: 1368 | picomatch "^2.2.1" 1369 | 1370 | relateurl@^0.2.7: 1371 | version "0.2.7" 1372 | resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" 1373 | integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== 1374 | 1375 | resolve@^1.22.1: 1376 | version "1.22.1" 1377 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" 1378 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== 1379 | dependencies: 1380 | is-core-module "^2.9.0" 1381 | path-parse "^1.0.7" 1382 | supports-preserve-symlinks-flag "^1.0.0" 1383 | 1384 | reusify@^1.0.4: 1385 | version "1.0.4" 1386 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1387 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1388 | 1389 | rollup@^2.79.1: 1390 | version "2.79.1" 1391 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" 1392 | integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== 1393 | optionalDependencies: 1394 | fsevents "~2.3.2" 1395 | 1396 | run-parallel@^1.1.9: 1397 | version "1.2.0" 1398 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 1399 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1400 | dependencies: 1401 | queue-microtask "^1.2.2" 1402 | 1403 | sass@^1.56.1: 1404 | version "1.56.1" 1405 | resolved "https://registry.yarnpkg.com/sass/-/sass-1.56.1.tgz#94d3910cd468fd075fa87f5bb17437a0b617d8a7" 1406 | integrity sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ== 1407 | dependencies: 1408 | chokidar ">=3.0.0 <4.0.0" 1409 | immutable "^4.0.0" 1410 | source-map-js ">=0.6.2 <2.0.0" 1411 | 1412 | scheduler@^0.23.0: 1413 | version "0.23.0" 1414 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" 1415 | integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== 1416 | dependencies: 1417 | loose-envify "^1.1.0" 1418 | 1419 | semver@^6.0.0, semver@^6.3.0: 1420 | version "6.3.0" 1421 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1422 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1423 | 1424 | "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: 1425 | version "1.0.2" 1426 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 1427 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 1428 | 1429 | source-map-support@~0.5.20: 1430 | version "0.5.21" 1431 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 1432 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 1433 | dependencies: 1434 | buffer-from "^1.0.0" 1435 | source-map "^0.6.0" 1436 | 1437 | source-map@^0.6.0, source-map@~0.6.0: 1438 | version "0.6.1" 1439 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1440 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1441 | 1442 | sourcemap-codec@^1.4.8: 1443 | version "1.4.8" 1444 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" 1445 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 1446 | 1447 | strip-outer@^1.0.1: 1448 | version "1.0.1" 1449 | resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" 1450 | integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== 1451 | dependencies: 1452 | escape-string-regexp "^1.0.2" 1453 | 1454 | supports-color@^5.3.0: 1455 | version "5.5.0" 1456 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1457 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1458 | dependencies: 1459 | has-flag "^3.0.0" 1460 | 1461 | supports-color@^7.1.0: 1462 | version "7.2.0" 1463 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1464 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1465 | dependencies: 1466 | has-flag "^4.0.0" 1467 | 1468 | supports-preserve-symlinks-flag@^1.0.0: 1469 | version "1.0.0" 1470 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 1471 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 1472 | 1473 | terser@^5.10.0: 1474 | version "5.15.1" 1475 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.1.tgz#8561af6e0fd6d839669c73b92bdd5777d870ed6c" 1476 | integrity sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw== 1477 | dependencies: 1478 | "@jridgewell/source-map" "^0.3.2" 1479 | acorn "^8.5.0" 1480 | commander "^2.20.0" 1481 | source-map-support "~0.5.20" 1482 | 1483 | to-fast-properties@^2.0.0: 1484 | version "2.0.0" 1485 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1486 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 1487 | 1488 | to-regex-range@^5.0.1: 1489 | version "5.0.1" 1490 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1491 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1492 | dependencies: 1493 | is-number "^7.0.0" 1494 | 1495 | trim-repeated@^1.0.0: 1496 | version "1.0.0" 1497 | resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" 1498 | integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== 1499 | dependencies: 1500 | escape-string-regexp "^1.0.2" 1501 | 1502 | tslib@^2.0.3: 1503 | version "2.4.1" 1504 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" 1505 | integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== 1506 | 1507 | typescript@^4.6.4: 1508 | version "4.8.4" 1509 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" 1510 | integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== 1511 | 1512 | universalify@^0.1.0: 1513 | version "0.1.2" 1514 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" 1515 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== 1516 | 1517 | universalify@^2.0.0: 1518 | version "2.0.0" 1519 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" 1520 | integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== 1521 | 1522 | update-browserslist-db@^1.0.9: 1523 | version "1.0.10" 1524 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" 1525 | integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== 1526 | dependencies: 1527 | escalade "^3.1.1" 1528 | picocolors "^1.0.0" 1529 | 1530 | vite-plugin-html@^3.2.0: 1531 | version "3.2.0" 1532 | resolved "https://registry.yarnpkg.com/vite-plugin-html/-/vite-plugin-html-3.2.0.tgz#0d4df9900642a321a139f1c25c05195ba9d0ec79" 1533 | integrity sha512-2VLCeDiHmV/BqqNn5h2V+4280KRgQzCFN47cst3WiNK848klESPQnzuC3okH5XHtgwHH/6s1Ho/YV6yIO0pgoQ== 1534 | dependencies: 1535 | "@rollup/pluginutils" "^4.2.0" 1536 | colorette "^2.0.16" 1537 | connect-history-api-fallback "^1.6.0" 1538 | consola "^2.15.3" 1539 | dotenv "^16.0.0" 1540 | dotenv-expand "^8.0.2" 1541 | ejs "^3.1.6" 1542 | fast-glob "^3.2.11" 1543 | fs-extra "^10.0.1" 1544 | html-minifier-terser "^6.1.0" 1545 | node-html-parser "^5.3.3" 1546 | pathe "^0.2.0" 1547 | 1548 | vite@^3.2.3: 1549 | version "3.2.3" 1550 | resolved "https://registry.yarnpkg.com/vite/-/vite-3.2.3.tgz#7a68d9ef73eff7ee6dc0718ad3507adfc86944a7" 1551 | integrity sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ== 1552 | dependencies: 1553 | esbuild "^0.15.9" 1554 | postcss "^8.4.18" 1555 | resolve "^1.22.1" 1556 | rollup "^2.79.1" 1557 | optionalDependencies: 1558 | fsevents "~2.3.2" 1559 | 1560 | wrappy@1: 1561 | version "1.0.2" 1562 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1563 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 1564 | --------------------------------------------------------------------------------