├── .github └── workflows │ ├── main.yml │ └── size.yml ├── .gitignore ├── LICENSE ├── README.md ├── babel.config.json ├── package.json ├── src ├── events.ts ├── index.tsx ├── state.ts └── utils.ts ├── testExample ├── index.html ├── index.tsx ├── package.json ├── tsconfig.json └── yarn.lock ├── tsconfig.json └── yarn.lock /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: [push] 3 | jobs: 4 | build: 5 | name: Build, lint, and test on Node ${{ matrix.node }} and ${{ matrix.os }} 6 | 7 | runs-on: ${{ matrix.os }} 8 | strategy: 9 | matrix: 10 | node: ['12.x', '14.x'] 11 | os: [ubuntu-latest, windows-latest, macOS-latest] 12 | 13 | steps: 14 | - name: Checkout repo 15 | uses: actions/checkout@v2 16 | 17 | - name: Use Node ${{ matrix.node }} 18 | uses: actions/setup-node@v1 19 | with: 20 | node-version: ${{ matrix.node }} 21 | 22 | - name: Install deps and build (with cache) 23 | uses: bahmutov/npm-install@v1 24 | 25 | - name: Build 26 | run: yarn build 27 | -------------------------------------------------------------------------------- /.github/workflows/size.yml: -------------------------------------------------------------------------------- 1 | name: size 2 | on: [pull_request] 3 | jobs: 4 | size: 5 | runs-on: ubuntu-latest 6 | env: 7 | CI_JOB_NUMBER: 1 8 | steps: 9 | - uses: actions/checkout@v1 10 | - uses: andresz1/size-limit-action@v1 11 | with: 12 | github_token: ${{ secrets.GITHUB_TOKEN }} 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | .cache 5 | .parcel-cache 6 | dist 7 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Benjamin Smith 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. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Niue 2 | 3 | ### A tiny shared state and event library for React 4 | 5 | Niue is a small library (less than **800 bytes** before compression) that provides a simple way to manage your React app's shared state and send events between components. I've used it for a while in my own projects and I find it simplifies the architecture of React apps significantly. 6 | 7 | ## Why Niue? 8 | 9 | ### State 10 | - Easily create state that's shared across components without any hierarchy 11 | - Storing application state in a single place makes it very easy to save and restore it 12 | - Simple API supports state patching and imperative state updates 13 | - Components only subscribe to the state they need 14 | - You can stop making [a bunch of React contexts](https://github.com/kobra-dev/better-react-spreadsheet/blob/main/src/state.tsx#L33) which [store return values from useState](https://github.com/kobra-dev/better-react-spreadsheet/blob/main/src/Spreadsheet.tsx#L128) 15 | - You don't need to use any provider components 16 | 17 | ### Events 18 | - You don't need to keep setting up event listeners in `useEffect`s 19 | - You don't need to remember the names of events - just import the event's hook and use it 20 | - In many cases, using events instead of a mess of callback props can greatly simplify cross-component communication 21 | 22 | ## Installation 23 | 24 | ```bash 25 | yarn add niue 26 | ``` 27 | 28 | ## Managing shared state 29 | 30 | To create a store (a thing to hold an object of state), use the `createState` function outside of a component: 31 | 32 | ```ts 33 | import { createState } from 'niue'; 34 | 35 | const [useStore, patchStore, getStore] = createState( 36 | // Initial value 37 | { count: 0, name: "foo" } 38 | ); 39 | ``` 40 | 41 | The resulting `useStore` hook can be called in your component to get the latest state value: 42 | 43 | ```tsx 44 | function Counter() { 45 | const state = useStore(); 46 | 47 | return ( 48 |
49 |

Hello, {state.name}!

50 | {state.count} 51 |
52 | ); 53 | } 54 | ``` 55 | 56 | `useStore` also accepts an optional parameter to specify which properties of the state object to "subscribe" to. Changes of these properties will cause a re-render of the component. If you don't specify anything, the entire state object will be watched; if you specify `null`, nothing will be watched and no re-renders will occur when state changes. 57 | 58 | ```ts 59 | // Subscribe to only the `count` property 60 | const state = useStore(["count"]); 61 | 62 | // Don't subscribe to anything 63 | const state = useStore(null); 64 | ``` 65 | 66 | Here's an example of subscribing to a single property (so the component won't rerender when `state.name` changes): 67 | 68 | ```tsx 69 | import { useStore } from "./Counter"; 70 | 71 | function CountDisplay() { 72 | const state = useStore(["count"]); 73 | 74 | return ( 75 |

{state.count}

76 | ); 77 | } 78 | ``` 79 | 80 | The `patchStore` function can be called to update the state: 81 | 82 | ```tsx 83 | function Counter() { 84 | const state = useStore(); 85 | 86 | return ( 87 |
88 |

Hello, {state.name}!

89 | {state.count} 90 | 91 |
92 | ); 93 | } 94 | ``` 95 | 96 | As you can see in the example, the value passed to `patchStore` does not need to contain all of the properties in the state object. If you leave one out, it will not be modified. 97 | 98 | You can also call `patchStore` with no parameters to use mutations to the existing state object: 99 | 100 | ```ts 101 | state.name = "Test"; 102 | patchStore(); 103 | ``` 104 | 105 | In addition, you can provide an array of changed keys to override Niue's default shallow comparison for detecting changes: 106 | 107 | ```ts 108 | state.things[1].name = "Test"; 109 | patchStore(["things"]); 110 | ``` 111 | 112 | The `getStore` function can be used to access the store outside a React component, which is useful in callback functions where you don't want the entire component to rerender whenever the state changes: 113 | 114 | ```tsx 115 | 118 | ``` 119 | 120 | ## Events 121 | 122 | Events work similarly to state stores. You can create an event with the createEvent function: 123 | 124 | ```ts 125 | import { createEvent } from 'niue'; 126 | 127 | const [useOnEvent, emit] = createEvent(); 128 | ``` 129 | 130 | The `createEvent` function doesn't accept any parameters, however it does have a type parameter for the message type. 131 | 132 | The `useOnEvent` hook can be used in a component to subscribe to the event, and the `emit` function can be used to send the event: 133 | 134 | ```tsx 135 | function EventDemo() { 136 | useOnEvent((message) => { 137 | alert(`Hello, ${message}!`); 138 | }, []); 139 | 140 | return ( 141 |
142 | Event demo 143 | 144 |
145 | ) 146 | } 147 | 148 | function EventEmitter() { 149 | return ( 150 | 151 | ); 152 | } 153 | ``` -------------------------------------------------------------------------------- /babel.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "@babel/preset-env", 5 | { 6 | "targets": "> 0.5%, not dead, Firefox ESR and supports es6 and supports arrow-functions" 7 | // es6 and arrow functions form a good baseline for modern browsers 8 | } 9 | ] 10 | ] 11 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "license": "MIT", 4 | "main": "dist/index.js", 5 | "typings": "dist/index.d.ts", 6 | "files": [ 7 | "dist", 8 | "src" 9 | ], 10 | "engines": { 11 | "node": ">=10" 12 | }, 13 | "scripts": { 14 | "start": "dts watch", 15 | "build": "dts build", 16 | "test": "dts test --passWithNoTests", 17 | "lint": "dts lint", 18 | "prepare": "dts build", 19 | "size": "size-limit", 20 | "analyze": "size-limit --why" 21 | }, 22 | "peerDependencies": { 23 | "react": ">=16" 24 | }, 25 | "husky": { 26 | "hooks": { 27 | "pre-commit": "dts lint" 28 | } 29 | }, 30 | "prettier": { 31 | "printWidth": 80, 32 | "semi": true, 33 | "singleQuote": false, 34 | "trailingComma": "es5" 35 | }, 36 | "name": "niue", 37 | "author": "https://github.com/Merlin04", 38 | "module": "dist/niue.esm.js", 39 | "size-limit": [ 40 | { 41 | "path": "dist/niue.cjs.production.min.js", 42 | "limit": "10 KB" 43 | }, 44 | { 45 | "path": "dist/niue.esm.js", 46 | "limit": "10 KB" 47 | } 48 | ], 49 | "devDependencies": { 50 | "@size-limit/preset-small-lib": "^5.0.4", 51 | "@types/react": "^17.0.22", 52 | "@types/react-dom": "^17.0.9", 53 | "dts-cli": "^0.17.1", 54 | "husky": "^7.0.2", 55 | "react": "^17.0.2", 56 | "react-dom": "^17.0.2", 57 | "size-limit": "^5.0.4", 58 | "tslib": "^2.3.1", 59 | "typescript": "^4.4.3" 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /src/events.ts: -------------------------------------------------------------------------------- 1 | import { DependencyList, useEffect } from "react"; 2 | 3 | let counter: number = 0; 4 | 5 | const PREFIX = "_n"; 6 | 7 | export const createEvent = (): [ 8 | // Receiver 9 | (callback: (data: T) => void, deps: DependencyList) => void, 10 | // Emitter 11 | (data: T) => void 12 | ] => { 13 | const eventName = PREFIX + counter; 14 | counter++; 15 | 16 | return [ 17 | (callback, deps) => { 18 | useEffect(() => { 19 | const l = (e: Event) => { 20 | callback((e as CustomEvent).detail); 21 | }; 22 | document.addEventListener(eventName, l); 23 | 24 | return () => { 25 | document.removeEventListener(eventName, l); 26 | } 27 | }, deps); 28 | }, 29 | (data) => { 30 | const e = new CustomEvent(eventName, { 31 | detail: data 32 | }); 33 | document.dispatchEvent(e); 34 | } 35 | ] 36 | }; -------------------------------------------------------------------------------- /src/index.tsx: -------------------------------------------------------------------------------- 1 | export { createEvent } from "./events"; 2 | export { createState } from "./state"; 3 | export { useRerender } from "./utils"; -------------------------------------------------------------------------------- /src/state.ts: -------------------------------------------------------------------------------- 1 | import { createEvent } from "./events"; 2 | import { useRerender } from "./utils"; 3 | 4 | export const createState = (initialValue: T): [ 5 | // Consumer hook 6 | (keys?: (keyof T)[] | null) => T, 7 | // Patcher 8 | (patch?: Partial | (keyof T)[], changed?: (keyof T)[]) => void, 9 | // Get state (not hook) 10 | () => T 11 | ] => { 12 | let db = initialValue; 13 | let trackStore = {...initialValue}; 14 | 15 | const [useReceiver, emitter] = createEvent<(keyof T)[]>(); 16 | 17 | return [ 18 | (keys) => { 19 | if(keys !== null) { 20 | const rerender = useRerender(); 21 | useReceiver((changed) => { 22 | if(!keys || changed.some(k => keys.includes(k))) { 23 | rerender(); 24 | } 25 | }, []); 26 | } 27 | return db; 28 | }, 29 | (patch, changed) => { 30 | if(Array.isArray(patch)) { 31 | changed = patch; 32 | patch = undefined; 33 | } 34 | 35 | if(patch) { 36 | // apply patch to db 37 | for(const prop in patch) { 38 | db[prop] = patch[prop]!; 39 | } 40 | } 41 | 42 | changed ??= ( 43 | Object.entries(db) 44 | .filter(([key, val]) => val !== trackStore[key as keyof T]) 45 | .map(([key]) => key) 46 | ) as (keyof T)[]; 47 | 48 | // update the trackStore so we can track future changes 49 | // (notably, this won't add any imperative changes that weren't in user-provided 50 | // `changed` to the trackStore, so they can still be dispatched later) 51 | for(const prop of changed) { 52 | trackStore[prop] = db[prop]; 53 | } 54 | 55 | emitter(changed); 56 | }, 57 | () => db 58 | ]; 59 | }; 60 | -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- 1 | import { useReducer } from "react"; 2 | 3 | // https://stackoverflow.com/a/58606536 4 | export const useRerender = () => useReducer(_ => ({}), 0)[1]; -------------------------------------------------------------------------------- /testExample/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Playground 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /testExample/index.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import * as ReactDOM from 'react-dom'; 3 | import { createEvent, createState, useRerender } from '../dist'; 4 | 5 | const [useStore, patchStore, getStore] = createState({ n: 0, g: 0, things: ["test"] }); 6 | const [useOnEvent, emit] = createEvent(); 7 | 8 | function Component1() { 9 | const state = useStore(); 10 | 11 | useOnEvent(() => { 12 | alert("Hello from component 1!"); 13 | }, []); 14 | 15 | return ( 16 | <> 17 | 20 | 23 | 32 | {state.things.map(thing => ( 33 |
{thing}
34 | ))} 35 | 36 | 41 | 49 | 50 | ) 51 | } 52 | 53 | function RerenderTest() { 54 | const rerender = useRerender(); 55 | 56 | alert("Rerender"); 57 | 58 | return ( 59 | 64 | ); 65 | } 66 | 67 | const App = () => { 68 | // Only rerenders when n changes 69 | const state = useStore(["n"]); 70 | return ( 71 |
72 | 73 | {state.n} 74 | 75 | 76 |
77 | ); 78 | }; 79 | 80 | ReactDOM.render(, document.getElementById('root')); 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /testExample/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "parcel index.html", 8 | "build": "parcel build index.html" 9 | }, 10 | "dependencies": { 11 | "parcel": "^2.8.2", 12 | "react-app-polyfill": "^1.0.0" 13 | }, 14 | "alias": { 15 | "react": "../node_modules/react", 16 | "react-dom": "../node_modules/react-dom/profiling", 17 | "scheduler/tracing": "../node_modules/scheduler/tracing-profiling" 18 | }, 19 | "devDependencies": { 20 | "@types/react": "^16.9.11", 21 | "@types/react-dom": "^16.8.4", 22 | "typescript": "^4" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /testExample/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowSyntheticDefaultImports": false, 4 | "target": "es5", 5 | "module": "commonjs", 6 | "jsx": "react", 7 | "moduleResolution": "node", 8 | "noImplicitAny": false, 9 | "noUnusedLocals": false, 10 | "noUnusedParameters": false, 11 | "removeComments": true, 12 | "strictNullChecks": true, 13 | "preserveConstEnums": true, 14 | "sourceMap": true, 15 | "lib": ["es2015", "es2016", "dom"], 16 | "types": ["node"] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /testExample/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.18.6" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" 8 | integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== 9 | dependencies: 10 | "@babel/highlight" "^7.18.6" 11 | 12 | "@babel/helper-validator-identifier@^7.18.6": 13 | version "7.19.1" 14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" 15 | integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== 16 | 17 | "@babel/highlight@^7.18.6": 18 | version "7.18.6" 19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" 20 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== 21 | dependencies: 22 | "@babel/helper-validator-identifier" "^7.18.6" 23 | chalk "^2.0.0" 24 | js-tokens "^4.0.0" 25 | 26 | "@jridgewell/gen-mapping@^0.3.0": 27 | version "0.3.2" 28 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" 29 | integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== 30 | dependencies: 31 | "@jridgewell/set-array" "^1.0.1" 32 | "@jridgewell/sourcemap-codec" "^1.4.10" 33 | "@jridgewell/trace-mapping" "^0.3.9" 34 | 35 | "@jridgewell/resolve-uri@3.1.0": 36 | version "3.1.0" 37 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" 38 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== 39 | 40 | "@jridgewell/set-array@^1.0.1": 41 | version "1.1.2" 42 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" 43 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== 44 | 45 | "@jridgewell/source-map@^0.3.2": 46 | version "0.3.2" 47 | resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" 48 | integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== 49 | dependencies: 50 | "@jridgewell/gen-mapping" "^0.3.0" 51 | "@jridgewell/trace-mapping" "^0.3.9" 52 | 53 | "@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": 54 | version "1.4.14" 55 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" 56 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 57 | 58 | "@jridgewell/trace-mapping@^0.3.9": 59 | version "0.3.17" 60 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" 61 | integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== 62 | dependencies: 63 | "@jridgewell/resolve-uri" "3.1.0" 64 | "@jridgewell/sourcemap-codec" "1.4.14" 65 | 66 | "@lezer/common@^0.15.0", "@lezer/common@^0.15.7": 67 | version "0.15.12" 68 | resolved "https://registry.yarnpkg.com/@lezer/common/-/common-0.15.12.tgz#2f21aec551dd5fd7d24eb069f90f54d5bc6ee5e9" 69 | integrity sha512-edfwCxNLnzq5pBA/yaIhwJ3U3Kz8VAUOTRg0hhxaizaI1N+qxV7EXDv/kLCkLeq2RzSFvxexlaj5Mzfn2kY0Ig== 70 | 71 | "@lezer/lr@^0.15.4": 72 | version "0.15.8" 73 | resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-0.15.8.tgz#1564a911e62b0a0f75ca63794a6aa8c5dc63db21" 74 | integrity sha512-bM6oE6VQZ6hIFxDNKk8bKPa14hqFrV07J/vHGOeiAbJReIaQXmkVb6xQu4MR+JBTLa5arGRyAAjJe1qaQt3Uvg== 75 | dependencies: 76 | "@lezer/common" "^0.15.0" 77 | 78 | "@lmdb/lmdb-darwin-arm64@2.5.2": 79 | version "2.5.2" 80 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.2.tgz#bc66fa43286b5c082e8fee0eacc17995806b6fbe" 81 | integrity sha512-+F8ioQIUN68B4UFiIBYu0QQvgb9FmlKw2ctQMSBfW2QBrZIxz9vD9jCGqTCPqZBRbPHAS/vG1zSXnKqnS2ch/A== 82 | 83 | "@lmdb/lmdb-darwin-x64@2.5.2": 84 | version "2.5.2" 85 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.2.tgz#89d8390041bce6bab24a82a20392be22faf54ffc" 86 | integrity sha512-KvPH56KRLLx4KSfKBx0m1r7GGGUMXm0jrKmNE7plbHlesZMuPJICtn07HYgQhj1LNsK7Yqwuvnqh1QxhJnF1EA== 87 | 88 | "@lmdb/lmdb-linux-arm64@2.5.2": 89 | version "2.5.2" 90 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.2.tgz#14fe4c96c2bb1285f93797f45915fa35ee047268" 91 | integrity sha512-aLl89VHL/wjhievEOlPocoefUyWdvzVrcQ/MHQYZm2JfV1jUsrbr/ZfkPPUFvZBf+VSE+Q0clWs9l29PCX1hTQ== 92 | 93 | "@lmdb/lmdb-linux-arm@2.5.2": 94 | version "2.5.2" 95 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.2.tgz#05bde4573ab10cf21827339fe687148f2590cfa1" 96 | integrity sha512-5kQAP21hAkfW5Bl+e0P57dV4dGYnkNIpR7f/GAh6QHlgXx+vp/teVj4PGRZaKAvt0GX6++N6hF8NnGElLDuIDw== 97 | 98 | "@lmdb/lmdb-linux-x64@2.5.2": 99 | version "2.5.2" 100 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.2.tgz#d2f85afd857d2c33d2caa5b057944574edafcfee" 101 | integrity sha512-xUdUfwDJLGjOUPH3BuPBt0NlIrR7f/QHKgu3GZIXswMMIihAekj2i97oI0iWG5Bok/b+OBjHPfa8IU9velnP/Q== 102 | 103 | "@lmdb/lmdb-win32-x64@2.5.2": 104 | version "2.5.2" 105 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.2.tgz#28f643fbc0bec30b07fbe95b137879b6b4d1c9c5" 106 | integrity sha512-zrBczSbXKxEyK2ijtbRdICDygRqWSRPpZMN5dD1T8VMEW5RIhIbwFWw2phDRXuBQdVDpSjalCIUMWMV2h3JaZA== 107 | 108 | "@mischnic/json-sourcemap@^0.1.0": 109 | version "0.1.0" 110 | resolved "https://registry.yarnpkg.com/@mischnic/json-sourcemap/-/json-sourcemap-0.1.0.tgz#38af657be4108140a548638267d02a2ea3336507" 111 | integrity sha512-dQb3QnfNqmQNYA4nFSN/uLaByIic58gOXq4Y4XqLOWmOrw73KmJPt/HLyG0wvn1bnR6mBKs/Uwvkh+Hns1T0XA== 112 | dependencies: 113 | "@lezer/common" "^0.15.7" 114 | "@lezer/lr" "^0.15.4" 115 | json5 "^2.2.1" 116 | 117 | "@msgpackr-extract/msgpackr-extract-darwin-arm64@2.2.0": 118 | version "2.2.0" 119 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-2.2.0.tgz#901c5937e1441572ea23e631fe6deca68482fe76" 120 | integrity sha512-Z9LFPzfoJi4mflGWV+rv7o7ZbMU5oAU9VmzCgL240KnqDW65Y2HFCT3MW06/ITJSnbVLacmcEJA8phywK7JinQ== 121 | 122 | "@msgpackr-extract/msgpackr-extract-darwin-x64@2.2.0": 123 | version "2.2.0" 124 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-2.2.0.tgz#fb877fe6bae3c4d3cea29786737840e2ae689066" 125 | integrity sha512-vq0tT8sjZsy4JdSqmadWVw6f66UXqUCabLmUVHZwUFzMgtgoIIQjT4VVRHKvlof3P/dMCkbMJ5hB1oJ9OWHaaw== 126 | 127 | "@msgpackr-extract/msgpackr-extract-linux-arm64@2.2.0": 128 | version "2.2.0" 129 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-2.2.0.tgz#986179c38b10ac41fbdaf7d036c825cbc72855d9" 130 | integrity sha512-hlxxLdRmPyq16QCutUtP8Tm6RDWcyaLsRssaHROatgnkOxdleMTgetf9JsdncL8vLh7FVy/RN9i3XR5dnb9cRA== 131 | 132 | "@msgpackr-extract/msgpackr-extract-linux-arm@2.2.0": 133 | version "2.2.0" 134 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-2.2.0.tgz#15f2c6fe9e0adc06c21af7e95f484ff4880d79ce" 135 | integrity sha512-SaJ3Qq4lX9Syd2xEo9u3qPxi/OB+5JO/ngJKK97XDpa1C587H9EWYO6KD8995DAjSinWvdHKRrCOXVUC5fvGOg== 136 | 137 | "@msgpackr-extract/msgpackr-extract-linux-x64@2.2.0": 138 | version "2.2.0" 139 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-2.2.0.tgz#30cae5c9a202f3e1fa1deb3191b18ffcb2f239a2" 140 | integrity sha512-94y5PJrSOqUNcFKmOl7z319FelCLAE0rz/jPCWS+UtdMZvpa4jrQd+cJPQCLp2Fes1yAW/YUQj/Di6YVT3c3Iw== 141 | 142 | "@msgpackr-extract/msgpackr-extract-win32-x64@2.2.0": 143 | version "2.2.0" 144 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-2.2.0.tgz#016d855b6bc459fd908095811f6826e45dd4ba64" 145 | integrity sha512-XrC0JzsqQSvOyM3t04FMLO6z5gCuhPE6k4FXuLK5xf52ZbdvcFe1yBmo7meCew9B8G2f0T9iu9t3kfTYRYROgA== 146 | 147 | "@parcel/bundler-default@2.8.2": 148 | version "2.8.2" 149 | resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.8.2.tgz#7340866cd612aece575489d16bf97325fd699b7f" 150 | integrity sha512-/7ao0vc/v8WGHZaS1SyS5R8wzqmmXEr9mhIIB2cbLQ4LA2WUtKsYcvZ2gjJuiAAN1CHC6GxqwYjIJScQCk/QXg== 151 | dependencies: 152 | "@parcel/diagnostic" "2.8.2" 153 | "@parcel/graph" "2.8.2" 154 | "@parcel/hash" "2.8.2" 155 | "@parcel/plugin" "2.8.2" 156 | "@parcel/utils" "2.8.2" 157 | nullthrows "^1.1.1" 158 | 159 | "@parcel/cache@2.8.2": 160 | version "2.8.2" 161 | resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.8.2.tgz#64ab1a4ecc20033b7d20a72ddd8898fea035e553" 162 | integrity sha512-kiyoOgh1RXp5qp+wlb8Pi/Z7o9D82Oj5RlHnKSAauyR7jgnI8Vq8JTeBmlLqrf+kHxcDcp2p86hidSeANhlQNg== 163 | dependencies: 164 | "@parcel/fs" "2.8.2" 165 | "@parcel/logger" "2.8.2" 166 | "@parcel/utils" "2.8.2" 167 | lmdb "2.5.2" 168 | 169 | "@parcel/codeframe@2.8.2": 170 | version "2.8.2" 171 | resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.8.2.tgz#a170050404792acb6d9beac931b5ece25e3fc0b9" 172 | integrity sha512-U2GT9gq1Zs3Gr83j8JIs10bLbGOHFl57Y8D57nrdR05F4iilV/UR6K7jkhdoiFc9WiHh3ewvrko5+pSdAVFPgQ== 173 | dependencies: 174 | chalk "^4.1.0" 175 | 176 | "@parcel/compressor-raw@2.8.2": 177 | version "2.8.2" 178 | resolved "https://registry.yarnpkg.com/@parcel/compressor-raw/-/compressor-raw-2.8.2.tgz#8b21b958416185a55ecd301ddf92ba6aded8c082" 179 | integrity sha512-EFPTer/P+3axifH6LtYHS3E6ABgdZnjZomJZ/Nl19lypZh/NgZzmMZlINlEVqyYhCggoKfXzgeTgkIHPN2d5Vw== 180 | dependencies: 181 | "@parcel/plugin" "2.8.2" 182 | 183 | "@parcel/config-default@2.8.2": 184 | version "2.8.2" 185 | resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.8.2.tgz#2f96207f84bdd155cf4bfd02f10519b2ec33449a" 186 | integrity sha512-1ELJAHx37fKSZZkYKWy6UdcuLRv5vrZJc89tVS6eRvvMt+udbIoSgIUzPXu7XemkcchF7Tryw3u2pRyxyLyL3w== 187 | dependencies: 188 | "@parcel/bundler-default" "2.8.2" 189 | "@parcel/compressor-raw" "2.8.2" 190 | "@parcel/namer-default" "2.8.2" 191 | "@parcel/optimizer-css" "2.8.2" 192 | "@parcel/optimizer-htmlnano" "2.8.2" 193 | "@parcel/optimizer-image" "2.8.2" 194 | "@parcel/optimizer-svgo" "2.8.2" 195 | "@parcel/optimizer-terser" "2.8.2" 196 | "@parcel/packager-css" "2.8.2" 197 | "@parcel/packager-html" "2.8.2" 198 | "@parcel/packager-js" "2.8.2" 199 | "@parcel/packager-raw" "2.8.2" 200 | "@parcel/packager-svg" "2.8.2" 201 | "@parcel/reporter-dev-server" "2.8.2" 202 | "@parcel/resolver-default" "2.8.2" 203 | "@parcel/runtime-browser-hmr" "2.8.2" 204 | "@parcel/runtime-js" "2.8.2" 205 | "@parcel/runtime-react-refresh" "2.8.2" 206 | "@parcel/runtime-service-worker" "2.8.2" 207 | "@parcel/transformer-babel" "2.8.2" 208 | "@parcel/transformer-css" "2.8.2" 209 | "@parcel/transformer-html" "2.8.2" 210 | "@parcel/transformer-image" "2.8.2" 211 | "@parcel/transformer-js" "2.8.2" 212 | "@parcel/transformer-json" "2.8.2" 213 | "@parcel/transformer-postcss" "2.8.2" 214 | "@parcel/transformer-posthtml" "2.8.2" 215 | "@parcel/transformer-raw" "2.8.2" 216 | "@parcel/transformer-react-refresh-wrap" "2.8.2" 217 | "@parcel/transformer-svg" "2.8.2" 218 | 219 | "@parcel/core@2.8.2": 220 | version "2.8.2" 221 | resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.8.2.tgz#9ee5a0b18337885dc0893958f9e4190cb599200a" 222 | integrity sha512-ZGuq6p+Lzx6fgufaVsuOBwgpU3hgskTvIDIMdIDi9gOZyhGPK7U2srXdX+VYUL5ZSGbX04/P6QlB9FMAXK+nEg== 223 | dependencies: 224 | "@mischnic/json-sourcemap" "^0.1.0" 225 | "@parcel/cache" "2.8.2" 226 | "@parcel/diagnostic" "2.8.2" 227 | "@parcel/events" "2.8.2" 228 | "@parcel/fs" "2.8.2" 229 | "@parcel/graph" "2.8.2" 230 | "@parcel/hash" "2.8.2" 231 | "@parcel/logger" "2.8.2" 232 | "@parcel/package-manager" "2.8.2" 233 | "@parcel/plugin" "2.8.2" 234 | "@parcel/source-map" "^2.1.1" 235 | "@parcel/types" "2.8.2" 236 | "@parcel/utils" "2.8.2" 237 | "@parcel/workers" "2.8.2" 238 | abortcontroller-polyfill "^1.1.9" 239 | base-x "^3.0.8" 240 | browserslist "^4.6.6" 241 | clone "^2.1.1" 242 | dotenv "^7.0.0" 243 | dotenv-expand "^5.1.0" 244 | json5 "^2.2.0" 245 | msgpackr "^1.5.4" 246 | nullthrows "^1.1.1" 247 | semver "^5.7.1" 248 | 249 | "@parcel/diagnostic@2.8.2": 250 | version "2.8.2" 251 | resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.8.2.tgz#7a6ca8c537cd59570ebc44615e1637cfd9675698" 252 | integrity sha512-tGSMwM2rSYLjJW0fCd9gb3tNjfCX/83PZ10/5u2E33UZVkk8OIHsQmsrtq2H2g4oQL3rFxkfEx6nGPDGHwlx7A== 253 | dependencies: 254 | "@mischnic/json-sourcemap" "^0.1.0" 255 | nullthrows "^1.1.1" 256 | 257 | "@parcel/events@2.8.2": 258 | version "2.8.2" 259 | resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.8.2.tgz#9ef8d93f1a41369ac1685a1e2bbef7b76390259c" 260 | integrity sha512-o5etrsKm16y8iRPnjtEBNy4lD0WAigD66yt/RZl9Rx0vPVDly/63Rr9+BrXWVW7bJ7x0S0VVpWW4j3f/qZOsXg== 261 | 262 | "@parcel/fs-search@2.8.2": 263 | version "2.8.2" 264 | resolved "https://registry.yarnpkg.com/@parcel/fs-search/-/fs-search-2.8.2.tgz#6d68fedac193ef1ab28d3bf4cb69a4c03f44b9a8" 265 | integrity sha512-ovQnupRm/MoE/tbgH0Ivknk0QYenXAewjcog+T5umDmUlTmnIRZjURrgDf5Xtw8T/CD5Xv+HmIXpJ9Ez/LzJpw== 266 | dependencies: 267 | detect-libc "^1.0.3" 268 | 269 | "@parcel/fs@2.8.2": 270 | version "2.8.2" 271 | resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.8.2.tgz#380b76962f908cafec1fda6d4bb6ccda450325ab" 272 | integrity sha512-aN8znbMndSqn1xwZEmMblzqmJsxcExv2jKLl/a9RUHAP7LaPYcPZIykDL3YwGCiKTCzjmRpXnNoyosjFFeBaHA== 273 | dependencies: 274 | "@parcel/fs-search" "2.8.2" 275 | "@parcel/types" "2.8.2" 276 | "@parcel/utils" "2.8.2" 277 | "@parcel/watcher" "^2.0.7" 278 | "@parcel/workers" "2.8.2" 279 | 280 | "@parcel/graph@2.8.2": 281 | version "2.8.2" 282 | resolved "https://registry.yarnpkg.com/@parcel/graph/-/graph-2.8.2.tgz#f5bb5664f50f6dcb435beb75d0e663879fce890d" 283 | integrity sha512-SLEvBQBgfkXgU4EBu30+CNanpuKjcNuEv/x8SwobCF0i3Rk+QKbe7T36bNR7727mao++2Ha69q93Dd9dTPw0kQ== 284 | dependencies: 285 | nullthrows "^1.1.1" 286 | 287 | "@parcel/hash@2.8.2": 288 | version "2.8.2" 289 | resolved "https://registry.yarnpkg.com/@parcel/hash/-/hash-2.8.2.tgz#f621431391cf873139125bacd4617c493c737cd7" 290 | integrity sha512-NBnP8Hu0xvAqAfZXRaMM66i8nJyxpKS86BbhwkbgTGbwO1OY87GERliHeREJfcER0E0ZzwNow7MNR8ZDm6IvJQ== 291 | dependencies: 292 | detect-libc "^1.0.3" 293 | xxhash-wasm "^0.4.2" 294 | 295 | "@parcel/logger@2.8.2": 296 | version "2.8.2" 297 | resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.8.2.tgz#21df19cf2a084d247199b71a01511560a7ba98fc" 298 | integrity sha512-zlhK6QHxfFJMlVJxxcCw0xxBDrYPFPOhMxSD6p6b0z9Yct1l3NdpmfabgjKX8wnZmHokFsil6daleM+M80n2Ew== 299 | dependencies: 300 | "@parcel/diagnostic" "2.8.2" 301 | "@parcel/events" "2.8.2" 302 | 303 | "@parcel/markdown-ansi@2.8.2": 304 | version "2.8.2" 305 | resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.8.2.tgz#cb453c70de9c1ea85e2650fb46abbdf2ccbafa9e" 306 | integrity sha512-5y29TXgRgG0ybuXaDsDk4Aofg/nDUeAAyVl9/toYCDDhxpQV4yZt8WNPu4PaNYKGLuNgXwsmz+ryZQHGmfbAIQ== 307 | dependencies: 308 | chalk "^4.1.0" 309 | 310 | "@parcel/namer-default@2.8.2": 311 | version "2.8.2" 312 | resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.8.2.tgz#4106cffaa48359ce1ad4e504497a6d7d8db7935e" 313 | integrity sha512-sMLW/bDWXA6IE7TQKOsBnA5agZGNvZ9qIXKZEUTsTloUjMdAWI8NYA1s0i9HovnGxI5uGlgevrftK4S5V4AdkA== 314 | dependencies: 315 | "@parcel/diagnostic" "2.8.2" 316 | "@parcel/plugin" "2.8.2" 317 | nullthrows "^1.1.1" 318 | 319 | "@parcel/node-resolver-core@2.8.2": 320 | version "2.8.2" 321 | resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-2.8.2.tgz#5113e476367aa9e48a021d13624e0d5ca68cb42f" 322 | integrity sha512-D/NJEz/h/C3RmUOWSTg0cLwG3uRVHY9PL+3YGO/c8tKu8PlS2j55XtntdiVfwkK+P6avLCnrJnv/gwTa79dOPw== 323 | dependencies: 324 | "@parcel/diagnostic" "2.8.2" 325 | "@parcel/utils" "2.8.2" 326 | nullthrows "^1.1.1" 327 | semver "^5.7.1" 328 | 329 | "@parcel/optimizer-css@2.8.2": 330 | version "2.8.2" 331 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-css/-/optimizer-css-2.8.2.tgz#3d3be3303db776cc9acbcc82d9e0a8b6d67cde5c" 332 | integrity sha512-pQEuKhk0PJuYI3hrXlf4gpuuPy+MZUDzC44ulQM7kVcVJ0OofuJQQeHfTLE+v5wClFDd29ZQZ7RsLP5RyUQ+Lg== 333 | dependencies: 334 | "@parcel/diagnostic" "2.8.2" 335 | "@parcel/plugin" "2.8.2" 336 | "@parcel/source-map" "^2.1.1" 337 | "@parcel/utils" "2.8.2" 338 | browserslist "^4.6.6" 339 | lightningcss "^1.16.1" 340 | nullthrows "^1.1.1" 341 | 342 | "@parcel/optimizer-htmlnano@2.8.2": 343 | version "2.8.2" 344 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.8.2.tgz#988c3bf6a7ca513ab8d0a3e41bbe1204eb27187c" 345 | integrity sha512-4+3wi+Yi+hsf5/LolX59JXFe/7bLpI6NetUBgtoxOVm/EzFg1NGSNOcrthzEcgGj6+MMSdzBAxRTPObAfDxJCA== 346 | dependencies: 347 | "@parcel/plugin" "2.8.2" 348 | htmlnano "^2.0.0" 349 | nullthrows "^1.1.1" 350 | posthtml "^0.16.5" 351 | svgo "^2.4.0" 352 | 353 | "@parcel/optimizer-image@2.8.2": 354 | version "2.8.2" 355 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-image/-/optimizer-image-2.8.2.tgz#5d44a0b658db5a0ab7749edbe29ce118d5e09011" 356 | integrity sha512-/ICYG0smbMkli+su4m/ENQPxQDCPYYTJTjseKwl+t1vyj6wqNF99mNI4c0RE2TIPuDneGwSz7PlHhC2JmdgxfQ== 357 | dependencies: 358 | "@parcel/diagnostic" "2.8.2" 359 | "@parcel/plugin" "2.8.2" 360 | "@parcel/utils" "2.8.2" 361 | "@parcel/workers" "2.8.2" 362 | detect-libc "^1.0.3" 363 | 364 | "@parcel/optimizer-svgo@2.8.2": 365 | version "2.8.2" 366 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-svgo/-/optimizer-svgo-2.8.2.tgz#057c245900640b9e4f0f6f1a96d7ae6b4185ce17" 367 | integrity sha512-nFWyM+CBtgBixqknpbN4R92v8PK7Gjlrsb8vxN/IIr/3Pjk+DfoT51DnynhU7AixvDylYkgjjqrQ7uFYYl0OKA== 368 | dependencies: 369 | "@parcel/diagnostic" "2.8.2" 370 | "@parcel/plugin" "2.8.2" 371 | "@parcel/utils" "2.8.2" 372 | svgo "^2.4.0" 373 | 374 | "@parcel/optimizer-terser@2.8.2": 375 | version "2.8.2" 376 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-terser/-/optimizer-terser-2.8.2.tgz#9126bf66bc4d88fe5b2325eafd6fcbc431e5a284" 377 | integrity sha512-jFAOh9WaO6oNc8B9qDsCWzNkH7nYlpvaPn0w3ZzpMDi0HWD+w+xgO737rWLJWZapqUDSOs0Q/hDFEZ82/z0yxA== 378 | dependencies: 379 | "@parcel/diagnostic" "2.8.2" 380 | "@parcel/plugin" "2.8.2" 381 | "@parcel/source-map" "^2.1.1" 382 | "@parcel/utils" "2.8.2" 383 | nullthrows "^1.1.1" 384 | terser "^5.2.0" 385 | 386 | "@parcel/package-manager@2.8.2": 387 | version "2.8.2" 388 | resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.8.2.tgz#fd7886bb4f828929ffed93cfc345cf160b540d4c" 389 | integrity sha512-hx4Imi0yhsSS0aNZkEANPYNNKqBuR63EUNWSxMyHh4ZOvbHoOXnMn1ySGdx6v0oi9HvKymNsLMQ1T5CuI4l4Bw== 390 | dependencies: 391 | "@parcel/diagnostic" "2.8.2" 392 | "@parcel/fs" "2.8.2" 393 | "@parcel/logger" "2.8.2" 394 | "@parcel/types" "2.8.2" 395 | "@parcel/utils" "2.8.2" 396 | "@parcel/workers" "2.8.2" 397 | semver "^5.7.1" 398 | 399 | "@parcel/packager-css@2.8.2": 400 | version "2.8.2" 401 | resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.8.2.tgz#f7a07aa9625edbaf0c5c07ee8b5be77ab64cc0d7" 402 | integrity sha512-l2fR5qr1moUWLOqQZPxtH6DBKbaKcxzEPAmQ+f15dHt8eQxU15MyQ4DHX41b5B7HwaumgCqe0NkuTF3DedpJKg== 403 | dependencies: 404 | "@parcel/plugin" "2.8.2" 405 | "@parcel/source-map" "^2.1.1" 406 | "@parcel/utils" "2.8.2" 407 | nullthrows "^1.1.1" 408 | 409 | "@parcel/packager-html@2.8.2": 410 | version "2.8.2" 411 | resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.8.2.tgz#17b47368aebf675c906d036b4ac245ceab39102a" 412 | integrity sha512-/oiTsKZ5OyF9OwAVGHANNuW2TB3k3cVub1QfttSKJgG3sAhrOifb1dP8zBHMxvUrB0CJdYhGlgi1Jth9kjACCg== 413 | dependencies: 414 | "@parcel/plugin" "2.8.2" 415 | "@parcel/types" "2.8.2" 416 | "@parcel/utils" "2.8.2" 417 | nullthrows "^1.1.1" 418 | posthtml "^0.16.5" 419 | 420 | "@parcel/packager-js@2.8.2": 421 | version "2.8.2" 422 | resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.8.2.tgz#5378107d81847c654f1c3534b4638470a21c4419" 423 | integrity sha512-48LtHP4lJn8J1aBeD4Ix/YjsRxrBUkzbx7czdUeRh2PlCqY4wwIhciVlEFipj/ANr3ieSX44lXyVPk/ttnSdrw== 424 | dependencies: 425 | "@parcel/diagnostic" "2.8.2" 426 | "@parcel/hash" "2.8.2" 427 | "@parcel/plugin" "2.8.2" 428 | "@parcel/source-map" "^2.1.1" 429 | "@parcel/utils" "2.8.2" 430 | globals "^13.2.0" 431 | nullthrows "^1.1.1" 432 | 433 | "@parcel/packager-raw@2.8.2": 434 | version "2.8.2" 435 | resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.8.2.tgz#380b91e52f37f41686370bb8ea9ffa9583f380a9" 436 | integrity sha512-dGonfFptNV1lgqKaD17ecXBUyIfoG6cJI1cCE1sSoYCEt7r+Rq56X/Gq8oiA3+jjMC7QTls+SmFeMZh26fl77Q== 437 | dependencies: 438 | "@parcel/plugin" "2.8.2" 439 | 440 | "@parcel/packager-svg@2.8.2": 441 | version "2.8.2" 442 | resolved "https://registry.yarnpkg.com/@parcel/packager-svg/-/packager-svg-2.8.2.tgz#bf002babdb061f045bf98736b08f4b8d6cc17ecf" 443 | integrity sha512-k7LymTJ4XQA+UcPwFYqJfWs5/Awa4GirNxRWfiFflLqH3F1XvMiKSCIQXmrDM6IaeIqqDDsu6+P5U6YDAzzM3A== 444 | dependencies: 445 | "@parcel/plugin" "2.8.2" 446 | "@parcel/types" "2.8.2" 447 | "@parcel/utils" "2.8.2" 448 | posthtml "^0.16.4" 449 | 450 | "@parcel/plugin@2.8.2": 451 | version "2.8.2" 452 | resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.8.2.tgz#f8d147cf32e52f7feff245d64d640890a18a6fd9" 453 | integrity sha512-YG7TWfKsoNm72jbz3b3TLec0qJHVkuAWSzGzowdIhX37cP1kRfp6BU2VcH+qYPP/KYJLzhcZa9n3by147mGcxw== 454 | dependencies: 455 | "@parcel/types" "2.8.2" 456 | 457 | "@parcel/reporter-cli@2.8.2": 458 | version "2.8.2" 459 | resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.8.2.tgz#bfd63b8bfb0bd72e483f4de496af6dc8e819a97e" 460 | integrity sha512-OIRlBqpKqPpMWRHATT8az8fUAqfceLWlWqgX/CW5cG1i6gefbBWFq2qYxDVBEk1bPDLIUCtqNLhfO8hLyweMjA== 461 | dependencies: 462 | "@parcel/plugin" "2.8.2" 463 | "@parcel/types" "2.8.2" 464 | "@parcel/utils" "2.8.2" 465 | chalk "^4.1.0" 466 | term-size "^2.2.1" 467 | 468 | "@parcel/reporter-dev-server@2.8.2": 469 | version "2.8.2" 470 | resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.8.2.tgz#f822e694ba9cbfce52ee2b4157b186819c48ce40" 471 | integrity sha512-A16pAQSAT8Yilo1yCPZcrtWbRhwyiMopEz0mOyGobA1ZDy6B3j4zjobIWzdPQCSIY7+v44vtWMDGbdGrxt6M1Q== 472 | dependencies: 473 | "@parcel/plugin" "2.8.2" 474 | "@parcel/utils" "2.8.2" 475 | 476 | "@parcel/resolver-default@2.8.2": 477 | version "2.8.2" 478 | resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.8.2.tgz#8a3e9721c82951700e3cc974c2a482f1d52a44e0" 479 | integrity sha512-mlowJMjFjyps9my8wd13kgeExJ5EgkPAuIxRSSWW+GPR7N3uA5DBJ+SB/CzdhCkPrXR6kwVWxNkkOch38pzOQQ== 480 | dependencies: 481 | "@parcel/node-resolver-core" "2.8.2" 482 | "@parcel/plugin" "2.8.2" 483 | 484 | "@parcel/runtime-browser-hmr@2.8.2": 485 | version "2.8.2" 486 | resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.8.2.tgz#b927aeba5bf76ec43731caf9c11cd09f504304e1" 487 | integrity sha512-VRM8mxakMglqRB0f5eAuwCigjJ5vlaJMwHy+JuzOsn/yVSELOb+6psRKl2B9hhxp9sJPt4IU6KDdH2IOrgx87Q== 488 | dependencies: 489 | "@parcel/plugin" "2.8.2" 490 | "@parcel/utils" "2.8.2" 491 | 492 | "@parcel/runtime-js@2.8.2": 493 | version "2.8.2" 494 | resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.8.2.tgz#f5a221df97c35c5660d2d9e3f5da607ba24e5276" 495 | integrity sha512-Vk3Gywn2M9qP5X4lF6tu8QXP4xNI90UOSOhKHQ9W5pCu+zvD0Gdvu7qwQPFuFjIAq08xU7+PvZzGnlnM+8NyRw== 496 | dependencies: 497 | "@parcel/plugin" "2.8.2" 498 | "@parcel/utils" "2.8.2" 499 | nullthrows "^1.1.1" 500 | 501 | "@parcel/runtime-react-refresh@2.8.2": 502 | version "2.8.2" 503 | resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.8.2.tgz#107eed92bc5b3ac30ddeb45489b7813720c415e6" 504 | integrity sha512-JjaMvBVx6v0zB1KHa7AopciIsl3FpjUMttr2tb6L7lzocti2muQGE6GBfinXOmD5oERwCf8HwGJ8SNFcIF0rKA== 505 | dependencies: 506 | "@parcel/plugin" "2.8.2" 507 | "@parcel/utils" "2.8.2" 508 | react-error-overlay "6.0.9" 509 | react-refresh "^0.9.0" 510 | 511 | "@parcel/runtime-service-worker@2.8.2": 512 | version "2.8.2" 513 | resolved "https://registry.yarnpkg.com/@parcel/runtime-service-worker/-/runtime-service-worker-2.8.2.tgz#f8d2d5665cdb49a423efdf4079f436d3598e5775" 514 | integrity sha512-KSxbOKV8nuH5JjFvcUlCtBYnVVlmxreXpMxRUPphPwJnyxRGA4E0jofbQxWY5KPgp7x/ZnZU/nyzCvqURH3kHA== 515 | dependencies: 516 | "@parcel/plugin" "2.8.2" 517 | "@parcel/utils" "2.8.2" 518 | nullthrows "^1.1.1" 519 | 520 | "@parcel/source-map@^2.1.1": 521 | version "2.1.1" 522 | resolved "https://registry.yarnpkg.com/@parcel/source-map/-/source-map-2.1.1.tgz#fb193b82dba6dd62cc7a76b326f57bb35000a782" 523 | integrity sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew== 524 | dependencies: 525 | detect-libc "^1.0.3" 526 | 527 | "@parcel/transformer-babel@2.8.2": 528 | version "2.8.2" 529 | resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.8.2.tgz#277416b6bb4e691869e3c7f9dff0abeec4462841" 530 | integrity sha512-oL2BpvrPMwFiU9jUZ9UYGD1gRgvq9jLsOq+/PJl4GvPbOBVedIBE2nbHP/mYuWRpRnTTTiJQ/ItyOS0R2VQl7A== 531 | dependencies: 532 | "@parcel/diagnostic" "2.8.2" 533 | "@parcel/plugin" "2.8.2" 534 | "@parcel/source-map" "^2.1.1" 535 | "@parcel/utils" "2.8.2" 536 | browserslist "^4.6.6" 537 | json5 "^2.2.0" 538 | nullthrows "^1.1.1" 539 | semver "^5.7.0" 540 | 541 | "@parcel/transformer-css@2.8.2": 542 | version "2.8.2" 543 | resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.8.2.tgz#c00b48657a7fe35701686972f68633c72259cf87" 544 | integrity sha512-q8UDlX/TTCbuFBMU45q12/p92JNIz8MHkkH104dWDzXbRtvMKMg8jgNmr8S2bouZjtXMsSb2c54EO88DSM9G4A== 545 | dependencies: 546 | "@parcel/diagnostic" "2.8.2" 547 | "@parcel/plugin" "2.8.2" 548 | "@parcel/source-map" "^2.1.1" 549 | "@parcel/utils" "2.8.2" 550 | browserslist "^4.6.6" 551 | lightningcss "^1.16.1" 552 | nullthrows "^1.1.1" 553 | 554 | "@parcel/transformer-html@2.8.2": 555 | version "2.8.2" 556 | resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.8.2.tgz#1d37fd56cde779d8a6f2074dfa55d051a17a27a4" 557 | integrity sha512-QDgDw6+DAcllaRQiRteMX0VgPIsxRUTXFS8jcXhbGio41LbUkLcT09M04L/cfJAAzvIKhXqiOxfNnyajTvCPDQ== 558 | dependencies: 559 | "@parcel/diagnostic" "2.8.2" 560 | "@parcel/hash" "2.8.2" 561 | "@parcel/plugin" "2.8.2" 562 | nullthrows "^1.1.1" 563 | posthtml "^0.16.5" 564 | posthtml-parser "^0.10.1" 565 | posthtml-render "^3.0.0" 566 | semver "^5.7.1" 567 | 568 | "@parcel/transformer-image@2.8.2": 569 | version "2.8.2" 570 | resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.8.2.tgz#3072081c21a1de9a1c3a5c0fed7d5def65f1338d" 571 | integrity sha512-B/D9v/BVyN5jxoi+wHPbIRfMIylmC6adp8GP+BtChjbuRjukgGT8RlAVz4vDm1l0bboeyPL2IuoWRQgXKGuPVg== 572 | dependencies: 573 | "@parcel/plugin" "2.8.2" 574 | "@parcel/utils" "2.8.2" 575 | "@parcel/workers" "2.8.2" 576 | nullthrows "^1.1.1" 577 | 578 | "@parcel/transformer-js@2.8.2": 579 | version "2.8.2" 580 | resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.8.2.tgz#cb7b954836011656f1807b2da1900377ebd16df6" 581 | integrity sha512-mLksi6gu/20JdCFDNPl7Y0HTwJOAvf2ybC2HaJcy69PJCeUrrstgiFTjsCwv1eKcesgEHi9kKX+sMHVAH3B/dA== 582 | dependencies: 583 | "@parcel/diagnostic" "2.8.2" 584 | "@parcel/plugin" "2.8.2" 585 | "@parcel/source-map" "^2.1.1" 586 | "@parcel/utils" "2.8.2" 587 | "@parcel/workers" "2.8.2" 588 | "@swc/helpers" "^0.4.12" 589 | browserslist "^4.6.6" 590 | detect-libc "^1.0.3" 591 | nullthrows "^1.1.1" 592 | regenerator-runtime "^0.13.7" 593 | semver "^5.7.1" 594 | 595 | "@parcel/transformer-json@2.8.2": 596 | version "2.8.2" 597 | resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.8.2.tgz#f184290c35ded6124fdd222e40e1c27e9e2726b6" 598 | integrity sha512-eZuaY5tMxcMDJwpHJbPVTgSaBIO4mamwAa3VulN9kRRaf29nc+Q0iM7zMFVHWFQAi/mZZ194IIQXbDX3r6oSSQ== 599 | dependencies: 600 | "@parcel/plugin" "2.8.2" 601 | json5 "^2.2.0" 602 | 603 | "@parcel/transformer-postcss@2.8.2": 604 | version "2.8.2" 605 | resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.8.2.tgz#ca1db56e639a6fcef134128cf8c172999c21bc10" 606 | integrity sha512-0Vb4T2e0QinNDps1/PxYsZwEzWieVxoW++AAUD3gzg0MfSyRc72MPc27CLOnziiRDyOUl+62gqpnNzq9xaKExA== 607 | dependencies: 608 | "@parcel/diagnostic" "2.8.2" 609 | "@parcel/hash" "2.8.2" 610 | "@parcel/plugin" "2.8.2" 611 | "@parcel/utils" "2.8.2" 612 | clone "^2.1.1" 613 | nullthrows "^1.1.1" 614 | postcss-value-parser "^4.2.0" 615 | semver "^5.7.1" 616 | 617 | "@parcel/transformer-posthtml@2.8.2": 618 | version "2.8.2" 619 | resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.8.2.tgz#efcb8554211facbc70cc9e53c125d5ae31b26bff" 620 | integrity sha512-Ub7o6QlH7+xHHHdhvR7MxTqjyLVqeJopPSzy4yP+Bd72tWVjaVm7f76SUl+p7VjhLTMkmczr9OxG3k0SFHEbGw== 621 | dependencies: 622 | "@parcel/plugin" "2.8.2" 623 | "@parcel/utils" "2.8.2" 624 | nullthrows "^1.1.1" 625 | posthtml "^0.16.5" 626 | posthtml-parser "^0.10.1" 627 | posthtml-render "^3.0.0" 628 | semver "^5.7.1" 629 | 630 | "@parcel/transformer-raw@2.8.2": 631 | version "2.8.2" 632 | resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.8.2.tgz#f463f2bb3c43059c0881381fb1d0453dbf8133aa" 633 | integrity sha512-xSzyZtrfisbx0R7xkuFJ/FksKyWaUFN18F9/0bLF8wo5LrOTQoYQatjun7/Rbq5mELBK/0ZPp7uJ02OqLRd2mA== 634 | dependencies: 635 | "@parcel/plugin" "2.8.2" 636 | 637 | "@parcel/transformer-react-refresh-wrap@2.8.2": 638 | version "2.8.2" 639 | resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.8.2.tgz#26cde09bcef82ac6b2a2e1ce89172f8f622aef7b" 640 | integrity sha512-UXBILYFXaj5zh1DzoYXoS3Wuq1+6WjoRQaFTUA5xrF3pjJb6LAXxWru3R20zR5INHIZXPxdQJB0b+epnmyjK4w== 641 | dependencies: 642 | "@parcel/plugin" "2.8.2" 643 | "@parcel/utils" "2.8.2" 644 | react-refresh "^0.9.0" 645 | 646 | "@parcel/transformer-svg@2.8.2": 647 | version "2.8.2" 648 | resolved "https://registry.yarnpkg.com/@parcel/transformer-svg/-/transformer-svg-2.8.2.tgz#850fef81cd9822f111c123b4b0c1024b3d58bcc3" 649 | integrity sha512-FyliRrNHOF6tGzwHSzA2CTbkq3iMvS27eozf1kFj6gbO8gfJ5HXYoppQrTb237YZ/WXCHqe/3HVmGyJDZiLr+Q== 650 | dependencies: 651 | "@parcel/diagnostic" "2.8.2" 652 | "@parcel/hash" "2.8.2" 653 | "@parcel/plugin" "2.8.2" 654 | nullthrows "^1.1.1" 655 | posthtml "^0.16.5" 656 | posthtml-parser "^0.10.1" 657 | posthtml-render "^3.0.0" 658 | semver "^5.7.1" 659 | 660 | "@parcel/types@2.8.2": 661 | version "2.8.2" 662 | resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.8.2.tgz#1a2cc2ec20a52f42dabd9260dbb912b927e2d75d" 663 | integrity sha512-HAYhokWxM10raIhqaYj9VR9eAvJ+xP2sNfQ1IcQybHpq3qblcBe/4jDeuUpwIyKeQ4gorp7xY+q8KDoR20j43w== 664 | dependencies: 665 | "@parcel/cache" "2.8.2" 666 | "@parcel/diagnostic" "2.8.2" 667 | "@parcel/fs" "2.8.2" 668 | "@parcel/package-manager" "2.8.2" 669 | "@parcel/source-map" "^2.1.1" 670 | "@parcel/workers" "2.8.2" 671 | utility-types "^3.10.0" 672 | 673 | "@parcel/utils@2.8.2": 674 | version "2.8.2" 675 | resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.8.2.tgz#7e917d2ebd5326e12e878858a416e50706bc804d" 676 | integrity sha512-Ufax7wZxC9FNsUpR0EU7Z22LEY/q9jjsDTwswctCdfpWb7TE/NudOfM9myycfRvwBVEYN50lPbkt1QltEVnXQQ== 677 | dependencies: 678 | "@parcel/codeframe" "2.8.2" 679 | "@parcel/diagnostic" "2.8.2" 680 | "@parcel/hash" "2.8.2" 681 | "@parcel/logger" "2.8.2" 682 | "@parcel/markdown-ansi" "2.8.2" 683 | "@parcel/source-map" "^2.1.1" 684 | chalk "^4.1.0" 685 | 686 | "@parcel/watcher@^2.0.7": 687 | version "2.1.0" 688 | resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.1.0.tgz#5f32969362db4893922c526a842d8af7a8538545" 689 | integrity sha512-8s8yYjd19pDSsBpbkOHnT6Z2+UJSuLQx61pCFM0s5wSRvKCEMDjd/cHY3/GI1szHIWbpXpsJdg3V6ISGGx9xDw== 690 | dependencies: 691 | is-glob "^4.0.3" 692 | micromatch "^4.0.5" 693 | node-addon-api "^3.2.1" 694 | node-gyp-build "^4.3.0" 695 | 696 | "@parcel/workers@2.8.2": 697 | version "2.8.2" 698 | resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.8.2.tgz#7d170bd153e35ebd7fb59f239930bd5669babe7d" 699 | integrity sha512-Eg6CofIrJSNBa2fjXwvnzVLPKwR/6fkfQTFAm3Jl+4JYLVknBtTSFzQNp/Fa+HUEG889H9ucTk2CBi/fVPBAFw== 700 | dependencies: 701 | "@parcel/diagnostic" "2.8.2" 702 | "@parcel/logger" "2.8.2" 703 | "@parcel/types" "2.8.2" 704 | "@parcel/utils" "2.8.2" 705 | chrome-trace-event "^1.0.2" 706 | nullthrows "^1.1.1" 707 | 708 | "@swc/helpers@^0.4.12": 709 | version "0.4.14" 710 | resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.14.tgz#1352ac6d95e3617ccb7c1498ff019654f1e12a74" 711 | integrity sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw== 712 | dependencies: 713 | tslib "^2.4.0" 714 | 715 | "@trysound/sax@0.2.0": 716 | version "0.2.0" 717 | resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" 718 | integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== 719 | 720 | "@types/parse-json@^4.0.0": 721 | version "4.0.0" 722 | resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" 723 | integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== 724 | 725 | "@types/prop-types@*": 726 | version "15.7.4" 727 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" 728 | integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== 729 | 730 | "@types/react-dom@^16.8.4": 731 | version "16.9.14" 732 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.14.tgz#674b8f116645fe5266b40b525777fc6bb8eb3bcd" 733 | integrity sha512-FIX2AVmPTGP30OUJ+0vadeIFJJ07Mh1m+U0rxfgyW34p3rTlXI+nlenvAxNn4BP36YyI9IJ/+UJ7Wu22N1pI7A== 734 | dependencies: 735 | "@types/react" "^16" 736 | 737 | "@types/react@^16", "@types/react@^16.9.11": 738 | version "16.14.15" 739 | resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.15.tgz#95d8fa3148050e94bcdc5751447921adbe19f9e6" 740 | integrity sha512-jOxlBV9RGZhphdeqJTCv35VZOkjY+XIEY2owwSk84BNDdDv2xS6Csj6fhi+B/q30SR9Tz8lDNt/F2Z5RF3TrRg== 741 | dependencies: 742 | "@types/prop-types" "*" 743 | "@types/scheduler" "*" 744 | csstype "^3.0.2" 745 | 746 | "@types/scheduler@*": 747 | version "0.16.2" 748 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" 749 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== 750 | 751 | abortcontroller-polyfill@^1.1.9: 752 | version "1.7.5" 753 | resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed" 754 | integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ== 755 | 756 | acorn@^8.5.0: 757 | version "8.8.1" 758 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" 759 | integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== 760 | 761 | ansi-styles@^3.2.1: 762 | version "3.2.1" 763 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 764 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 765 | dependencies: 766 | color-convert "^1.9.0" 767 | 768 | ansi-styles@^4.1.0: 769 | version "4.3.0" 770 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 771 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 772 | dependencies: 773 | color-convert "^2.0.1" 774 | 775 | asap@~2.0.6: 776 | version "2.0.6" 777 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" 778 | integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= 779 | 780 | base-x@^3.0.8: 781 | version "3.0.9" 782 | resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" 783 | integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== 784 | dependencies: 785 | safe-buffer "^5.0.1" 786 | 787 | boolbase@^1.0.0: 788 | version "1.0.0" 789 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 790 | integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== 791 | 792 | braces@^3.0.2: 793 | version "3.0.2" 794 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 795 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 796 | dependencies: 797 | fill-range "^7.0.1" 798 | 799 | browserslist@^4.6.6: 800 | version "4.21.4" 801 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" 802 | integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== 803 | dependencies: 804 | caniuse-lite "^1.0.30001400" 805 | electron-to-chromium "^1.4.251" 806 | node-releases "^2.0.6" 807 | update-browserslist-db "^1.0.9" 808 | 809 | buffer-from@^1.0.0: 810 | version "1.1.2" 811 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 812 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 813 | 814 | callsites@^3.0.0: 815 | version "3.1.0" 816 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 817 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 818 | 819 | caniuse-lite@^1.0.30001400: 820 | version "1.0.30001442" 821 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz#40337f1cf3be7c637b061e2f78582dc1daec0614" 822 | integrity sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow== 823 | 824 | chalk@^2.0.0: 825 | version "2.4.2" 826 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 827 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 828 | dependencies: 829 | ansi-styles "^3.2.1" 830 | escape-string-regexp "^1.0.5" 831 | supports-color "^5.3.0" 832 | 833 | chalk@^4.1.0: 834 | version "4.1.2" 835 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 836 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 837 | dependencies: 838 | ansi-styles "^4.1.0" 839 | supports-color "^7.1.0" 840 | 841 | chrome-trace-event@^1.0.2: 842 | version "1.0.3" 843 | resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" 844 | integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== 845 | 846 | clone@^2.1.1: 847 | version "2.1.2" 848 | resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" 849 | integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== 850 | 851 | color-convert@^1.9.0: 852 | version "1.9.3" 853 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 854 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 855 | dependencies: 856 | color-name "1.1.3" 857 | 858 | color-convert@^2.0.1: 859 | version "2.0.1" 860 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 861 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 862 | dependencies: 863 | color-name "~1.1.4" 864 | 865 | color-name@1.1.3: 866 | version "1.1.3" 867 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 868 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 869 | 870 | color-name@~1.1.4: 871 | version "1.1.4" 872 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 873 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 874 | 875 | commander@^2.20.0: 876 | version "2.20.3" 877 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 878 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 879 | 880 | commander@^7.0.0, commander@^7.2.0: 881 | version "7.2.0" 882 | resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" 883 | integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== 884 | 885 | core-js@^3.5.0: 886 | version "3.18.0" 887 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.18.0.tgz#9af3f4a6df9ba3428a3fb1b171f1503b3f40cc49" 888 | integrity sha512-WJeQqq6jOYgVgg4NrXKL0KLQhi0CT4ZOCvFL+3CQ5o7I6J8HkT5wd53EadMfqTDp1so/MT1J+w2ujhWcCJtN7w== 889 | 890 | cosmiconfig@^7.0.1: 891 | version "7.1.0" 892 | resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" 893 | integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== 894 | dependencies: 895 | "@types/parse-json" "^4.0.0" 896 | import-fresh "^3.2.1" 897 | parse-json "^5.0.0" 898 | path-type "^4.0.0" 899 | yaml "^1.10.0" 900 | 901 | css-select@^4.1.3: 902 | version "4.3.0" 903 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" 904 | integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== 905 | dependencies: 906 | boolbase "^1.0.0" 907 | css-what "^6.0.1" 908 | domhandler "^4.3.1" 909 | domutils "^2.8.0" 910 | nth-check "^2.0.1" 911 | 912 | css-tree@^1.1.2, css-tree@^1.1.3: 913 | version "1.1.3" 914 | resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" 915 | integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== 916 | dependencies: 917 | mdn-data "2.0.14" 918 | source-map "^0.6.1" 919 | 920 | css-what@^6.0.1: 921 | version "6.1.0" 922 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" 923 | integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== 924 | 925 | csso@^4.2.0: 926 | version "4.2.0" 927 | resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" 928 | integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== 929 | dependencies: 930 | css-tree "^1.1.2" 931 | 932 | csstype@^3.0.2: 933 | version "3.0.9" 934 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.9.tgz#6410af31b26bd0520933d02cbc64fce9ce3fbf0b" 935 | integrity sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw== 936 | 937 | detect-libc@^1.0.3: 938 | version "1.0.3" 939 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 940 | integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== 941 | 942 | dom-serializer@^1.0.1: 943 | version "1.4.1" 944 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" 945 | integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== 946 | dependencies: 947 | domelementtype "^2.0.1" 948 | domhandler "^4.2.0" 949 | entities "^2.0.0" 950 | 951 | domelementtype@^2.0.1, domelementtype@^2.2.0: 952 | version "2.3.0" 953 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" 954 | integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== 955 | 956 | domhandler@^4.2.0, domhandler@^4.2.2, domhandler@^4.3.1: 957 | version "4.3.1" 958 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" 959 | integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== 960 | dependencies: 961 | domelementtype "^2.2.0" 962 | 963 | domutils@^2.8.0: 964 | version "2.8.0" 965 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" 966 | integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== 967 | dependencies: 968 | dom-serializer "^1.0.1" 969 | domelementtype "^2.2.0" 970 | domhandler "^4.2.0" 971 | 972 | dotenv-expand@^5.1.0: 973 | version "5.1.0" 974 | resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" 975 | integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== 976 | 977 | dotenv@^7.0.0: 978 | version "7.0.0" 979 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-7.0.0.tgz#a2be3cd52736673206e8a85fb5210eea29628e7c" 980 | integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g== 981 | 982 | electron-to-chromium@^1.4.251: 983 | version "1.4.284" 984 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" 985 | integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== 986 | 987 | entities@^2.0.0: 988 | version "2.2.0" 989 | resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" 990 | integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== 991 | 992 | entities@^3.0.1: 993 | version "3.0.1" 994 | resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" 995 | integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== 996 | 997 | error-ex@^1.3.1: 998 | version "1.3.2" 999 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 1000 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 1001 | dependencies: 1002 | is-arrayish "^0.2.1" 1003 | 1004 | escalade@^3.1.1: 1005 | version "3.1.1" 1006 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 1007 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 1008 | 1009 | escape-string-regexp@^1.0.5: 1010 | version "1.0.5" 1011 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1012 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 1013 | 1014 | fill-range@^7.0.1: 1015 | version "7.0.1" 1016 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 1017 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 1018 | dependencies: 1019 | to-regex-range "^5.0.1" 1020 | 1021 | get-port@^4.2.0: 1022 | version "4.2.0" 1023 | resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119" 1024 | integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== 1025 | 1026 | globals@^13.2.0: 1027 | version "13.19.0" 1028 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" 1029 | integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== 1030 | dependencies: 1031 | type-fest "^0.20.2" 1032 | 1033 | has-flag@^3.0.0: 1034 | version "3.0.0" 1035 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1036 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 1037 | 1038 | has-flag@^4.0.0: 1039 | version "4.0.0" 1040 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1041 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1042 | 1043 | htmlnano@^2.0.0: 1044 | version "2.0.3" 1045 | resolved "https://registry.yarnpkg.com/htmlnano/-/htmlnano-2.0.3.tgz#50ee639ed63357d4a6c01309f52a35892e4edc2e" 1046 | integrity sha512-S4PGGj9RbdgW8LhbILNK7W9JhmYP8zmDY7KDV/8eCiJBQJlbmltp5I0gv8c5ntLljfdxxfmJ+UJVSqyH4mb41A== 1047 | dependencies: 1048 | cosmiconfig "^7.0.1" 1049 | posthtml "^0.16.5" 1050 | timsort "^0.3.0" 1051 | 1052 | htmlparser2@^7.1.1: 1053 | version "7.2.0" 1054 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-7.2.0.tgz#8817cdea38bbc324392a90b1990908e81a65f5a5" 1055 | integrity sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog== 1056 | dependencies: 1057 | domelementtype "^2.0.1" 1058 | domhandler "^4.2.2" 1059 | domutils "^2.8.0" 1060 | entities "^3.0.1" 1061 | 1062 | import-fresh@^3.2.1: 1063 | version "3.3.0" 1064 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 1065 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 1066 | dependencies: 1067 | parent-module "^1.0.0" 1068 | resolve-from "^4.0.0" 1069 | 1070 | is-arrayish@^0.2.1: 1071 | version "0.2.1" 1072 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1073 | integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== 1074 | 1075 | is-extglob@^2.1.1: 1076 | version "2.1.1" 1077 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1078 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 1079 | 1080 | is-glob@^4.0.3: 1081 | version "4.0.3" 1082 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 1083 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1084 | dependencies: 1085 | is-extglob "^2.1.1" 1086 | 1087 | is-json@^2.0.1: 1088 | version "2.0.1" 1089 | resolved "https://registry.yarnpkg.com/is-json/-/is-json-2.0.1.tgz#6be166d144828a131d686891b983df62c39491ff" 1090 | integrity sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA== 1091 | 1092 | is-number@^7.0.0: 1093 | version "7.0.0" 1094 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1095 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1096 | 1097 | js-tokens@^4.0.0: 1098 | version "4.0.0" 1099 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1100 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1101 | 1102 | json-parse-even-better-errors@^2.3.0: 1103 | version "2.3.1" 1104 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" 1105 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 1106 | 1107 | json5@^2.2.0, json5@^2.2.1: 1108 | version "2.2.3" 1109 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" 1110 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== 1111 | 1112 | lightningcss-darwin-arm64@1.18.0: 1113 | version "1.18.0" 1114 | resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.18.0.tgz#bcd7d494d99c69947abd71136a42e80dfa80c682" 1115 | integrity sha512-OqjydwtiNPgdH1ByIjA1YzqvDG/OMR6L3LPN6wRl1729LB0y4Mik7L06kmZaTb+pvUHr+NmDd2KCwnlrQ4zO3w== 1116 | 1117 | lightningcss-darwin-x64@1.18.0: 1118 | version "1.18.0" 1119 | resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.18.0.tgz#952abea2405fe2bb8dd0bb57a9d5590f8d1d6414" 1120 | integrity sha512-mNiuPHj89/JHZmJMp+5H8EZSt6EL5DZRWJ31O6k3DrLLnRIQjXuXdDdN8kP7LoIkeWI5xvyD60CsReJm+YWYAw== 1121 | 1122 | lightningcss-linux-arm-gnueabihf@1.18.0: 1123 | version "1.18.0" 1124 | resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.18.0.tgz#23ca85e05dc4def9b4975aef307554ef292b56cd" 1125 | integrity sha512-S+25JjI6601HiAVoTDXW6SqH+E94a+FHA7WQqseyNHunOgVWKcAkNEc2LJvVxgwTq6z41sDIb9/M3Z9wa9lk4A== 1126 | 1127 | lightningcss-linux-arm64-gnu@1.18.0: 1128 | version "1.18.0" 1129 | resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.18.0.tgz#6c8e0a6e2c8b44cf180f3a0f0740402e8f656155" 1130 | integrity sha512-JSqh4+21dCgBecIQUet35dtE4PhhSEMyqe3y0ZNQrAJQ5kyUPSQHiw81WXnPJcOSTTpG0TyMLiC8K//+BsFGQA== 1131 | 1132 | lightningcss-linux-arm64-musl@1.18.0: 1133 | version "1.18.0" 1134 | resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.18.0.tgz#88393c101cf236ea0cdc97fddd66b82db964d835" 1135 | integrity sha512-2FWHa8iUhShnZnqhn2wfIcK5adJat9hAAaX7etNsoXJymlliDIOFuBQEsba2KBAZSM4QqfQtvRdR7m8i0I7ybQ== 1136 | 1137 | lightningcss-linux-x64-gnu@1.18.0: 1138 | version "1.18.0" 1139 | resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.18.0.tgz#ad068d24836568337bfe545650565e13f813c8ee" 1140 | integrity sha512-plCPGQJtDZHcLVKVRLnQVF2XRsIC32WvuJhQ7fJ7F6BV98b/VZX0OlX05qUaOESD9dCDHjYSfxsgcvOKgCWh7A== 1141 | 1142 | lightningcss-linux-x64-musl@1.18.0: 1143 | version "1.18.0" 1144 | resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.18.0.tgz#4d84de26b8185aa42450e0f4c83bbfb5a36ae750" 1145 | integrity sha512-na+BGtVU6fpZvOHKhnlA0XHeibkT3/46nj6vLluG3kzdJYoBKU6dIl7DSOk++8jv4ybZyFJ0aOFMMSc8g2h58A== 1146 | 1147 | lightningcss-win32-x64-msvc@1.18.0: 1148 | version "1.18.0" 1149 | resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.18.0.tgz#f83952d16b83dfce65f4615f87c867769220d117" 1150 | integrity sha512-5qeAH4RMNy2yMNEl7e5TI6upt/7xD2ZpHWH4RkT8iJ7/6POS5mjHbXWUO9Q1hhDhqkdzGa76uAdMzEouIeCyNw== 1151 | 1152 | lightningcss@^1.16.1: 1153 | version "1.18.0" 1154 | resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.18.0.tgz#ca3327a1a7571a83bbb9733ed4e4cded775bdadf" 1155 | integrity sha512-uk10tNxi5fhZqU93vtYiQgx/8a9f0Kvtj5AXIm+VlOXY+t/DWDmCZWJEkZJmmALgvbS6aAW8or+Kq85eJ6TDTw== 1156 | dependencies: 1157 | detect-libc "^1.0.3" 1158 | optionalDependencies: 1159 | lightningcss-darwin-arm64 "1.18.0" 1160 | lightningcss-darwin-x64 "1.18.0" 1161 | lightningcss-linux-arm-gnueabihf "1.18.0" 1162 | lightningcss-linux-arm64-gnu "1.18.0" 1163 | lightningcss-linux-arm64-musl "1.18.0" 1164 | lightningcss-linux-x64-gnu "1.18.0" 1165 | lightningcss-linux-x64-musl "1.18.0" 1166 | lightningcss-win32-x64-msvc "1.18.0" 1167 | 1168 | lines-and-columns@^1.1.6: 1169 | version "1.2.4" 1170 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" 1171 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== 1172 | 1173 | lmdb@2.5.2: 1174 | version "2.5.2" 1175 | resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-2.5.2.tgz#37e28a9fb43405f4dc48c44cec0e13a14c4a6ff1" 1176 | integrity sha512-V5V5Xa2Hp9i2XsbDALkBTeHXnBXh/lEmk9p22zdr7jtuOIY9TGhjK6vAvTpOOx9IKU4hJkRWZxn/HsvR1ELLtA== 1177 | dependencies: 1178 | msgpackr "^1.5.4" 1179 | node-addon-api "^4.3.0" 1180 | node-gyp-build-optional-packages "5.0.3" 1181 | ordered-binary "^1.2.4" 1182 | weak-lru-cache "^1.2.2" 1183 | optionalDependencies: 1184 | "@lmdb/lmdb-darwin-arm64" "2.5.2" 1185 | "@lmdb/lmdb-darwin-x64" "2.5.2" 1186 | "@lmdb/lmdb-linux-arm" "2.5.2" 1187 | "@lmdb/lmdb-linux-arm64" "2.5.2" 1188 | "@lmdb/lmdb-linux-x64" "2.5.2" 1189 | "@lmdb/lmdb-win32-x64" "2.5.2" 1190 | 1191 | mdn-data@2.0.14: 1192 | version "2.0.14" 1193 | resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" 1194 | integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== 1195 | 1196 | micromatch@^4.0.5: 1197 | version "4.0.5" 1198 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" 1199 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== 1200 | dependencies: 1201 | braces "^3.0.2" 1202 | picomatch "^2.3.1" 1203 | 1204 | msgpackr-extract@^2.2.0: 1205 | version "2.2.0" 1206 | resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-2.2.0.tgz#4bb749b58d9764cfdc0d91c7977a007b08e8f262" 1207 | integrity sha512-0YcvWSv7ZOGl9Od6Y5iJ3XnPww8O7WLcpYMDwX+PAA/uXLDtyw94PJv9GLQV/nnp3cWlDhMoyKZIQLrx33sWog== 1208 | dependencies: 1209 | node-gyp-build-optional-packages "5.0.3" 1210 | optionalDependencies: 1211 | "@msgpackr-extract/msgpackr-extract-darwin-arm64" "2.2.0" 1212 | "@msgpackr-extract/msgpackr-extract-darwin-x64" "2.2.0" 1213 | "@msgpackr-extract/msgpackr-extract-linux-arm" "2.2.0" 1214 | "@msgpackr-extract/msgpackr-extract-linux-arm64" "2.2.0" 1215 | "@msgpackr-extract/msgpackr-extract-linux-x64" "2.2.0" 1216 | "@msgpackr-extract/msgpackr-extract-win32-x64" "2.2.0" 1217 | 1218 | msgpackr@^1.5.4: 1219 | version "1.8.1" 1220 | resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.8.1.tgz#2298aed8a14f83e99df77d344cbda3e436f29b5b" 1221 | integrity sha512-05fT4J8ZqjYlR4QcRDIhLCYKUOHXk7C/xa62GzMKj74l3up9k2QZ3LgFc6qWdsPHl91QA2WLWqWc8b8t7GLNNw== 1222 | optionalDependencies: 1223 | msgpackr-extract "^2.2.0" 1224 | 1225 | node-addon-api@^3.2.1: 1226 | version "3.2.1" 1227 | resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" 1228 | integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== 1229 | 1230 | node-addon-api@^4.3.0: 1231 | version "4.3.0" 1232 | resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" 1233 | integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== 1234 | 1235 | node-gyp-build-optional-packages@5.0.3: 1236 | version "5.0.3" 1237 | resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz#92a89d400352c44ad3975010368072b41ad66c17" 1238 | integrity sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA== 1239 | 1240 | node-gyp-build@^4.3.0: 1241 | version "4.6.0" 1242 | resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055" 1243 | integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== 1244 | 1245 | node-releases@^2.0.6: 1246 | version "2.0.8" 1247 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" 1248 | integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== 1249 | 1250 | nth-check@^2.0.1: 1251 | version "2.1.1" 1252 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" 1253 | integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== 1254 | dependencies: 1255 | boolbase "^1.0.0" 1256 | 1257 | nullthrows@^1.1.1: 1258 | version "1.1.1" 1259 | resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" 1260 | integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== 1261 | 1262 | object-assign@^4.1.1: 1263 | version "4.1.1" 1264 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1265 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1266 | 1267 | ordered-binary@^1.2.4: 1268 | version "1.4.0" 1269 | resolved "https://registry.yarnpkg.com/ordered-binary/-/ordered-binary-1.4.0.tgz#6bb53d44925f3b8afc33d1eed0fa15693b211389" 1270 | integrity sha512-EHQ/jk4/a9hLupIKxTfUsQRej1Yd/0QLQs3vGvIqg5ZtCYSzNhkzHoZc7Zf4e4kUlDaC3Uw8Q/1opOLNN2OKRQ== 1271 | 1272 | parcel@^2.8.2: 1273 | version "2.8.2" 1274 | resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.8.2.tgz#6539c0a435b14e5829d09254b0394dcfbc0b0ba5" 1275 | integrity sha512-XMVf3Ip9Iokv0FC3ulN/B0cb5O21qaw0RhUPz7zULQlY794ZpFP9mNtN7HvCVEgjl5/q2sYMcTA8l+5QJ2zZ/Q== 1276 | dependencies: 1277 | "@parcel/config-default" "2.8.2" 1278 | "@parcel/core" "2.8.2" 1279 | "@parcel/diagnostic" "2.8.2" 1280 | "@parcel/events" "2.8.2" 1281 | "@parcel/fs" "2.8.2" 1282 | "@parcel/logger" "2.8.2" 1283 | "@parcel/package-manager" "2.8.2" 1284 | "@parcel/reporter-cli" "2.8.2" 1285 | "@parcel/reporter-dev-server" "2.8.2" 1286 | "@parcel/utils" "2.8.2" 1287 | chalk "^4.1.0" 1288 | commander "^7.0.0" 1289 | get-port "^4.2.0" 1290 | v8-compile-cache "^2.0.0" 1291 | 1292 | parent-module@^1.0.0: 1293 | version "1.0.1" 1294 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1295 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1296 | dependencies: 1297 | callsites "^3.0.0" 1298 | 1299 | parse-json@^5.0.0: 1300 | version "5.2.0" 1301 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" 1302 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== 1303 | dependencies: 1304 | "@babel/code-frame" "^7.0.0" 1305 | error-ex "^1.3.1" 1306 | json-parse-even-better-errors "^2.3.0" 1307 | lines-and-columns "^1.1.6" 1308 | 1309 | path-type@^4.0.0: 1310 | version "4.0.0" 1311 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 1312 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 1313 | 1314 | performance-now@^2.1.0: 1315 | version "2.1.0" 1316 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 1317 | integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= 1318 | 1319 | picocolors@^1.0.0: 1320 | version "1.0.0" 1321 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1322 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1323 | 1324 | picomatch@^2.3.1: 1325 | version "2.3.1" 1326 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1327 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1328 | 1329 | postcss-value-parser@^4.2.0: 1330 | version "4.2.0" 1331 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" 1332 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== 1333 | 1334 | posthtml-parser@^0.10.1: 1335 | version "0.10.2" 1336 | resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.10.2.tgz#df364d7b179f2a6bf0466b56be7b98fd4e97c573" 1337 | integrity sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg== 1338 | dependencies: 1339 | htmlparser2 "^7.1.1" 1340 | 1341 | posthtml-parser@^0.11.0: 1342 | version "0.11.0" 1343 | resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.11.0.tgz#25d1c7bf811ea83559bc4c21c189a29747a24b7a" 1344 | integrity sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw== 1345 | dependencies: 1346 | htmlparser2 "^7.1.1" 1347 | 1348 | posthtml-render@^3.0.0: 1349 | version "3.0.0" 1350 | resolved "https://registry.yarnpkg.com/posthtml-render/-/posthtml-render-3.0.0.tgz#97be44931496f495b4f07b99e903cc70ad6a3205" 1351 | integrity sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA== 1352 | dependencies: 1353 | is-json "^2.0.1" 1354 | 1355 | posthtml@^0.16.4, posthtml@^0.16.5: 1356 | version "0.16.6" 1357 | resolved "https://registry.yarnpkg.com/posthtml/-/posthtml-0.16.6.tgz#e2fc407f67a64d2fa3567afe770409ffdadafe59" 1358 | integrity sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ== 1359 | dependencies: 1360 | posthtml-parser "^0.11.0" 1361 | posthtml-render "^3.0.0" 1362 | 1363 | promise@^8.0.3: 1364 | version "8.1.0" 1365 | resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" 1366 | integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q== 1367 | dependencies: 1368 | asap "~2.0.6" 1369 | 1370 | raf@^3.4.1: 1371 | version "3.4.1" 1372 | resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" 1373 | integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== 1374 | dependencies: 1375 | performance-now "^2.1.0" 1376 | 1377 | react-app-polyfill@^1.0.0: 1378 | version "1.0.6" 1379 | resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-1.0.6.tgz#890f8d7f2842ce6073f030b117de9130a5f385f0" 1380 | integrity sha512-OfBnObtnGgLGfweORmdZbyEz+3dgVePQBb3zipiaDsMHV1NpWm0rDFYIVXFV/AK+x4VIIfWHhrdMIeoTLyRr2g== 1381 | dependencies: 1382 | core-js "^3.5.0" 1383 | object-assign "^4.1.1" 1384 | promise "^8.0.3" 1385 | raf "^3.4.1" 1386 | regenerator-runtime "^0.13.3" 1387 | whatwg-fetch "^3.0.0" 1388 | 1389 | react-error-overlay@6.0.9: 1390 | version "6.0.9" 1391 | resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" 1392 | integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== 1393 | 1394 | react-refresh@^0.9.0: 1395 | version "0.9.0" 1396 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.9.0.tgz#71863337adc3e5c2f8a6bfddd12ae3bfe32aafbf" 1397 | integrity sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ== 1398 | 1399 | regenerator-runtime@^0.13.3: 1400 | version "0.13.9" 1401 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" 1402 | integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== 1403 | 1404 | regenerator-runtime@^0.13.7: 1405 | version "0.13.11" 1406 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" 1407 | integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== 1408 | 1409 | resolve-from@^4.0.0: 1410 | version "4.0.0" 1411 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1412 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1413 | 1414 | safe-buffer@^5.0.1: 1415 | version "5.2.1" 1416 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1417 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1418 | 1419 | semver@^5.7.0, semver@^5.7.1: 1420 | version "5.7.1" 1421 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1422 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1423 | 1424 | source-map-support@~0.5.20: 1425 | version "0.5.21" 1426 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 1427 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 1428 | dependencies: 1429 | buffer-from "^1.0.0" 1430 | source-map "^0.6.0" 1431 | 1432 | source-map@^0.6.0, source-map@^0.6.1: 1433 | version "0.6.1" 1434 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1435 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1436 | 1437 | stable@^0.1.8: 1438 | version "0.1.8" 1439 | resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" 1440 | integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== 1441 | 1442 | supports-color@^5.3.0: 1443 | version "5.5.0" 1444 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1445 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1446 | dependencies: 1447 | has-flag "^3.0.0" 1448 | 1449 | supports-color@^7.1.0: 1450 | version "7.2.0" 1451 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1452 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1453 | dependencies: 1454 | has-flag "^4.0.0" 1455 | 1456 | svgo@^2.4.0: 1457 | version "2.8.0" 1458 | resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" 1459 | integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== 1460 | dependencies: 1461 | "@trysound/sax" "0.2.0" 1462 | commander "^7.2.0" 1463 | css-select "^4.1.3" 1464 | css-tree "^1.1.3" 1465 | csso "^4.2.0" 1466 | picocolors "^1.0.0" 1467 | stable "^0.1.8" 1468 | 1469 | term-size@^2.2.1: 1470 | version "2.2.1" 1471 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" 1472 | integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== 1473 | 1474 | terser@^5.2.0: 1475 | version "5.16.1" 1476 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880" 1477 | integrity sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw== 1478 | dependencies: 1479 | "@jridgewell/source-map" "^0.3.2" 1480 | acorn "^8.5.0" 1481 | commander "^2.20.0" 1482 | source-map-support "~0.5.20" 1483 | 1484 | timsort@^0.3.0: 1485 | version "0.3.0" 1486 | resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" 1487 | integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== 1488 | 1489 | to-regex-range@^5.0.1: 1490 | version "5.0.1" 1491 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1492 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1493 | dependencies: 1494 | is-number "^7.0.0" 1495 | 1496 | tslib@^2.4.0: 1497 | version "2.4.1" 1498 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" 1499 | integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== 1500 | 1501 | type-fest@^0.20.2: 1502 | version "0.20.2" 1503 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 1504 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 1505 | 1506 | typescript@^4: 1507 | version "4.4.3" 1508 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324" 1509 | integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA== 1510 | 1511 | update-browserslist-db@^1.0.9: 1512 | version "1.0.10" 1513 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" 1514 | integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== 1515 | dependencies: 1516 | escalade "^3.1.1" 1517 | picocolors "^1.0.0" 1518 | 1519 | utility-types@^3.10.0: 1520 | version "3.10.0" 1521 | resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" 1522 | integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== 1523 | 1524 | v8-compile-cache@^2.0.0: 1525 | version "2.3.0" 1526 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" 1527 | integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== 1528 | 1529 | weak-lru-cache@^1.2.2: 1530 | version "1.2.2" 1531 | resolved "https://registry.yarnpkg.com/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz#fdbb6741f36bae9540d12f480ce8254060dccd19" 1532 | integrity sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw== 1533 | 1534 | whatwg-fetch@^3.0.0: 1535 | version "3.6.2" 1536 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" 1537 | integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== 1538 | 1539 | xxhash-wasm@^0.4.2: 1540 | version "0.4.2" 1541 | resolved "https://registry.yarnpkg.com/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz#752398c131a4dd407b5132ba62ad372029be6f79" 1542 | integrity sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA== 1543 | 1544 | yaml@^1.10.0: 1545 | version "1.10.2" 1546 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" 1547 | integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== 1548 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // see https://www.typescriptlang.org/tsconfig to better understand tsconfigs 3 | "include": ["src", "types"], 4 | "compilerOptions": { 5 | "module": "esnext", 6 | "lib": ["dom", "esnext"], 7 | "importHelpers": true, 8 | // output .d.ts declaration files for consumers 9 | "declaration": true, 10 | // output .js.map sourcemap files for consumers 11 | "sourceMap": true, 12 | // match output dir to input dir. e.g. dist/index instead of dist/src/index 13 | "rootDir": "./src", 14 | // stricter type-checking for stronger correctness. Recommended by TS 15 | "strict": true, 16 | // linter checks for common issues 17 | "noImplicitReturns": true, 18 | "noFallthroughCasesInSwitch": true, 19 | // noUnused* overlap with @typescript-eslint/no-unused-vars, can disable if duplicative 20 | "noUnusedLocals": true, 21 | "noUnusedParameters": true, 22 | // use Node's module resolution algorithm, instead of the legacy TS one 23 | "moduleResolution": "node", 24 | // transpile JSX to React.createElement 25 | "jsx": "react", 26 | // interop between ESM and CJS modules. Recommended by TS 27 | "esModuleInterop": true, 28 | // significant perf increase by skipping checking .d.ts files, particularly those in node_modules. Recommended by TS 29 | "skipLibCheck": true, 30 | // error out if import and file system have a casing mismatch. Recommended by TS 31 | "forceConsistentCasingInFileNames": true, 32 | // `dts build` ignores this option, but it is commonly used when type-checking separately with `tsc` 33 | "noEmit": true 34 | } 35 | } 36 | --------------------------------------------------------------------------------